testng - testng 中的 Bean shell 脚本

标签 testng beanshell

我想根据 testNG.xml 中使用 bean shell 脚本的方法名称选择多个方法。这是我当前的 testng.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="methodsuite">
<test name="test1" >
   <method-selectors>
       <method-selector>
            <script language="beanshell">
            <![CDATA[
            String str=System.getProperty("testToRun");
             testngMethod.getMethodName().contains(str);
            ]]>
            </script>
       </method-selector>
         </method-selectors>

  <packages>
       <package name=".*"></package>
   </packages> 
 </test>
 </suite

在这里我可以一次选择一种方法。是否可以使用beanshell脚本选择多种方法?或者我可以使用循环/beanshell中是否允许循环?

最佳答案

当然,您可以在 BeanShell 脚本中选择多个测试。基本上 TestNG 为每个 @Test 调用您的脚本在你的套件中找到的方法(例如在 <packages> 中定义)并将附加变量( http://testng.org/doc/documentation-main.html#beanshell )传递给它。您可以在这里定义自己的函数等。唯一重要的条件是 - 如果您想要或不包含“当前”方法到测试套件,您必须返回 true/false。因此,如果您将脚本更改为:

<script language="beanshell">
    <![CDATA[
        String str = System.getProperty("testPerformance");
        testngMethod.getMethodName().startsWith(str);
    ]]>
</script>

名称以 testPerformance 开头的所有测试将包含在测试套件中。

关于testng - testng 中的 Bean shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29897752/

相关文章:

testng - 有没有办法拦截 dataprovider 调用并更改它们的返回值?

java - 当 TestNG 监听器打开时,不会执行 Catch 语句

java - beanshell 采样器,我想从 jmeter 访问 java 代码

java - 如何使用 jmeter BeanShell 将反斜杠 (\) 替换为正斜杠 (/)

json - 错误 - jmeter.util.BeanShellInterpreter : Error invoking bsh method: eval Sourced file: inline evaluation of:

module - 在 JMeter BeanShell 或 JSR233 中使用 POJO

java - TestNG - 不能在套件中运行相同的测试两次

java - 问题 : I want to delete directory from my maven project when i am running mvn eclipse:clean

maven - Maven+Surefire+Testng的顺序 - BeforeClass, BeforeTest, Test, Test, AfterTest, AfterClass

java - 从 beanshell 或 Java 程序使用 ANTLR