如何在TestNG中生成具有不同名称的测试?

Urszula Karzelek:

我正在使用TestNG在Java中运行基于Selenium的测试。我有一堆重复的测试。通常,除了测试名称和一个参数外,它们都执行相同的操作。

我想自动生成它。我在考虑使用工厂。有没有一种方法可以生成具有不同名称的测试?最好的方法是什么?

到目前为止,我有类似下面的内容,我想创建10个测试,例如LinkOfInterestIsActiveAfterClick

@Test(dependsOnGroups="loggedin")
public class SmokeTest extends BrowserStartingStoping{

public void LinkOfInterestIsActiveAfterClick(){
        String link = "link_of_interest";
        browser.click("*",link);
        Assert.assertTrue(browser.isLinkActive(link));
    }

}
  • 我的XML套件是从Java代码自动生成的。
  • 测试名称对于记录哪个链接处于活动状态,哪个链接未处于活动状态至关重要。
Urszula Karzelek:

因此,我将Factory与DataProvider连接起来并使用了上下文属性。

@DataProvider(name = "DP1")
public Object[][] createData() {
  Object[][] retObjArr={
  {"Link1","link_to_page"},
  {"Link2","link_to_page"},
  return retObjArr;
}

@Test (dataProvider = "DP1")
public void isActive(String name, String link){
  this.context.setAttribute("name", name);
  browser.click(link);
  Assert.assertTrue(browser.isLinkActive(link));
}

并在听众

public class MyListener extends TestListenerAdapter{
  @Override
  public void onTestSuccess(ITestResult tr){
    log("+",tr);
  }
  //and similar

  private void log(String string, ITestResult tr){
    List<ITestContext> k = this.getTestContexts();
    String testName = tr.getTestClass().getName();      
    for (ITestContext i: k)
    {
      if (i.getAttribute("name") != null)
        logger.info(testName+"."+i.getAttribute("name"));
    }
  }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Hibernate中通过具有不同名称的非PK列映射2个表

如何在Java中生成具有不同分贝的纯音?

如何在Windows的同一目录中复制具有不同名称的文件

如何在Django的不同目录中调用具有相同名称的模板?

如何在Angular 1.5组件中对具有不同名称的绑定进行单元测试?

如何在C#中使用循环调用具有不同名称的数组

如何在Python中创建具有不同名称的多个文件

如何在不同的时间删除具有相同名称的新div

连接具有不同名称的表

SQLAlchemy迁移生成具有不同名称的外键。如何丢弃这些?

如何查找具有多个不同名称的项目

如何在C#中创建具有不同名称的数组?

如何在具有不同名称空间的情况下访问具有相似名称的vue / vuex mapActions方法?

如何在GNU Smalltalk中添加具有2个不同名称的相同方法?

如何在C中使用具有相同名称的不同枚举

如何在具有相同名称的2个不同库中使用2个不同函数

如何在联接Laravel上从具有不同ID的同一张表中检索不同名称

Randoop为所有类生成具有相同名称的测试

Maven:如何在两个不同的模块下放置一个具有相同名称的模块?

如何在while循环中保存具有不同名称的ArrayList?

如何仅查找具有不同名称的重复文件?

如何在Jenkins中使用Execute Shell命令传递可能具有不同名称的文件

如何导入具有固定路径的不同名称的文件

如何在 JSP 中使用具有不同名称的 for 循环创建 5 个文本框?

如何在不同的、不相关的类中调用具有相同名称的方法?

如何在具有相同名称的不同键中添加值

如何在 Python 中读取具有不同名称的 Excel 表格

如何在R中使用for循环保存具有不同名称的文件?

如何在Python中选择所有具有相同名称但不同值的行