如何使用 testng.xml 和 beanshell 设置系统属性
Posted
技术标签:
【中文标题】如何使用 testng.xml 和 beanshell 设置系统属性【英文标题】:How to set system property using testng.xml and beanshell 【发布时间】:2020-01-09 02:44:00 【问题描述】:我有一个这样配置的 XML
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteName" verbose="7">
<test name="TestName">
<method-selectors>
<method-selector>
<script language="beanshell">
<![CDATA[
driverType = System.getProperty("driverType");
if (driverType.equals("ios"))
return groups.containsKey("All") && (!groups.containsKey("wip") && !groups.containsKey("iOS"));
else
return groups.containsKey("All") && (!groups.containsKey("wip"));
]]></script>
</method-selector>
</method-selectors>
<classes>
<class name="classnameHere"/>
</classes>
</test>
</suite>
现在我有一个发送命令 -DsuiteXmlFile=$suiteXmlfile.xml 的 Jenkins 作业(我配置了多个套件 XML 文件)
测试创建的报告在名称中包含“suiteXmlFile”参数值,但对于调试或当我必须运行不是来自 Jenkins 的东西时,我只需右键单击 XML 文件,但报告者将 suiteXmlFile 视为空(显然)。
我试过 System.setProperty("suiteXmlFile","suiteName"); (我在内部方法中使用它并且效果很好)但是从 XML 文件看来它不起作用。还有其他方法可以设置该属性吗?
【问题讨论】:
【参考方案1】:System.setProperty("suiteXmlFile","suiteName") 确实有效。问题是我试图在xml设置之前读取该属性
【讨论】:
以上是关于如何使用 testng.xml 和 beanshell 设置系统属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Maven 中从 pom.xml 调用 testng.xml 文件
TestNG:如何以编程方式运行自定义 TestNG.XML 文件
如何使用 testng.xml 从大型 TestNG 套件执行一项测试?