我有一个测试登录类,该类对登录有正面和负面的测试。肯定案例的结果-在响应中接收令牌。
此外,我还有另一个Functionality类,该类对某些功能进行了测试,可供登录用户使用。
如何从积极的登录测试到功能测试获得令牌?
我只找到一种解决方案:
但是,将依赖项添加到所有功能测试似乎不是一个好主意。 还有其他选择吗?
答案 0 :(得分:1)
可能的解决方案可能是将登录功能移到单独的位置,然后在 登录 和 功能 测试中重新使用。例如,您可以在注释之前使用TestNG在 功能 测试之前提取令牌。
class RequestHelper {
public static io.restassured.Response login(String username, String password) {
Response response;
//some code to get login response
return response;
}
}
class LoginTest {
@Test
public void shouldLogin() {
Response loginResponse = RequestHelper.login("username", "password");
//assertions that response is valid
}
}
class FunctionalTest {
private String token;
@BeforeClass
public void getToken(){
Response response = RequestHelper.login("username", "password");
//Extracting token from response here (depends on how token is returned)
token = response.then().extract().jsonPath().getString("token");
}
@Test
public void functionalTest(){
//Use token here
}
}
也进行 功能 测试取决于成功的 登录 测试是否成功也是一个好主意。这样,如果肯定的 登录 测试失败 功能 测试将不会执行。
答案 1 :(得分:0)
我们可以使用TestNG的ITestContext
。
例如:
在测试课中,
ctx.setAttribute("TOKEN", token);
在另一个班级进行相同的测试,
String token = ctx.getAttribute("TOKEN");
看看这个例子。
http://www.testautomationguru.com/selenium-webdriverreusable-tests-testng/
答案 2 :(得分:0)
您可以在运行程序xml文件中传递参数。 和 您可以使用属性外部文件来保存值。