我有一个Web应用程序,我正在测试Selenium和Maven运行并行测试。目前,我正在为每个测试定义登录ID。我需要的是一个解决方案,我将有一组用户可用于测试。执行运行时,测试将选择用户ID以从此池登录。完成并行测试后,应释放用户ID并使其可用于下一次测试。应该监视池,并且只有当一个或多个用户可用时才应该执行测试,这样我就可以避免因用户不可用而导致的故障。
我是新手,所以我正在寻找一些想法/建议我如何实现上述目标。我正在使用Java。
您可以通过将用户的可用性定义为布尔值来实现此目的。考虑这四个类:
将testUser定义为Object的类:
package theo;
public class testUser {
public String id;
public String pwd;
public boolean availability;
public String getId() {
return id;
}
public String getPwd() {
return pwd;
}
public boolean getAvailability() {
return availability;
}
public void setAvailability(boolean availability) {
this.availability = availability;
}
public testUser(String id, String pwd, boolean availability) {
this.id = id;
this.pwd = pwd;
this.availability = availability;
}
}
使用testUsers的类:
package theo;
public class testUsers {
testUser Jessica = new testUser("Jessica", "Jessica's password", true);
testUser Julie = new testUser("Julie", "Julie's password", false);
testUser Jane = new testUser("Jane", "Jane's password", true);
public testUser[] allTestUsers = {
Jessica,
Julie,
Jane
};
}
带测试方法的类:
package theo;
public class testMethod extends testUsers {
public void testWhatever(testUser user) {
System.out.println("Starting test with " + user.getId() + "'s credentials.");
user.setAvailability(false);
System.out.println(user.getId() + "'s availability is: " + user.getAvailability());
String id = user.getId();
String pwd = user.getPwd();
// load login page, perform login and desired tests
// ...
// possibly logout the user
// ...
System.out.println("Login test finished, going to release user.");
// and releasing the user
user.setAvailability(true);
System.out.println(user.getId() + "'s availability is: " + user.getAvailability());
}
}
由于用户的可用性而执行测试的类:
package theo;
import org.junit.Test;
public class testDemo extends testMethod {
@Test
public void performTestDueToUserAvailability() {
for (testUser testUser: allTestUsers) {
if (testUser.getAvailability()) {
testWhatever(testUser);
}
else {
System.out.println("User locked, skipping test.");
}
}
}
}
输出:
Starting test with Jessica's credentials.
Jessica's availability is: false
Login test finished, going to release user.
Jessica's availability is: true
User locked, skipping test.
Starting test with Jane's credentials.
Jane's availability is: false
Login test finished, going to release user.
Jane's availability is: true