Как запустить тесты в одном браузере?

Всем привет!

Возник вопрос, не могу решить. Примечание: "Я только учусть, не судите строго".

Есть 100 тестов написаных на Java (ну как написаных, сконвертированых из Selenium IDE).

Фреймворк: Java + TestNG + Selenium WebDriver + Maven

Тесты работают, все нормально, но когда я запускаю их все вмете, то каждый тест открывается в своем браюзере, что соответственно очень грузит систему.

Как сделать, чтобы они запускались по очереди в одном браузере?

 

почитайте про анотации AfterClass , BeforeClass

видимо у Вас всегда стартует новий webdriver

а Вам нужно стартануть его всего лишь один раз перед всем suite-ом (@BeforeSuite)

и потом и убить в конце suite-а (@AfterSuite)

 

Спасибо за помощь.

Я в анотации @BeforeSuite не обявил глобальную переменную :)

public class TestBase {

protected static WebDriver driver;
protected static String baseUrl;
 
Из за одного слова столько проблем :) Теперь работает все отлично.

Каким образом запускаете тесты все вместе.

Если используете Suite то уберите параметр parallel из xml:

<suite name="My suite" parallel="methods" thread-count="5">

вот и хорошо, что разобрались)

Статический драйвер свяжет вам руки при попытках масштабирования.

кстати да, сделайте instance webdrier-a отдельно - аля singleton

я сделала то же самое, поменяла на 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);
    }
  }

Запуская тесты в одном браузере, рискуете:

  • стать заложником кеша / куков;
  • писать многоэтажные прекондишены / посткондишены, дабы вернуть
    систему в исходное состояние;
  • невольно сделать все свои тесты зависимыми друг от друга;
  • начать изобретать велосипеды для решения проблем с внеплановым
    падением тестов и влиянием на п.2.

П.С. Если открытие браузера грузит систему, то пора задуматься над запросом на увеличение ресурсов.

1 лайк