antinio
(Anton)
#1
Всем привет!
Возник вопрос, не могу решить. Примечание: "Я только учусть, не судите строго".
Есть 100 тестов написаных на Java (ну как написаных, сконвертированых из Selenium IDE).
Фреймворк: Java + TestNG + Selenium WebDriver + Maven
Тесты работают, все нормально, но когда я запускаю их все вмете, то каждый тест открывается в своем браюзере, что соответственно очень грузит систему.
Как сделать, чтобы они запускались по очереди в одном браузере?
Taras
(Taras)
#2
почитайте про анотации AfterClass , BeforeClass
видимо у Вас всегда стартует новий webdriver
а Вам нужно стартануть его всего лишь один раз перед всем suite-ом (@BeforeSuite)
и потом и убить в конце suite-а (@AfterSuite)
antinio
(Anton)
#3
Спасибо за помощь.
Я в анотации @BeforeSuite не обявил глобальную переменную :)
public class TestBase {
protected static WebDriver driver;
protected static String baseUrl;
Из за одного слова столько проблем :) Теперь работает все отлично.
nigilit
(nigilit)
#4
Каким образом запускаете тесты все вместе.
Если используете Suite то уберите параметр parallel из xml:
<
suite
name
=
"My suite"
parallel
=
"methods"
thread-count
=
"5"
>
Taras
(Taras)
#5
вот и хорошо, что разобрались)
ArtOfLife
(Sergey Korol)
#6
Статический драйвер свяжет вам руки при попытках масштабирования.
Taras
(Taras)
#7
кстати да, сделайте instance webdrier-a отдельно - аля singleton
Diana
(Diana)
#8
я сделала то же самое, поменяла на Before/After Suite
и сделала глобальной переменную для driver
, запускаю из Eclipse правой кнопкой на пакете
иногда тесты не стартуют совсем и ошибка f.QueryInterface is not a function
иногда первый тест выполняется, но после выполнения первого теста, дальше идет попытка зайти на сайт ww.мойсайтNULL.com и, соответственно, падает
public class CommonClass {
protected static WebDriver driver;
private String baseUrl;
@BeforeSuite
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "http://url.com/";
}
@AfterSuite
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
ArtOfLife
(Sergey Korol)
#10
Запуская тесты в одном браузере, рискуете:
- стать заложником кеша / куков;
- писать многоэтажные прекондишены / посткондишены, дабы вернуть
систему в исходное состояние;
- невольно сделать все свои тесты зависимыми друг от друга;
- начать изобретать велосипеды для решения проблем с внеплановым
падением тестов и влиянием на п.2.
П.С. Если открытие браузера грузит систему, то пора задуматься над запросом на увеличение ресурсов.
1 лайк