Перейти к содержимому

Публикации tab15

18 публикаций создано tab15 (учитываются публикации только с 20 апреля 2023)


#139540 Обращение к веткам с общим родителем в XPath

Отправлено автор: tab15 25 февраля 2015 - 11:23 в Автоматизированное тестирование

//a/d/e[contains(text(),'50 копеек')]/following-sibling::f

Например так?




#138272 Не запускается плагин при автотесте

Отправлено автор: tab15 14 января 2015 - 13:45 в Selenium - Functional Testing

Наверное, вам нужно создать профайл браузера для автотестов, в котором будут разрешены/запрещены необходимые плагины.




#138136 Screenshot при параллельном запуске тестов

Отправлено автор: tab15 07 января 2015 - 14:26 в Selenium - Functional Testing

Решилось всё обёрткой ThreadLocal<WebDriver> вместо обычного WebDriver




#138034 Screenshot при параллельном запуске тестов

Отправлено автор: tab15 30 декабря 2014 - 14:55 в Selenium - Functional Testing

Здравствуйте,

 

возникла необходимость запуска тестов параллельно.

Используется JUnit. RemoteWebDriver и подправленный (как в этом примере http://testingbot.co...llel-junit.html) Parameterized runner.

Вроде все работает, но есть одна проблема. Необходимо, чтобы при ошибке тест автоматически делал скриншот. Я пытался создать свой Listener, унаследованный от RunListener, но не могу получить необходимую инстанцию WebDriverа (сам процесс взятия скрина работает, я его проверил, сделав драйвер статическим). Инициализация драйвера происходит в тесте - родителе для всех остальных тестов.

Вопрос: как получить необходимый драйвер для взятия скриншота, когда тесты бегут параллельно? И вообще может быть есть какой то другой разумный способ?

 

За ранее спасибо.

 

Всех с натсупающим!

 

 




#136159 Запуск тестов (InternetExplorerDriver) при помощи Maven

Отправлено автор: tab15 04 ноября 2014 - 15:39 в Selenium - Functional Testing

Действительно, Алексей, проблема была в testInstance. Наш тест проект - spring проект. Покопавшись я наткнулся на следующую вещь http://stackoverflow...unit-test-error. И действительно, наведя порядок в dependencies, всё заработало.

Хмм 3 дня ушло на поиск проблемы.




#136150 Запуск тестов (InternetExplorerDriver) при помощи Maven

Отправлено автор: tab15 04 ноября 2014 - 10:05 в Selenium - Functional Testing

Дело в том что тест не работает (не запускается IE) именно при запуске из коммандной строки. При запуске через IDE все работает. Запускается IE нет никаких проблем. Поэтому при дебаггинге все проходит и нет NullPointerException. Именно поэтому мне кажется, что я где-то что-то упустил

setup-методе Вы инициализируете локальную переменную driver, а не поле класса

Нет все там глобально:) Этот кусочек кода я упростил для наглядности.

 

Выписать значение переменных в консоль тоже не получится - у меня нет прав на изменения в xxx.xxxxx.common.test.endtoend, где и находится источник ошибки




#136144 Запуск тестов (InternetExplorerDriver) при помощи Maven

Отправлено автор: tab15 04 ноября 2014 - 09:18 в Selenium - Functional Testing

Running xxx.xxxxx.tests.BlahTest
java.lang.NullPointerException
at xxx.xxxxx.common.test.endtoend.ScreenshotTakingJUnit4ClassRunner.captureScreenshot(ScreenshotTakingJUnit4ClassRunner.java:120)
at xxx.xxxxx.common.test.endtoend.ScreenshotTakingJUnit4ClassRunner.access$000(ScreenshotTakingJUnit4ClassRunner.java:24)
at xxx.xxxxx.common.test.endtoend.ScreenshotTakingJUnit4ClassRunner$1.testFailure(ScreenshotTakingJUnit4ClassRunner.java:71)
at org.junit.runner.notification.RunNotifier$4.notifyListener(RunNotifier.java:139)
at org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:61)
at org.junit.runner.notification.RunNotifier.fireTestFailures(RunNotifier.java:134)
at org.junit.runner.notification.RunNotifier.fireTestFailure(RunNotifier.java:128)
at org.junit.internal.runners.model.EachTestNotifier.addFailure(EachTestNotifier.java:23)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:275)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at xxx.xxxxx.common.test.endtoend.ScreenshotTakingJUnit4ClassRunner.run(ScreenshotTakingJUnit4ClassRunner.java:79)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:45)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)

Это то что находится в консоли.

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

Думается мне, что судя по логу (ScreenshotTakingJUnit4ClassRunner.java:120), все это дело валится при вызове getWebDriver()

File screenshot = ((TakesScreenshot) testInstance.getWebDriver()).getScreenshotAs(OutputType.FILE);



#136141 Запуск тестов (InternetExplorerDriver) при помощи Maven

Отправлено автор: tab15 04 ноября 2014 - 08:50 в Selenium - Functional Testing

Всем привет!

Возникла необходимовсть запускать тесты в IE (опыта с этим драйвером к сожалению нет). Получилось настроить и запустить тесты из IDE (Idea).

Следующий шаг - запуск при помощи Maven. Вот тут возникла проблема. Internet Explorer никак не хочет запускаться. Тест валится при обращении к драйверу на java.lang.NullPinterException

Мои действия:

- IEDriverServer.exe скачан в папку C:\IEDriver

- В системную переменную Path добавлен путь C:\IEDriver (на всякий случай и в коде)

- Инициализация драйвера происходит следующим образом

