Тесты замораживаются на 2 минуты и затем продолжаются - PullRequest
0 голосов
/ 25 сентября 2019

У нас Zalenium Grid работает в Pod Kubernetes на AWS, и тесты иногда случайным образом зависают примерно на 2 минуты, а затем продолжаются, как будто ничего не произошло.Эта проблема является совершенно случайной и возникает на разных этапах теста, при этом не существует реального шаблона для идентификации.

Тесты выполняются параллельно, и в сетке более чем достаточно узлов для поддержки всего.Я использую тестовый набор 203, и время выполнения варьируется от (самых быстрых) 58 с до (самых медленных - сборка отменяется при слишком долгой работе) 15 минут.Сборка 58-х - это то, как я ожидаю, что она будет всегда работать, когда Grid не занят другими выполнениями сборки, но среднее время выполнения составляет где-то около 6-7 минут.

Я настроил сетку docker-selenium(не Zalenium) на локальной машине, и тот же сценарий здесь не происходит.Тесты имеют нормальное время выполнения, а среднее время сборки составляет около 3 минут (меньше узлов, чем у нашей Zalenium Grid).То же самое касается его локального запуска на моей машине для разработки.

Некоторое тестирование между параллельным и одиночным выполнением также показывает, что это как-то связано с параллельным выполнением нескольких тестов.

Поскольку это может быть многопоточностьВ связи с этим, я вставляю сюда зависимость surefire, чтобы показать потоки для Grid.Я не вижу ни одного кода, который мог бы опубликовать, чтобы прояснить эту проблему, поскольку это почти случайное поведение почти в каждом тесте, который у нас есть.

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                    <parallel>classesAndMethods</parallel>
                    <threadCount>5</threadCount>
                    <forkCount>4</forkCount>
                    <reuseForks>true</reuseForks>
                    <!--<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine> -->
                    <testFailureIgnore>true</testFailureIgnore>
                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                    </argLine>
                    <properties>
                        <property>
                            <name>listener</name>
                            <value>io.qameta.allure.junit4.AllureJunit4</value>
                        </property>
                    </properties>
                    <groups>${testcase.groups}</groups>
                </configuration>
                <dependencies>
                    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>

                </dependencies>
            </plugin>

Максимальное время выполнения нашего "самого длинного" теста должно быть около 40-50 сек, но некоторые тесты, которые обычно занимают около 10 сек, требуют более 2 минут для запуска.Проверка видео в Zalenium Dashboard показывает, что тест зависает, но браузер и все в порядке (например, когда он зависает и вводит, вы можете видеть, что курсор мигает).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...