首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TestNG:如何多次运行同一个测试用例?

TestNG:如何多次运行同一个测试用例?
EN

Stack Overflow用户
提问于 2014-10-01 03:09:28
回答 8查看 92.2K关注 0票数 34

我想多次运行一个测试用例。这可以在testng.xml中配置吗?如果我在测试方法中添加一个循环,那么每次运行的结果都不会在testng报告中受到影响。

EN

回答 8

Stack Overflow用户

发布于 2014-10-01 13:44:19

你不能在xml中做到这一点,但是在@Test注解中--你可以添加一个带有你想要运行的次数的invocationCount属性。它会像报告中运行的那些测试那样出来。

例如:

代码语言:javascript
复制
@Test(invocationCount = 10)
public void testCount() {..}

你遗漏了末尾的右花括号,所以稍微修正一下。

票数 48
EN

Stack Overflow用户

发布于 2017-01-31 21:34:30

TestNg有一种方法。您可以使用此方法并多次运行测试用例:

代码语言:javascript
复制
@Test(invocationCount = 100)

public void testCount() {

}
票数 9
EN

Stack Overflow用户

发布于 2017-06-28 01:20:46

到目前为止,没有一个答案真正让用户能够从testng文件中增加调用计数,这就是我们所要求的。该解决方案借鉴了gaurav25的DataProvider解决方案。

代码语言:javascript
复制
class TestClass() {
    int invocations;

    @Parameters({ "invocationCount" })
    @BeginClass
    void BeginClass( @Optional("1") String invocationCount) {
        this.invocations = Ingeter.parse(invocationCount)
    }

    // It will return a 2D array of size 3x1
    @DataProvider(name="URLprovider")
    private Object[][] getURLs() {
        ArrayList<Object []> obj = new ArrayList<>(3 * this.invocations);

        for(int iCount = 0; iCount < this.invocations; ++iCount) {
            list.add( new Object[] {"https://www.google.co.in/"} );
            list.add( new Object[] {"http://www.gmail.com/"} );
            list.add( new Object[] {"http://stackoverflow.com/"} );
        }

        return list.toArray();
    }

    /* Since Data provider for this test method returns 2D array of size
     (3*invocations)x1, this test method will run 3*invocations 
     times **automatically** with 1 parameter every time. */
    @Test(dataProvider="URLprovider")
    private void notePrice(String url) {
        driver.get(url);
        System.out.println(driver.getTitle());  
    }
}

现在,您可以使用以下testng.xml文件更改通过测试函数运行的测试集的数量:

代码语言:javascript
复制
<suite name="ESFService" verbose="1" parallel="methods" thread-count="1" data-provider-thread-count="10" >
    <test name="Basic">
        <classes>
            <class name="TestClass">
                <parameter name="invocationCount" value="5"/>
            </class>
        </classes>
    </test>
</suite>
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26128289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档