Loading...
Latium avatar Latium 9 Точки

Test running sequenci in IntelliJ

Здравейте!
Някой знае ли как може да се променя последователността на стартиране на тестовете в IntelliJ? На мен винаги ми започва от втория тест и след това първия, досега се оправях с преименуване, но сега не става.
Благодаря!

Тагове:
0
QA Fundamentals
RoYaL avatar RoYaL Trainer 6849 Точки

Здравей,

Няма такъв начин. Има де, може да се настроят да са подредени по някакъв начин, но принципно се води и лоша практика. Ако има някаква конфигурация, която е нужна за теста се изнася в setUp() метода. Ако има много код, който се повтаря в два или повече теста - се изнася в нов, НЕ ТЕСТОВ метод.

Например

private void loginUser(String username, String password) {
    // navigating to the site
    // populate fields with the 'username' and 'password' params
}

@Test
public void testLogin_ValidCredentials_ExpectValidFullName() {
    this.loginUser('pesho', '123');
    // assert for valid full name
}

@Test
public void testLogin_InvalidCredentials_ExpectErrorMessage() {
    this.loginUser('pesho', 'greshna_parola');
    // assert for error message
}

@Test
public void sendMail_AllFieldsPopulated_IsSentSuccessfully() {
    this.loginUser('pesho', '123');
    // logic for sending mail
    // assert for success sending
}

Тук логинът е общ и за трите тестови метода - изнесен в метод loginUser() който приема юзърнейм и парола. В теста, в който искаш да видиш, че се логваш успешно му подаваш валидни юзърнейм и парола. В теста, в който искаш да видиш грешките - подаваш на същия метод навилидни юзър и парола. В теста за пращане на мейл ти трябва логин - пращаш му валиди юзърнейм и парола.

UI тестовете по принцип са доста бавни заради цялото това кликане и понякога човек иска да си го спести. За какво ти е например методът за тестване на изпращане на мейли, да ти тества дали логинът работи правилно? Така или иначе като стигне или ако вече е минало през теста за логин, той ще е дал съответните резултати.

Обикновено това се разделя на различни test suites. Нека приемем, че един клас е един suite. Имаме един клас AbvTestLogin и в тего всички възможни сценарии за логване. Там в setUp() метода например сме настроили само waits и url-а да е abv.bg. Имаме отделен клас AbvTestSendMail. И в него всички различни сценарии за изпращане на мейл. Обаче пращанетон а мейл иска логин. На нас не ни трябва UI логин. Повечето сайтове работят със сесии и кукита. Пазят едно куки със сейсийния тоукън и така сайтът знае, че сме логнати. Ами в setUp() метода слагане url-а, с който вече сме логнати (mail20.abv.bg май беше?) плюс казваме на driver-а, че изпращаме определени cookie-та. ( http://stackoverflow.com/questions/10340373/how-to-send-cookies-with-selenium-webdriver ). Така изпращайки cookie-тата, които ABV.BG иска, за да сме логнати, вече отваряйки вътрешна страница на сайта, той ще провери дали имаме съответните кукита, и ако да - ще ни пусне направо логнати. Т.е. няма на всеки тест да минаваме пред цялата процедура по логин.

P.S.: Все пак ако много държиш да промениш последователността, в тази тема в StackOverflow има различин обяснения. Подредба по азбучен ред, дори и собствен Runner. http://sqa.stackexchange.com/questions/7637/selenium-tests-written-using-junit-are-not-running-in-order

3
Latium avatar Latium 9 Точки

Благодаря за този подробен отговор. Нагласих тестовете, но наистина е хубаво тестовете да бъдат редуцирани само до конкретиката на различните тестове. 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.