如何使用TestNG使用不同的数据重新运行测试



当前我们正在使用TestNG iRetryAnalyzer在测试失败时重新运行测试。

我们面临的问题是:

我们有一个"添加用户"测试。第一次添加用户后,在检查成功消息的过程中发生了异常(Timeout/NouschElement)等。但是用户被添加到了数据库中。

现在,当我们用相同的数据重新运行测试时,已经添加了test Fails as user。

我该如何克服这一点??

如这里的数据,用户电子邮件id的唯一字段。至少当我第二次重新运行电子邮件时,我应该能够更改电子邮件Id。

请帮帮我。

如果您只需要创建一个不需要实际使用的唯一、伪造的电子邮件地址,您可以随时在从DataProvider获得的一些基本电子邮件上添加日期/时间戳:

 @Test(dataProvider = "dp")
 public void emailTest(String userName, String emailShortname) {
 //Get the current time
 long time = System.currentTimeMillis();
 //append it to the email from your DataProvider
 StringBuilder emailBuilder= new StringBuilder();
 emailBuilder.append(emailShortname).append("_").append(time).append("@gmail.com");
  //do user creation code below using emailBuilder result...

我想说的是,如果你要使用Selenium进行这类测试,你会用垃圾测试ID填充数据库,所以我建议你的团队创建一种机制,在测试运行的一部分或之后清除这些ID。

理想情况下,如果有删除用户的方法。您应该在@mattest方法中使用它,并删除该用户。

这样,下次无论测试是否成功,您都可以再次使用相同的电子邮件id。

如果没有,如果电子邮件id从未被验证(我的意思是,就像你用来确认用户的一些确认电子邮件),你可以像这样在飞行中创建假电子邮件idxyz123@gmail.com.如果电子邮件id被验证,那么我猜你有麻烦了。

相关内容

最新更新