[英]TestNG Re run test on failure, not running BeforeClass AfterClass methods
[英]How to run @beforeclass @test and @Afterclass cases in a loop using TestNG
在
@beforeclass
login(){
open browser
login();
}
@test
test1(){
Action 1;
}
@test
test2(){
Action 2;
}
@afterclass
logout(){
}
我需要循环运行以上设置。 例如,需要使用一个Id登录,请运行我的所有@test用例并注销,并且循环中需要使用diff Id重新登录,并需要执行相同的操作。 我如何使用硒做到这一点。 请给我一些想法。
提前致谢。
使用@BeforeMethod而不是使用任何循环。 它将在每个新的测试方法之前重置模拟
我对Selenium和TestNG不太熟悉,但是通常在单元测试中,您不能保证@Test方法的运行顺序。
因此,只有一个@Test批注,并以所需的顺序手动运行所需的方法。
例如
@Test
public void test() {
login("username");
test1();
test2();
test3();
logout("username");
login("newusername");
test1();
test2();
test3();
logout("newusername");
}
使用@BeforeMethod
和@AfterMethod
代替@BeforeClass
和@AfterClass
批注
@BeforeMethod
注释的方法将在每个测试方法之前运行。
@AfterMethod
注释的方法将在每个测试方法之后运行。
@BeforeMethod
public void driverSetup()
{
// Driver setup code
}
@Test
public void loginTest1()
{
// User Login Code
}
@Test
public void loginTest2()
{
// User Login Code
}
@AfterMethod
public void driverSetup()
{
// Driver Closeup code
}
查看一些基本教程https://www.tutorialspoint.com/testng/testng_basic_annotations.htm
我宁愿使用testng.xml文件。 它可以帮助您了解报告
Java代码
public class demo {
@BeforeClass
@Parameters({ "username", "password" })
public void login(String username, String password){
System.out.print("login with "+username+" "+password);
}
@Test
public void test1(){
System.out.print("test1");
}
@Test
public void test2(){
System.out.print("test2");
}
@AfterClass
public void logout(){
System.out.print("logout");
}
}
TestNG.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Regression" >
<test name="AdminUser">
<parameter name="username" value="gaurnag"/>
<parameter name="password" value="shah" />
<classes>
<class name="demo"/>
</classes>
</test>
<test name="StandardUser">
<parameter name="username" value="standard"/>
<parameter name="password" value="shah" />
<classes>
<class name="demo"/>
</classes>
</test>
</suite>
您可以为此使用@DataProvider。 请从官方网站阅读
@BeforeClass
public void startbrowser(){
open browser
}
@Test(dataProvider="getData")
public void login(String username, String password){
enter_username(username);
enter_password(password);
click_on_submit
logout
}
@AfterClass
public void stop_browser(){
}
@DataProvider
public Object[][] getData()
{
Object[][] data = new Object[2][2];
// 1st row
data[0][0] ="user1";
data[0][1] = "test123";
// 2nd row
data[1][0] ="user2";
data[1][1] = "test123";
return data;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.