Связка pytest + selenium
Есть метод, логика которого попадает под 3 разных тест-кейса, с той разницей, что запускать их нужно с разными параметрами. Скажем {case_id: 1, partner: 1}, {case_id: 2, partner: 2} и тд
Так вот можно ли передать id и параметры запуска в декораторе питона или еще каким-то образом для трех разных запусков одного метода с разными параметрами?
Использовал для похожей ситуации @pytest.mark.parametrize, но по окончанию прогона он пушит статусы в одно и тоже место, не распределяя их по отдельным id
Очень сложно представить что именно вам нужно) Напишите хотябы псевдокодом что именно требуется. А лучше напишите код и укажите что именно не нравится.
если псевдокод, то примерно так!
деф тест_баланс(кококо):
открыть_главную_страницу()
залогиниться()
зайти_в_лк()
ассерт юзер.баланс == баланс.текст
Юзеров бывает 3 типа, у каждого свой баланс, тест(в коде) на проверку баланса один, а тест-кейсов в тест-реиле 3 (по одному на каждый тип юзера)!
как мне проверить всех юзеров и отправить соотвествующие статусы в тест-реил без доблирования кода приведенного в примере выше
к примеру если я использую декоратор @pytest.mark.parametrize, то выходит такая шляпа
@pytest.mark.parametrize(юзер_н, [юзер_1, юзер_2])
деф тест_баланс(кокок):
открыть_главную_страницу()
залогиниться(юзер_н)
зайти_в_лк()
ассерт юзер_1.баланс == баланс.текст
Он запустит метод 2 раза с юзер_1 и юзер_2 по-очереди, но результат в тест-реиле будет один - последний
Если в Тестрейле тест-кейс один на всех пользователей - то результат будет записываться последний, но в истории можно будет посмотреть прогон теста со всеми юзерами.
Не знаю как с плагином pytest-testrail, но могу предположить что можно задавать номер тест кейса для Тестрейла в pytest.mark.parametrize - соответственно юзеру для которого запускается тест-кейс. Но это надо вручную наверное без плагина TestRail Api интегрировать и костыль по завершению тест кейса писать…
ну вот очень хочется обойтись без костылей, но не могу найти нормальную интеграцию pytest с testrail без гемора с параметризацией фикстур
там работы на 2 часа же, напедалить отправку веб хуков в тест рейл в конце выполнения теста, да и всё
Если я правильно понял, то вам надо параметризованный тест раскидать на 2 кейса в тестрейле.
Вот пример с одного из моих прошлых проектов. Плагин pytest-testrail
. Адаптируйте под себя:
from pytest import mark, param
@mark.parametrize('device, api_key', [
param('web', 'KEY1',
marks=mark.testrail(ids=('CASE1',))),
param('tv', 'KEY2',
marks=mark.testrail(ids=('CASE2',))),
])
Не надо, пример выше ^
вооот мне нужен был адекватный пример с маркировкой айдишников для тест-реила! То, что надо Спасибо)