Мы строим модель для каждой страницы с шаблоном объектов селеновых страниц. Но для реализации одной бизнес-функции она будет включать несколько страниц. Например, создание одного пользователя, она включает в себя 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
Поскольку большинство функций включают в себя две страницы или более, объекты страницы входят в уровень обслуживания. И в тестовых сценариях уровень кажется, что мы тестируем сервисы. Но мы считаем, что имя службы не приветствуется, а не нравится говорить с языком домена.
Я предполагаю, что это очень распространенный подход, чтобы сделать тест автоматизации, не так ли? Как вы называете уровень обслуживания или как вы справляетесь с возвратом объектов страницы?
После прочтения сообщения Гойко Адзик в: http://gojko.net/2010/04/13/how-to-implement-ui-testing-without-shooting-yourself-in-the-foot-2/ и http://gojko.net/2009/10/06/putting-selenium-in-the-right-place/, я согласен с тем, что мероприятие лучше называет, чем услуги. Это также доказывает, что это одна общая иерархия кода для тестирования автоматизации: 1. тестовые скрипты 2. действия 3. объекты страницы --- Тестовые скрипты выполняют тестирование для функциональности, а также иллюстрируют требования. Активизация поведения системы. Объекты страницы инкапсулируют операции на страницах. – Cypine