1

我想在包含不同环境参数的两个环境中执行相同的测试方法。

只是我想用不同的系统参数在测试执行中复制每个测试方法。

我可以使用 IMethodInterceptor 来实现它吗?或者使用 TestNg 中的任何扩展工具。

谢谢你。

4

2 回答 2

1

您可以使用 TestNG @Parameter ...

Java 代码:

@Parameter({"parameterName"})
@Test
public void testMain(String parameterName) {}

TestNG XML 套件:

<suite name="Blah">
  <test name="1">
    <parameter name="parameterName" value="var1" />
    ...
  </test>

  <test name="2">
    <parameter name="parameterName" value="var2" />
    ...
  </test>
</suite>
于 2012-10-10T20:59:50.570 回答
0

这在很大程度上取决于您的测试是如何设计的。
如果您的系统参数当前正在您的测试中初始化并且系统设置也在测试中,那么您在运行之前所做的任何事情都将被设置回测试中的内容。

如果您将这些值作为测试的全局值,那么您可以使用侦听器根据 testng xml 中的参数更改值。参数可以处于测试级别,您可以使用 sumtin

<suite>
<test name="Sysconfig1">
<param name="sysparam1" value ="x"/>
<param name="sysparam2" value ="y"/>
<packages>
....
</test>
<test name="Sysconfig2">
<param name="sysparam1" value ="a"/>
<param name="sysparam2" value ="b"/>
<packages>
....
</test>

然后实施onStart(ITestContext) of ITestListener and use sysproperty1 = context.getCurrentxmltest.gtparameter.get("sysparam1")

环境的初始化也可以在这些监听器实现中完成。只需将您实现的侦听器添加到您的 xml 文件中<listeners>

希望能帮助到你..

于 2012-10-11T12:52:26.763 回答