我们使用 selenium 页面对象模式为每个页面构建模型。但是为了实现一个业务功能,它将涉及到几个页面。例如,创建一个用户,它涉及到 AgreementPage 和 CreateUserPage 如下所示
agreementPage = AgreementPage()
creatUserPage = agreementPae.accept()
createUserPage.typeEmail("your email address")
createUserPage.submit()
在我们的测试中,许多测试用例需要为前置条件创建一个用户。为了重用这些代码,我们创建了一个新的服务层。我们将代码移动到 UserService.CreateUser() 中。那么我们的测试脚本就变成了
def test_create_user():
userService.CreateUser("email address")
#do assertion
def test_edit_user():
authenticationService.login("user name", "password")
userService.CreateUser("email addrss")
#do editing created user
def test_delete_user():
authenticationService.login("user name", "password")
userService.CreateUser("email addrss")
#do deleting created user
因为大多数功能涉及两个或更多页面,所以页面对象进入服务层。在测试脚本层,我们似乎在测试服务。但我们确实认为服务名称不友好,不喜欢与域语言交谈。
我认为这是进行自动化测试的非常常见的方法,对吧?您如何命名服务层或如何处理继续使用的页面对象?