Maven Projects-> Lifecycle-> package (двойной клик)
Я не приведу пример потому что апликейшены с тестами никто не делает. Если нужно иметь 3 пачки разных тестов, то проставь им группы :
@Test(dataProvider = "Create Experiment with selected files", dataProviderClass = ExperimentDataProvider.class, groups = {"test"})
Сделай тест сьюты и в зависимости от конфигов запускай уже конкретные группы.
В тестах мейн класса нет. Хотя конечно ты можешь взять все свои тесты, создать меин класс в папке src->main-> java. Но нормальные люди так не делают.
Я делал так
А чего перестал?
Не то, чтобы перестал. На каких-то проектах эти рудименты сохранились. Просто сейчас не стоит задачи максимально разгонять скорость тестов или изолированных запусков из alm систем.
Хочу убедится что мы правильно друг друга понимаем.
- да это проект в котором есть только тесты;
- все эти классы (и тесты) должны быть в исполняемом файле;
- нужна возможность задавать приоритет тестам до запуска исполняемого файла или во время его работы;
Проект большой и для регрессионного тестирования это необходимо.
Ты бы не мог пояснить более подробно какую функцию в приведённом тобой примере выполняет dataProvider и dataProviderClass? Дело в том что я использую его для передачи входящих параметров в тест… и как бы другого назначения не встречала. Например как описано здесь TestNG - Parameterized Test.
- все эти классы (и тесты) должны быть в исполняемом файле;
и- нужна возможность задавать приоритет тестам до запуска исполняемого файла или во время его работы;
Честно говоря я с таким не сталкивался что бы менять приоритеты уже внутри исполняемого файла. Т.к это уже получается не тесты а программы что ли.
dataProvider не несёт никакой смысловой нагрузки в данном примере, просто показал как будет выглядеть строчка если ты его используешь. Но опять же если это будет исполняемый файл, а не тест то группы тут уже не помогут.
Если не секрет зачем именно исполняемые файлы?
Программисты люди загадочные… На тестовый заливаем одно, а в продакшен отдаём другое… Тесты написаны так что они сами делают какие-то подготовительные шаги @BeforeTest (а случае с авторизацией это будит регистрация), выполняется тест и @AfterTest подчищаем за собой (например это удаление зарегистрированного пользователя с БД) Вообщем нужно что бы они выполнялись после внесения изменений программистами (деплоя), а по тому как честных людей мало это должно происходить само собой (выполнение тестов). Очень грустно когда клиенты говорят нам о том что апа упала или не работает и т.д.
Я имела ввиду ни в самом джарнике что-то менять во время выполнения, а файл с которого джарник читает какие тесты и в каком порядке ему выполнять.
Так и всё же зачем джарник? Почему бы не запускать mvn test -Dgroups=auth,register ?
Какой это даст результат?
Не нужно собирать джарник каждый раз, конфигами можно менять параметры запуска тестов . А главное - тесты будут тестами а не апликейшенами.
А как конфигами менять параметры запуска тестов?
Допустим такой вариант устроит. Я смогу эти тесты положить на виртуалку и в бесконечном цикле их выполнять? Если да то подскажи пожалуйста как это сделать. То есть что мне туда(на виртуалку) закинуть и как запустить.
Про конфиги лучше нагуглите т.к это долго и нудно расписывать.
В идеале ставите дженкинс или на крайняк windows scheduler можете запускать тесты по графику. Закидываете просто папку с проектом. Т.к у тебя мавен проект то все тесты можно запустить через консоль командой mvn test ( в папке с проектом) или сделать все нужные настройки в дженкинсе.
У меня проект лежит на битбакете. Дженкинс сам тянет код из репозитория, мавеном компилит и запускает.
А можешь поподробнее про запуск из alm систем?
на данный момент вопрос не стоит, но интересно для общего развития.
Наверное, это стоит вырезать в отдельную ветку
Да, лучше вынести в отдельную. А по сути там ничего особенного. Всё больше упирается в то, какая ALM система используется конкретно у вас на проекте и для чего вам из неё делать запуски (подсказка: обычно для красивых отчетов начальству )
Какой инструмент лучше использовать в качестве тест-менеджемент тула
Могу посоветовать следующее:
- почитайте как следует про Maven, TestNG и т.п. (т.е. не гуглите ответы на конкретные вопросы, а постарайтесь ознакомиться с инструментами);
- почитайте про Jenkins, он как раз Вам бы подошел для регулярного запуска тестов
Опешите пожалуйста как вы в своих проектах используете автоматизированное тестирование. Единственное просьба придерживаться какого-то плана изложения, что бы не путать друг друга и по итогу получать “картинку” того как и в какой комбинации люди используют инструменты, фреймворки, библиотеки и т.д., как управляют наборами тестов и какие результаты получают в итоге.
Всё пропало, школьники добрались и сюда.
В таком случае вам ничего не стоит разъяснить “школьникам” какие инструменты и фреймворки использовать дабы получить авто-тесты для регресионного тестирования. Можно с примерами, как для школьников. Буду очень признательна.
Для ваших целей testNG + gradle
в тест нг создаёте раннеры хмл с параметрами (которые будет запускать одни и теже тесты с разными параметрамиб вариантами тестов и т.д.)
примерно так:
> <suite name="Regression suite" verbose="5" parallel="methods">
> <!--<suite name="Default Suite" verbose="10" parallel="methods" data-provider-thread-count="1">-->
> <parameter name="stage" value="UAT"/>
> <parameter name="country" value="UK"/>
> <!--<parameter name="path_generated" value="src/test/resources/generated/regression/"/>-->
> <parameter name="path_generated" value="src/test/resources/runnersTestNg/"/>
> <parameter name="path_report" value="src/test/resources/generated/regression/"/>
> <test name="Test">
> <classes>
> <class name="">
> <methods>
> <include name=""/>
> </methods>
> </class>
> </classes>
> </test>
> <!-- Test -->
> </suite> <!-- Default Suite -->
А в гредле таски типа
task имя_таска (type: Test) {
testLogging.showStandardStreams = true
useTestNG {
useDefaultListeners false
ignoreFailures false
suites 'src/test/resources/runnersTestNg/название_раннера.xml'
}
}
ну и запускайте где хотите - локально \ CI