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

Фотография

Webdriver + Java и параллельный запуск тестов в TeamCity


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 shadow from omsk

shadow from omsk

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Зиновьев Александр
  • Город:Омск

Отправлено 13 июня 2012 - 04:38

Тесты проверяют работоспособность нескольких форм. Если запуск тестов организовываю для разных браузеров, то напрашивается структура, где для разных браузеров выполняется один код. Например:

@Test
public void loginTest(){

   // тестируем форму авторизации
}

@Test
public void profileTest(){

   // тестируем форму профиля пользователя
}

@Test
public void logoutTest(){

   // тестируем форму выхода
}

При запуске тестов через TeamCity или локально, после прохождения теста loginTest дальнейшее выполнение тестов (profileTest и logoutTest) останавливается, тест падает, с ошибкой что элемент формы не найден. Хотя форма открылась, элемент на ней есть, но при попытке к нему обратиться тест падает, ибо пытается найти элемент с ошибочным id (если обращаться по id), причем в коде теста id указан верно, а сам тест получает другой.

Если я разношу это по разным классам, для отдельного запуска, например так:

loginTest.java
profileTest.java
logoutTest.java

то этот же код замечательно отрабатывает. Проверял в разных браузерах (Хром, Мозилла, ИЕ), поведение одинаковое. Была мысль, что такое происходит из-за параллельного запуска тестов, в pom.xml отключил это так:
<configuration>
   <parallel>methods</parallel>
   <threadCount>1</threadCount>
</configuration>

Это только затормозило выполнение тестов на виртуальной машине с TeamCity, но ошибку с запуском тестов не исправило. Не могу понять, что запускаю не так? Хочу что бы код выглядел красиво и не повторялся несколько раз для разных браузеров.
  • 0

#2 shadow from omsk

shadow from omsk

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Зиновьев Александр
  • Город:Омск

Отправлено 26 июня 2012 - 02:05

С такой проблемой не сталкивались?
  • 0

#3 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 29 июня 2012 - 09:26

С такой проблемой не сталкивались?


Не видя кода сказать что-то сложно... мы ж не телепаты...
  • 0
Алексей Булат
Про Тестинг

#4 shadow from omsk

shadow from omsk

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Зиновьев Александр
  • Город:Омск

Отправлено 02 июля 2012 - 07:43

код приведен в первом посте, драйверу передается указание открыть URL, проверить что там есть элемент (один). Это реализовано так:

        driver.navigate().to(baseUrl + "/login");
        System.out.println("Текущая страница " + driver.getTitle());
        // проверка наличия полей Логин и Пароль
        driver.findElements(
            By.xpath("//*[text()='Логин']"))
            .isEmpty();
        driver.findElements(
            By.xpath("//*[text()='Пароль']"))
            .isEmpty();
        driver.findElements(
            By.id("submit-button")).isEmpty();

На форме больше нет элементов. Собственно во втором и третьем тесте примерно те же действия, но с другой формой и другим URL. Пытался искать по xPath, результат тот же, тест падает. Так что не принципиально, по id или по xPath идет обращение к элементу.
  • 0

#5 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 02 июля 2012 - 08:33

код приведен в первом посте

Так мы с вами далеко не уедем. То что вы запостили - это не код, а его отрывки, вырванные из контекста. (неужели сложно целиком класс приаттачить)

парочка дополнительных вопросов:
1. что вы используете для запуска тестов Junit, TestNG или что-то другое??? (как вы вызываете тесты?)
2. можно ли увидеть стектрейс ошибки, там хоть будет написано в какой линии ошибка произошла
3. можно ли Html странички, ну или хотя бы её части, где расположены требуемые элменты.
  • 0
Алексей Булат
Про Тестинг

#6 shadow from omsk

shadow from omsk

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Зиновьев Александр
  • Город:Омск

Отправлено 03 июля 2012 - 06:53

1) JUnit, версия 4.8.2
2) Ошибка каждый раз разная, то на одну строку покажет, то на другую, не показатель, так я уже пытался вычислить, что вызывает ошибку.
3) Именно той страницы увидеть нельзя (связан по рукам и ногам NDA), давайте я напишу новый тест на любой публичный ресурс, имеющий два поля для авторизации и выложу код? Там будет падать точно так же, я уже пытался.


Именно пункт 3 меня подтолкнул к тому, что я что то не так делаю.Ибо уговор был о ручном тестировании, но я слишком ленив и хочу автоматизации, ибо лень - двигатель прогресса :)
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных