gpt4 book ai didi

java - 管理 Selenium 测试项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:12 25 4
gpt4 key购买 nike

我有关于管理 selenium web 项目的一般问题,示例如下,我的问题是如何管理这些测试用例?(示例只有 3 个,实际测试用例数量超过 1000 个)

为子测试创建类好吗,比如登录类,所有与登录相关的测试都在这个类下?

是否有编写和管理测试用例的约定?

谢谢大家

I create class with tests like:
@Test //Test1
public void logInFaildTest() {
GridTest gridTest = new GridTest();
WebDriver webDriver = gridTest.getWebDriver();
String url = gridTest.getUrl();
LoginPage logIn = new LoginPage(webDriver, url);
String userName = "user";
String pass="pass";
logIn.login(userName, pass);
WebElement errorMsg = webDriver.findElement(By.className("dijitToasterContent"));
String actual = errorMsg.getAttribute("innerHTML");
String expected="Incorrect user name or password. Please try again.";
assertEquals(expected, actual);
webDriver.close();
}

@Test
public void loginSucsecc()
{
GridTest gridTest = new GridTest();
String url = gridTest.getUrl();
WebDriver webDriver = gridTest.getWebDriver();
LoginPage logIn = new LoginPage(webDriver, url);
String userName = "user";
String pass="pass";
logIn.login(userName, pass);
String actual = webDriver.getCurrentUrl();
String expected= url+"#lastmile/";
// webDriver.close();
webDriver.quit();
assertEquals(expected, actual);
}

@Test
public void accountLock()
{
GridTest gridTest = new GridTest();
String url = gridTest.getUrl();
WebDriver webDriver = gridTest.getWebDriver();
LoginPage logIn = new LoginPage(webDriver, url);
String userName = "user";
String pass="wrong";
for(int i=0;i<11;i++){
logIn.login(userName, pass);
logIn.clearFileduNamePass();
}
WebElement msg = webDriver.findElement(By.id("dijit__TemplatedMixin_0")); //block message
String actual = msg.getAttribute("innerHTML");
int splitIndex= actual.indexOf(".<");
actual = actual.substring(0, splitIndex);

String expected= "Your account has been locked";
webDriver.quit();
assertEquals(expected, actual);
}
}

最佳答案

是的,你所做的只是好的。这样所有与登录相关的操作都可以放在一个类中,所以如果有任何更改,我们可以轻松管理

对象维护

你可以选择 Page Object Model(POM)因为它是一种广泛使用的方法并且易于管理。这是为了管理您的对象,更像是维护对象存储库

如您所见,我们所做的只是查找元素并为这些元素填充值。

这是一个小脚本。脚本维护看起来很容易。但随着时间的推移,测试套件会增长。随着您向代码中添加越来越多的行,事情变得越来越棘手。

脚本维护的主要问题是,如果 10 个不同的脚本使用同一个页面元素,则该元素发生任何更改,您都需要更改所有 10 个脚本。这既耗时又容易出错。

更好的脚本维护方法是创建一个单独的类文件来查找 Web 元素、填充它们或验证它们。此类可以在使用该元素的所有脚本中重复使用。将来如果 web 元素发生变化,我们只需要在 1 个类文件中进行更改,而不是 10 个不同的脚本。

这种方法称为页面对象模型(POM)。它有助于提高代码的可读性、可维护性和可重用性。

测试数据维护

接下来您要考虑的是用于运行具有不同数据集的测试用例的测试数据测试驱动方法

POM 相同 您可以创建一个工厂类,它会在需要时为您提供一组数据,这样当您想要更改/修改数据时,您可以简单地去工厂更改它。

对于 ex,您创建一个名为 LoginData 的类,它具有 getValidCredentials getRandomCredentials 等函数来获取您的数据。如果您的应用程序每次运行都需要随机 emailid,那么您只需单独修改 getValidCredentials 部分当您的应用程序主要运行在表单或用户数据上时,这将对您有很大帮助

可重用组件

第三点是您所创建内容的可重用性。您也可以将 validLogin 重用于其他场景

关于java - 管理 Selenium 测试项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com