File file = new File("c:/IEDriver/IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

final DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
сapabilities.setCapability(ШnternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(capabilities);

- maven команда для запуска тестов

mvn -DfailIfNoTests=false test

- OS Windows7 x64, драйвер тоже x64, IE10 (также опробовано на OS Windows server 2003 x86, driver x32, IE8)

 

Уверен, что дело в какой нибудь ерунде, про которую я забыл.

 

Спасибо за советы.




#135530 Нагрузочное тестирование SoapUI

Отправлено автор: tab15 16 октября 2014 - 11:03 в Автоматизированное тестирование

На счет Soap UI могу кое что сказать из личного опыта (когда то на нем пришлось делать нагрузочное тестирование в версии 4.5)

Soap UI в первую очередь предназначен для автоматического тестирования. Нагрузочное тестирование в нем представлено не ахти: скудная настройка нагрузочных сценариев, нет "красивых" репортов и графиков, неудобная настройка передачи данных для тестов, возможность тестировать только веб-сервисы. В общем Soap UI подходит скорее для быстрой проверки нагрузки при помощи своих же готовых автоматических тестов.

Может быть сейчас другая ситуация, хотя не верится, для этих целей Smarbear (то отделение которое делает Soap UI) продвигает Load UI.




#135527 Selenium + JUnit + Jenkins - запускать выбранные тесты

Отправлено автор: tab15 16 октября 2014 - 10:10 в Selenium - Functional Testing

Можно использовать Category в JUnit, а с Jenkins Антом запускать только тесты определенной категории (название категории передавать как Property в Ant скрипт)




#132629 Jenkins. Результаты тестов на почту.

Отправлено автор: tab15 25 июля 2014 - 15:07 в Selenium - Functional Testing

И еще вопрос от меня: каким образом вы добавляете trend (график) в сообщение? У меня только как ссылку получается:( Есть ли какой то способ посылать его как приложение к письму?

Этот способ не работает http://stackoverflow...r-as-attachment из-за нашей внутрифирменной политики безопасности.




#132628 Jenkins. Результаты тестов на почту.

Отправлено автор: tab15 25 июля 2014 - 15:02 в Selenium - Functional Testing

В более новых версиях плагина появился параметр showMessage, попробуйте ${FAILED_TESTS, showStack=false, showMessage=false}

https://github.com/j...stsContent.java




#132491 pattern PageObject как правильно открыть ссылку

Отправлено автор: tab15 23 июля 2014 - 08:22 в Selenium - Functional Testing

Например, написать в TestBase метод getWebDriver(), который будет возвращать вебдрайвер, а потом с ним из тестов можно работать как хотите




#128349 Удержание фокуса на элементе

Отправлено автор: tab15 18 марта 2014 - 08:14 в Selenium - Functional Testing

leipreachan, cпасибо за ответ.

Тесты у нас на 4х машинах, все под линуксом. Но, к сожалению, тестов намного больше.

Инетересует именно к/л возможность удерживать фокус при помощи кода. Или единственный способ прямо "жестким" способом залазить в DOM страницы? Или, на крайний случай, может быть есть какая-то логика в том когда фокус перескакивает с теста на тест (пока мне кажется, что это происходит случайным образом)? 




#128330 Удержание фокуса на элементе

Отправлено автор: tab15 17 марта 2014 - 18:27 в Selenium - Functional Testing

Здравствуйте,

 

возникла следующая проблема. Имеется в наличии много тестов, разных веб-приложений, которые запускаются автоматически при изменениях в системе (для этих целей используем Jenkins). К сожалению случается, что запускаются 2 теста в одно и то же время на одной и той же машине. И эти тесты друг у друга то и дело крадут фокус. Все бы ничего, но в наличие есть тесты, где при потере фокуса происходит к/л событие (где-то javascript, где-то ajax), из-за которого тест не проходит.

Не сталкивался ли кто с такой проблемой? И как она решается? К сожалению, распределить тесты полностью так, чтобы они бежали в разное время или на разных машинах, нет возможности.




#128258 Дизайн PageObject'ов на Java

Отправлено автор: tab15 14 марта 2014 - 08:38 в Selenium - Functional Testing

 

 

Я пока не работал с PageFactory, но откуда оно будет знать какие из задекларированных элементов инициализировать, а какие - нет?

PageFactory по умолчанию работает с так называемой "lazy" инициализацией, т.е. те элементы, которые у вас обозначены аннотацией @FindBy Selenium будет искать только при обращении к ним (в моем примере выше addButton будет инициализироваться только при действии addButton.click())

 

Почитайте http://internetka.in...um-page-object/ там все очень наглядно объяснено.




#128236 baseUrl как переменная?

Отправлено автор: tab15 13 марта 2014 - 21:19 в Selenium - Functional Testing

В связке Jenkins - Ant, наверное проще добавить baseUrl как параметр, который будет использоваться в качестве аргумента при запуске теста.

вот пример:

http://stackoverflow...-line-arguments




#128235 Дизайн PageObject'ов на Java

Отправлено автор: tab15 13 марта 2014 - 20:50 в Selenium - Functional Testing

Если я правильно понял вопрос, то, наверное, можно решить это тем, что метод добавления элемента на страницу будет возвращать саму эту страницу, а в теле метода добавлять ее в PageFactory.

Что то типа

public class FooPage() {
    private WebDriver driver;

    // Кнопка для добавления элемента на страницу
    @FindBy(id = "bar")
    private WebElement addButton;
    
    // конструктор
    public FooPage(WebDriver driver) {
        PageFactory.initElements(driver, this);
        this.driver = driver;
    }

    // метод, добавляющий элемент при нажатии на кнопку, и добавляющий "обновленную" страницу в PageFactory
    public FooPage addElementX() {
        addButton.click();
        
        PageFactory.initElements(driver, this);
        return this.getClass();
    }
}