Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Организация структуры тестов для пользователей с разными ролями

management
architecture
structure
framework
Теги: #<Tag:0x00007f7b6a1a5350> #<Tag:0x00007f7b6a1a50a8> #<Tag:0x00007f7b6a1a4ce8> #<Tag:0x00007f7b6a1a4a18>

(Eugeniylennik) #1

Здравствуйте!

Есть сервис, главной особенностью которой является мульти-ролевая система использования данного сервиса. То есть, на сервисе есть 10 ролей, у каждой это роли доступен свой набор функционала и возможностей, для одной роли может быть доступен один набор функционала, для другой роли - другой набор функционала.

Подскажите пожалуйста как организовать структуру тестов для всех ролей которые есть на сайте? Нужно ли мне для каждой роли прописывать свои тесты? Можно ли запускать тесты передавая в качестве параметра название роли, и запускать тесты только для этой роли?

Буду благодарен за любые советы.


(Sergey Korol) #2

Тут вопрос скорее не в структуре тестов, а в корректном распределении пользователей между ними.
У вас ведь ключевой единицей взаимодействия с функционалом является user, а не role. У каждого юзера может быть свой набор ролей. При этом, роли лишь ограничивают / наделяют нас определенными правами, и только.

Положим, вам нужно протестировать определенный функционал, который становится доступным при активации выделенной роли. Вы создаете юзера, которому ассайните заданную роль. Но вы ведь не будете использовать одного и того же пользователя для всех тестов, покрывающих функциональность, находящуюся в области видимости данной роли, так? Т.е. мы уже имеем N юзеров на каждую из ролей.

Если посмотреть на эту задачу с технической стороны, то напрашивается вполне однозначное решение - Object Pool. В качестве реализации можно взять любую существующую библиотеку. От вас лишь потребуется заполнить пул юзерами. Причем, тут напрашивается сразу N пулов из M юзеров. Ну а дальше дело за DataProvider, который будет отдавать юзеров из нужного пула заданным тестам.

Я уже рассказывал о простенькой реализации подобного механизма на Java (3я и 4я темы доклада):


(Eugeniylennik) #3

Да все верно, получается следующая ситуация, что мы имеем заранее готовых пользователь, у которых заданы определенные права (роли), в конкретном случае скорее роль, у которой уже выставлены свои права на доступ к функционалу для нее. Т.е 10 пользователей = 10 ролей (по иерархии админ, менеджер и т.д.)
Спасибо за информацию, буду изучать.


(Sergey Korol) #4

Ну пользователей вы можете генерировать и на лету, например через API. Не суть.

10 юзеров = 10 ролей - это очень простой кейс. В идеале, у вас на каждую из 10 ролей должен быть свой пул юзеров, чтобы тесты, требующие определенную роль, не использовали одинаковые аккаунты в параллели.


(Viktor Vladimirovich) #5

У вас не сохранилось ссылки на сайт ивента, где можно скачать эти исходиники?


(Sergey Korol) #6

Тут есть линка. Ну или сразу на GitHub account.


(Yulia Antifeeva) #7

Посмотрите ещё здесь небольшой доклад на тему тестирования ролей с SQA Days-19. И проект, о котором рассказывает докладчик, есть на GitHub.