Всем привет!
Столкнулся с такой проблемой:
есть 2 разных кампа, с одного chrome драйвер селениум запускает очень быстро и работу производит в нем так же быстро, как мы привыкли в веб браузере.
А вот на другом кампе даже инициализация (открытие браузера) происходит оооочень медленно. Медленно и он переходит на другие страницы. Все очень тухло. Из-за этого все тесты падают.
В каком направлении копать?? Если вручную запустить браузер хром на компе, где все медленно - то он нормально работает Штатно.
На одном кампе Selenium летает, на другом еле ползет(
#1
Отправлено 22 мая 2018 - 16:41
#2
Отправлено 18 сентября 2018 - 11:00
Столкнулся с такой же проблемой. Команда refresh() при локальном запуске выполняется грубо говоря за секунду. При запуске через дженкинс на удалённой машине в хедлесс режиме- 40 секунд. И как то вообще нет идей почему это работает именно так.
#3
Отправлено 18 сентября 2018 - 11:10
#4
Отправлено 18 сентября 2018 - 11:24
Не могу, та машина без гуи. Можно конечно в докере сделать, но блин, путь долог и тернист, а результат нужен как всегда вчера. Я никогда до этого не запускал в докерах
#5
Отправлено 18 сентября 2018 - 12:57
Дополню что попробовал запустить в хедлесе у себя.
При запуске в хедлесе без дженкинса, на своей машине тесты идут 3 минуты, на удаленной 12-16 минут. Так что видимо всё таки проблема как то касается или дженкинса или удалённой машины.
#6
Отправлено 21 сентября 2018 - 09:19
В общем проблема так и не решилась. Локально отдельный тест идет 20 секунд, в дженкинсе на удаленке 4 минуты. Сделал максимальное упрощение этого теста, и нашёл интересную особенность. Создал метод где прописанно только sleep(100); В таком случае этот метод выполняется целых две минуты, и метод следующий за ним тоже выполняется две минуты. Если я в этот метод прописываю просто вывод на консоль System.out.println("тест"); в таком случае метод проходит очень быстро и нет непонятной задержки. Так же в этом методе пробовал прописывать например $("selector").waitUntil(Condition.visible, 5000); В этом случае тоже тест тормозится. При этом слипы например в других частях программы отрабатывают нормально.
Ниже накидаю скринов чтобы примерно понимать что у меня там происходит. Очень буду рад если кто подскажет направление куда копать.
мой пумник
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>тыц</groupId> <artifactId>тыц</artifactId> <version>1.0-SNAPSHOT</version> <properties> <aspectj.version>1.8.10</aspectj.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.14.0</version> </dependency> <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-cucumber-jvm</artifactId> <version>2.7.0</version> </dependency> <!-- https://mvnrepository.com/artifact/ru.yandex.qatools.allure/allure-testng-adaptor --> <dependency> <groupId>ru.yandex.qatools.allure</groupId> <artifactId>allure-testng-adaptor</artifactId> <version>1.5.4</version> </dependency> <!--allure-maven-plugin --> <dependency> <groupId>ru.yandex.qatools.allure</groupId> <artifactId>allure-cucumber-jvm-adaptor</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>ru.yandex.qatools.allure</groupId> <artifactId>allure-maven-plugin</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.14.3</version> <scope>compile</scope> </dependency> <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java --> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-java</artifactId> <version>1.2.5</version> </dependency> <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng --> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-testng</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>com.codeborne</groupId> <artifactId>selenide</artifactId> <version>4.12.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-selenide</artifactId> <version>2.7.0</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>${project.build.sourceEncoding}</encoding> <compilerArgs> <arg>-XDignore.symbol.file=true</arg> </compilerArgs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.0</version> <configuration> <!--<suiteXmlFiles>src/test/resources/runners/TestRunner.xml</suiteXmlFiles>--> <suiteXmlFiles>src/test/resources/runners/runnerCucumber.xml</suiteXmlFiles> <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.options="--plugin io.qameta.allure.cucumberjvm.AllureCucumberJvm" </argLine> </configuration> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> </plugin> </plugins> </build> <reporting> <excludeDefaults>true</excludeDefaults> <plugins> <plugin> <groupId>ru.yandex.qatools.allure</groupId> <artifactId>allure-maven-plugin</artifactId> <version>2.6</version> </plugin> </plugins> </reporting> </project>
Мой ранер через который запускаю тесты
package cucumber.base; import base.utilities.Props; import base.utilities.Util; import com.codeborne.selenide.Configuration; import com.codeborne.selenide.Screenshots; import com.google.common.io.Files; import cucumber.api.CucumberOptions; import cucumber.api.testng.AbstractTestNGCucumberTests; import org.openqa.selenium.Dimension; import org.testng.annotations.*; import page_objects.LkSmarthome.blocks.HeaderBlock; import page_objects.LkSmarthome.blocks.OmnichatBlock; import page_objects.LkSmarthome.modalWindows.ChangePasswordModalWindow; import page_objects.LkSmarthome.modalWindows.EnterEmailModalWindow; import page_objects.LkSmarthome.pages.*; import page_objects.mailForSpam.pages.EmailBox; import ru.yandex.qatools.allure.annotations.Attachment; import java.io.File; import java.io.IOException; import static com.codeborne.selenide.WebDriverRunner.getWebDriver; @CucumberOptions( features = "src/test/java/cucumber/features", glue = "cucumber.steps", tags = "@test" ) public class Runner extends AbstractTestNGCucumberTests { //инициализация страниц и вспомогательных классов //страницы protected static LoginPage loginPage = new LoginPage(); protected static Props props = new Props(); protected static SinginPage singinPage = new SinginPage(); protected static EmailBox emailBox = new EmailBox(); protected static Util util = new Util(); protected static HelpPage helpPage = new HelpPage(); protected static EventsPage eventsPage = new EventsPage(); protected static ProfilePage profilePage = new ProfilePage(); //блоки protected static HeaderBlock headerBlock = new HeaderBlock(); protected static OmnichatBlock omnichatBlock = new OmnichatBlock(); //модальные окна protected static ChangePasswordModalWindow changePasswordModalWindow = new ChangePasswordModalWindow(); protected static EnterEmailModalWindow enterEmailModalWindow = new EnterEmailModalWindow(); @BeforeSuite public static void setUp() { //isChrome(); //Configuration.browser = "chrome"; Configuration.headless = true; //настройки параметра браузера Configuration.collectionsTimeout = 12000; Configuration.timeout = 10000; if(props.getLocalRun()==true) { Configuration.baseUrl = "https://тутссылка"; Configuration.browser = "chrome"; Configuration.holdBrowserOpen = true; Configuration.headless = false; } // getWebDriver().manage().window().setSize(new Dimension(1440, 900)); getWebDriver().manage().window().maximize(); } }
Прикрепленные файлы
#7
Отправлено 21 сентября 2018 - 11:05
Локально на "медленном" компе тоже идет быстро? Тогда м.б., проблемы со связью? Сравните время пинга для "быстрой" и "медленной" машины в одну и другую сторону. Если нет разницы, можно еще замерить время запроса непосредственно на селениум-сервер.
#8
Отправлено 21 сентября 2018 - 18:28
Локально проверить на другом компе нет возможности, во первых он без гуи, во вторых находится в другом городе от меня. Пинг измерю и отпишу сюда, но есть сомнения что дело в пинге, другие методы то отрабатывают за секунды или быстрее. А метод например обновляющий страницу или слип отрабатывают долго, но опять же не везде...в общем странно это очень, первый раз с таким сталкиваюсь
#9
Отправлено 24 сентября 2018 - 06:56
Да, дело не в пинге.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных