Как генерировать тесты с различными именами в TestNG?

Я использую TestNG для запущения основанных на селене тестов в Java. У меня есть набор повторных тестов. Обычно они делают все равно кроме тестового имени и одного параметра.

Я хочу автоматизировать поколение его. Я думал об использовании фабрики. Существует ли способ генерировать тесты с другим именем? Каков был бы лучший подход к этому?

Что касается теперь у меня есть что-то как ниже, и я хочу создать 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.
  • Тестовые имена крайне важны для входа, какой канал активен, и который не.
5
задан Urszula Karzelek 21 October 2016 в 10:41
поделиться

2 ответа

Итак, я связал 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));
}

А в Listener

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"));
    }
  }

}
2
ответ дан 13 December 2019 в 22:04
поделиться

Пусть ваш тестовый класс реализует org.testng.ITest и переопределяет getTestName(), чтобы вернуть нужное вам имя.

8
ответ дан 13 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: