Size: a a a

testing_in_python

2021 April 30

НБ

Николай Блинчук... in testing_in_python
Всем привет. Ребят, подскажите пожалуйста на какой инфраструктуре гоняете тесты на pytest? У нас сейчас Jenkins + docker контейнеры для каждого автотеста. Какие ещё возможны неплохие  варианты?
источник

СС

Сказочный Сникерс... in testing_in_python
все ж зависит от того как у тебя все устроено
источник

OC

Oleg Chaplashkin in testing_in_python
На моей практике получается так, что система и ее инфраструктура невольно подгоняется под логику тестируемого продукта.
Был опыт микросервисов - docker, k8s множество красивых интеграций и gitlab ci
Сейчас монолит с windows core - powershell, gitlab ci
источник

НБ

Николай Блинчук... in testing_in_python
Есть веб-приложение. Для него написаны GUI и API автотесты. Запускаются следующим образом:
1. Дженкинс инициирует запуск джобы автотеста
2. На соответствующей линукс ноде дженкинса запускается докер контейнер
3. Внутри докер контейнера выкачивается реп с автотестами
4. Так же внутри контенера тесты запускаются

Суть в том, что меня переводят на новый проект. И стоит задача уменьшить количестов флаки тестов. И мне нужно решить - копать сами автотесты и работать над их стабильностью, или там в принципе у них инфраструктура не очень и есть что-то более стабильное
источник

СС

Сказочный Сникерс... in testing_in_python
а докер для чего?
источник

СС

Сказочный Сникерс... in testing_in_python
ну это даже не важно на самом деле. вопрос все равно не особо понятен что тебе хочется узнать?) пока инфра как инфра, ничего особенного
источник

НБ

Николай Блинчук... in testing_in_python
тесты иногда засирают окружение, в котором работают, проще грохнуть контейнер и создать новый, чем чистить файловую систему и процессы
источник

НБ

Николай Блинчук... in testing_in_python
Просто хотелось узнать, какие еще бывают рабочие инфраструктурные цепочки, что именно прям себя зарекомендовали с течением времени
источник

СС

Сказочный Сникерс... in testing_in_python
не совсем понял. тесты от разных запусков или тесты в процессе 1 запуска?
источник

СС

Сказочный Сникерс... in testing_in_python
ты выше написал что у тебя докер на каждый автотест, это правда?
источник

НБ

Николай Блинчук... in testing_in_python
глубо говоря, если на одной и той же ноде сделать сначала 1 запуск, а потом второй, то нет гарантии, что что-нибудь не осталось от первого запуска и не навернется текущий запуск. Это мне так объяснили текущие автотестеры. Хотя я вот сейчас это написал и понял, что надо бы с этим разобраться. Ну и плюс это позволяет параллелить тесты на одной ноде.
источник

НБ

Николай Блинчук... in testing_in_python
выходит, что да. Точнее на каждый прогон последовательной серии автотестов
источник

СС

Сказочный Сникерс... in testing_in_python
понятно. ничего особо критичного у тебя в описании нет на самом деле. вообще дженкинс даже при параллельном запуске делает свои воркспейсы для каждого билда. то есть минимально директориями и воркспейсами они разделены. во вторых - дженкинс должен чистить воркспейс перед сборкой, чтобы не осталось артефактов от прошлой сборки (НЕ ВЛИЯЕТ НА ПАРАЛЛЕЛЬНЫЙ ПРОГОН).

в третьих - дженкинс сам может выкачивать репу которую можно подсовывать тестам или докеру. но это тоже не критично
источник

НБ

Николай Блинчук... in testing_in_python
Насчет воркспейса это да, понятно. У нам просто так бывало: автотест может создать временную папку где-нибудь в /usr, сделать на нее маунт например, а потом где-нибудь завалиться и маунт не почистить
источник

СС

Сказочный Сникерс... in testing_in_python
не надо создавать в общих дирах) пусть создает в воркспейсе
источник

СС

Сказочный Сникерс... in testing_in_python
ну собственно у тебя докеры, проблема решена автоматически)
источник

НБ

Николай Блинчук... in testing_in_python
ага, это я пытался обосновать, почему появились контейнеры)
источник

СС

Сказочный Сникерс... in testing_in_python
у меня тож в докере все запускается, но там другая причина. у меня продукт и тесты тесно связаны. как минимум они в одной репе, как максимум продукт надо собрать перед тестированием. а затем тесты сами поднимаеют то количество сервисов которое тестам необходимо и тестируют их уже
источник

СС

Сказочный Сникерс... in testing_in_python
точнее в системе докеров уже. компоуз
источник

НБ

Николай Блинчук... in testing_in_python
не совсем понял, а что значит "поднимает то количество сервисов которое тестам необходимо" - что за сервисы имеются ввиду?
источник