Использую WebDriver + TestNG (упрощенный код под спойлером).
Необходимо протестировать систему, все действия можно делать только авторизованым пользователем.
Допустим, хочу сначала отдельно проверить всю авторизацию, класс Auth. Далее проверять создание объектов и прочие операции.
Сейчас в testng.xml я просто в нужном порядке записал все методы, т.е.
testLaunch
testLoginInvalidCred
testLogin
testCreateObjType1
testCreateObjType2
testLogout
Но тогда нет никакой атомарности тестов. Да и это явно не то что надо, когда тестов будет намного больше.
Как я себе это представляю:
@BeforeSuite/@AfterSuite заменить на @BeforeTest/@AfterTest,
и в testng.xml для каждого теста писать
<test1> логин с невалидными данными testLaunch testLoginInvalidCred <test2> логин с валидными данным testLaunch testLogin <test3> логаут testLaunch testLogin testLogout <test3> создание объекта testLaunch testLogin testCreateObjType1Т.е. таким образом для каждого теста из testng.xml будет создаваться экземпляр веб-драйвера, прогон указанных методов, и закрытие веб-драйвера.
1. а)Правильно ли, что для каждого теста я добавляю тестовые методы testLaunch и testLogin?
б) Нет ли в этом избыточности проверок?
в) Или же вынести их в отдельные не тестовые методы, без ассертов, и вызывать в коде уже в самих методах "testCreateObjType1" и т.д.
г) Имеет ли смысл например добавить авторизацию в @BeforeTest? Тогда как организовать отдельно проверку авторизации (методы в классе Auth)?
2. Может будут еще какие замечания/уточнения, т.к. далее для создания дочерних объектов будет требоваться наличие родительских.
Получится, что
<testN> создание дочернего объекта testLaunch testLogin testCreateObjTypeParent (но создание этого уже проверялось ранее отдельно) testCreateObjTypeChild
В общем, что-то я запутался, и как обычно строятся тесты в таких случаях? По документации textng я что-то не догоняю, т.е. там все понятно, как добавлять/исключать/группировать и прочее, но вот у меня какой-то ступор.
Сообщение отредактировал axz: 09 декабря 2013 - 11:55