Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Selenide+testng parallel tests, проблемы с переменной

java
webdriver
selenide
testng
Теги: #<Tag:0x00007fedb9b46730> #<Tag:0x00007fedb9b465f0> #<Tag:0x00007fedb9b463c0> #<Tag:0x00007fedb9b46280>

#1

Проблема заключается в следующем:
Тесты запускаются паралельно с использованием dataProvider от testNG. При этом в самих тестах происходит некоторая рандомизация данных которые помещаются в переменную.
И вот собственно проблема проявляется когда данные из переменной вводяться в браузере. В разных копиях браузера вводятся одинаковые данные, при этом если данные из переменной выводить в консоль, то все значения будут отличаться. Если данные не класть в переменную, то тоже все ок(будут вводиться разные).
Так же пробовал вводить в браузере Thread.currentThread(), все треды тоже разные.

Перепробовал всевозможные параметры testng

testng.xml:

data-provider-thread-count="5" parallel="tests" thread-count="5"
@Test(threadPoolSize = 20)

POM:

<parallel>tests</parallel>
<threadCount>10</threadCount>
<forkCount>10</forkCount>
<reuseForks>false</reuseForks>

Данные из переменной в датапровайдер положить нельзя, изменить сам метод тоже.

Может быть проблема в селениде? Вызываю стандартно Configuration.browser=“chrome”;

@asolntsev возможно сможете подсказать?


(Oleksandr Khotemskyi) #2

Код дата провайдера покажите


#3

абсолютно стандартный код

 @DataProvider(name = "Authentication", parallel = true)
    public static Object[] credentials() {
        Object[] elementArray = new Object[][]{
                { "testuser_1", "Test@1" },
                { "testuser_2", "Test@2" },
                { "testuser_3", "Test@3" },
                { "testuser_4", "Test@4" },
                { "testuser_5", "Test@5" }};
        return elementArray;
    }

(asolntsev) #5

А где та мистическая переменная, в которую помещаются данные? Очевидно, проблема именно в ней - она наверняка статическая.

А вообще, ваши тесты можно и нужно упростить. Вам не нужны датапровайдеры, например.


#6

Мда, действительно оказалась изначальная переменная лежала в классе с конфигом, проглядел