Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Проблема с выполнение теста в Jenkins


(Руслан) #1

Всем привет, появилась проблема, тест нормально выполняется, как в IDE , так и в терминале

Ошибка Jinkins :

53043 [main] INFO net.thucydides.core.steps.StepInterceptor - STEP DONE: toggle_check_box
53134 [main] INFO net.thucydides.core.steps.StepInterceptor - STARTING STEP: click_on_buy_button
56494 [main] INFO net.thucydides.core.steps.StepInterceptor - STEP DONE: click_on_buy_button
     INFO net.thucydides.core.steps.StepInterceptor - STEP FAILED: click_on_check_out_button - org.openqa.selenium.NoSuchElementException: Timed out after 30 seconds. Unable to locate the element: Element is not usable [[FirefoxDriver: firefox on LINUX (0bc54212-35a7-4172-8d3e-21da275e4f61)] -> name: CheckoutButton]

STEP DONE: click_on_buy_button - Дженкинс его не выполняет по непонятной причине ,и собственно дальше тест валится… я для этого шага пробовал различные пути кнопки “BUY” , Jenkins всё равно не видит

///////////////////////////////////////////

@WithTag("couple_buy")
@Test
public void CoupleRegisterBuyACard() throws InterruptedException
{
    register_couple.start();
    register_couple.couple_choose();
    register_couple.couple_register("test", "02", "03", "1901",fakeEmail, "te1sttest", "68000");
    register_couple.couple_register2("test", "02", "03", "1901", 1 + fakeEmail);
    register_couple.confirm_register();
    register_couple.confirmTitle();
    Assert.assertEquals("Card List - ", driver.getTitle());
    card.couple_buy_a_card_and_assert_adding("test", "cardNumber", "2014", "12", "123");
}

//////////////////////////////////////

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

  @FindBy(name= "BuyButton")
    private WebElement clickOnBuyButton;

    public void setClickOnBuyButton() throws InterruptedException
    {
        Thread.sleep(3000);
        element(clickOnBuyButton).click();
        Thread.sleep(3000);
    }

    @FindBy(name= "CheckoutButton")
    private WebElement clickOnCheckoutButton;

    public void setClickOnCheckoutButton() throws InterruptedException
    {
        Thread.sleep(2000);
        element(clickOnCheckoutButton).click();
    }

/////////////////////////////////////

@Step
public void click_on_buy_button() throws InterruptedException
{
    buy.setClickOnBuyButton();
}

@Step
public void click_on_check_out_button() throws InterruptedException
{
    buy.setClickOnCheckoutButton();
}

@Step
    public void couple_buy_a_card_and_assert_adding(String name, String number, String year, String month, String verif) throws InterruptedException
    {
        click_on_buy_a_card_button();
        toggle_check_box();
        click_on_buy_button();
        click_on_buy_button();
        click_on_check_out_button();
        click_on_visa_icon();
        input_card_name(name);
        input_card_number(number);
        input_card_year(year);
        input_card_month(month);
        input_card_verification_number(verif);
        click_to_submit_card();
    }

/////////////////////////


(Александр Таранков) #2

Что ещё меняется кроме Jenkins? Браузер? Версия приложения? Элемент не обнаруживается на странице в течение 30 секунд. Это либо жесткие тормоза приложения, либо неверный локатор элемента. Либо элемента тупо нет на странице.
Добавь снятие скриншота в момент падения - хорошо помогает при подобных расследованиях


(Руслан) #3

ничего не меняется, абсолютно , Jenkins ver. 1.548

даже команда запуска та же :

(mvn) clean integration-test -U thucydides:aggregate -Dtags=couple_buy


(Руслан) #4

скрин добавил, он 1 шаг не выполняет, нажать на кнопку “BUY”, но пишет, что пройден

самое интересное : в общем есть 3 вида регистрации, это тестирование одного из них…это тип теста (№1) валится, другой (№2) нет, код идентичен, все методы вызываются одинаковые, только тут (№1) он падает не выполняя шаг, хотя пишет, что пройден

Возможно проблема с XVFB…так как он не видит верхнюю часть экрана…


(heartwilltell) #5

Я Вам уже как-то писал что с xvfb вообще будет много проблем, Вы захотели ити легким путем, потому что это был единственный путь когда у Вас что-то запустилось.

Старайтесь максимально эмулировать среду пользователя.


(Руслан) #6

привет, спасибо ещё раз за совет, но у меня проблема со стартом Jenkins через терминал, так что, приходится так запускать, пока не решиться проблема…
по поводу среды…старался как можно более приближенно эмулировать


(Andrey Kim) #7

У меня бывало что из-за разрешения Xvfb браузер не открывал страницу как надо и поэтому некоторые элементы не находились. Проблема решилась увеличиванием разрешения дисплея.


(Руслан) #8

да, спасибо, как раз с этим эксперементировал, действительно помогло