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

Фотография

Выборочный запуск JUnit тестов на локальных машинах программистов до к

JUnit

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

#1 aleesa

aleesa

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Алиса
  • Город:Санкт-Петербург


Отправлено 06 мая 2014 - 05:18

Честно говоря, я не знаю, как правильно сформулировать вопрос, но постараюсь.

 

Наши программисты выразили желание получить возможность запускать автотесты у себя на машинах (или где-то еще) до коммита, не все сразу, а под конкретный функционал, например, если внесены изменения на странице создания пользователей, то им необходимо прогнать тесты (один класс с набором тестов на создание пользователей). Просят они это для того, чтобы не проверять вручную, и снизить вероятность коммита с явными ошибками. (еще хотят в результате тестирования получать принтскрин ошибки).

Вопрос в том, как это организовать? И хорошая ли эта идея?

 

Тестируем web-приложение на php.

Сборка проекта осуществляется через jenkins: он отслеживает коммиты, обновляет систему на виртуальных тестовых машинах, и прогоняет тесты через selelium grid. в результате получаются thucidides отчеты с принтскринами ошибок. 

Вся эта система перешла ко мне две недели назад, я еще до конца не понимаю, как это всё устроено, поэтому прошу прощения за неточные формулировки.

И, на самом деле, через дженкинс все еще пока тоже не идеально работает, нужно разбираться, почему selelium hub иногда зависает, ноды не подключаются и т.д.

 

 


  • 0

#2 aleesa

aleesa

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Алиса
  • Город:Санкт-Петербург


Отправлено 06 мая 2014 - 13:20

Решили запускать примерно так:

mvn test -Dtest=SmokeTest#loginByEmail -Dwebdriver.remote.url=http://192.168.11.3:4444/wd/hub -Dwebdriver.base.url=http://192.168.11.11

Но почему-то не работает запуск одного теста - прогоняется весь набор. Кто-нибудь знает, как решить проблему? 


  • 0

#3 Molechka

Molechka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 224 сообщений
  • ФИО:Ольга Назина (Киселева)
  • Город:Москва


Отправлено 06 мая 2014 - 14:15

Как составлены Ваши тесты?

 

У нас есть java класс, например SmokeTest.

Он смотрит на директорию, в которой лежат тест-кейсы, например, test_01_create, test_02_update итд.

 

Как запускать тесты:

 

1. Если нужны все тест-кейсы смоука:

mvn clean test -Dtest=SmokeTest

clean очищает директорию target, так надежнее )

 

2. Если нужен конкретный тест-кейс, есть 2 варианта:

mvn clean test -Dtest.case=test_01_create
mvn clean test -Dtest=SmokeTest -Dtest.case=test_01_create

Можно использовать первый вариант - мавен найдет тест-кейс и запустит его.

Но при этом выполнит юнит-тесты всех тестов (которые java-классы) в этой директории. 

 

Иногда это бывает долго и мы используем второй вариант - то есть в таком то тесте после прогона юнит-тестов выполни кейс test_01_create


  • 1
Автор сайта для начинающих тестировщиков http://testbase.ru/
Автор портала проверки названий багов http://bugred.ru/
Веду блог http://okiseleva.blogspot.com/

#4 asolntsev

asolntsev

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

  • Members
  • Pip
  • 64 сообщений
  • ФИО:Андрей Солнцев
  • Город:Таллинн

Отправлено 06 мая 2014 - 20:44

Одно могу сказать точно: это очень, очень хорошая идея!

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

Ещё лучше, если можно запустить не все тесты, а только часть - для изменённого функционала.

Следующий шаг - они смогут подправить свалившийся тест. А там уже и начнут сами писать тесты для нового функционала. Что может быть лучше?

 

Как это реализовать?

Проще всего им будет запускать тесты из IDE. То есть не из командной строки, а из Intellij IDEA, Eclipse, NetBeans или что там они используют для написания кода. Из IDE можно легко запустить как отдельный тест, так и целый класс или группу классов. И можно их подебажить. 

 

 

Честно говоря, я не знаю, как правильно сформулировать вопрос, но постараюсь.

 

Наши программисты выразили желание получить возможность запускать автотесты у себя на машинах (или где-то еще) до коммита, не все сразу, а под конкретный функционал, например, если внесены изменения на странице создания пользователей, то им необходимо прогнать тесты (один класс с набором тестов на создание пользователей). Просят они это для того, чтобы не проверять вручную, и снизить вероятность коммита с явными ошибками. (еще хотят в результате тестирования получать принтскрин ошибки).

Вопрос в том, как это организовать? И хорошая ли эта идея?

 

Тестируем web-приложение на php.

Сборка проекта осуществляется через jenkins: он отслеживает коммиты, обновляет систему на виртуальных тестовых машинах, и прогоняет тесты через selelium grid. в результате получаются thucidides отчеты с принтскринами ошибок. 

Вся эта система перешла ко мне две недели назад, я еще до конца не понимаю, как это всё устроено, поэтому прошу прощения за неточные формулировки.

И, на самом деле, через дженкинс все еще пока тоже не идеально работает, нужно разбираться, почему selelium hub иногда зависает, ноды не подключаются и т.д.


  • 0

#5 aleesa

aleesa

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Алиса
  • Город:Санкт-Петербург


Отправлено 07 мая 2014 - 07:18

Как составлены Ваши тесты?

 

У нас есть java класс, например SmokeTest.

Он смотрит на директорию, в которой лежат тест-кейсы, например, test_01_create, test_02_update итд.

 

У нас SmokeTest - это класс с тестами (тест-сьют с набором тест-кейсов в нем), структура примерно такая:

public class SmokeTest {
   
    @Before
    public void login() {
    }

    @Test
    public void addDocumentTest() {
    }

    @Test
    public void createRoleTest() {
    }

Поэтому я немного не понимаю, что значит "Он смотрит на директорию, в которой лежат тест-кейсы"? Объясните пожалуйста, как у вас составлены тесты.

 

У нас отработал отдельный тест по такой команде:

mvn test -Dit.test=SmokeTest#createSimpleUser -Dwebdriver.remote.url=http://192.168.11.24:4444/wd/hub -Dwebdriver.base.url=http://192.168.11.67 verify

Приходится запускать удаленно по ssh, т.к. программисты не хотят устанавливать себе Maven, Selenium, Java и т.д. Но как тестировать в этом случае, не делая коммита, я пока тоже не знаю.


  • 0

#6 Molechka

Molechka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 224 сообщений
  • ФИО:Ольга Назина (Киселева)
  • Город:Москва


Отправлено 07 мая 2014 - 08:59

Приходится запускать удаленно по ssh, т.к. программисты не хотят устанавливать себе Maven, Selenium, Java и т.д. Но как тестировать в этом случае, не делая коммита, я пока тоже не знаю.

 

О, ну если программисты себе не хотят Maven и Java устанавливать, то не знаю, что и посоветовать :)

У нас структура другая, но у нас не селениумовские тесты.

 

Один тест @Test, который делает одно и то же, например, обновляет запись. Но с разными входными и выходными данными - это и есть тест-кейсы.

Они лежат в директории ресурсов и выглядят примерно так:

 

1. На входе Х, на выходе У

2. На входе А, на выходе В

 

Ну и так далее. Тест при этом один, а у Вас. как я понимаю, все тесты немного разные )


  • 0
Автор сайта для начинающих тестировщиков http://testbase.ru/
Автор портала проверки названий багов http://bugred.ru/
Веду блог http://okiseleva.blogspot.com/



Темы с аналогичным тегами JUnit

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

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