Возникла гипотеза о том, что один из багов на моём стенде возникает из за одновременных попыток авторизации сразу нескольких автотестов.
Как проверить?
Можно открыть несколько вкладок браузера в режиме инкогнито, открыть в каждом по сайту и попытаться одновременно залогиниться. Но у такого подхода есть два минуса.
- Во-первых, настройки теста меняют поведение браузера. Так что ручной запуск может быть неинформативным (хотя с этого я и начал).
- Во-вторых, ну сколько вкладок можно запустить таким образом. Две? Три? А если хочу сразу 10?
Я работаю из под Windows 10, а потому следующим этапом стало создание двух cmd-файлов.
starter.cmd
[code]cd C:\pyproject\
venv\Scripts\pytest.exe \tests\test_auth.py
pause[/code]
- Первая строка переходит в папку проекта.
- Вторая — запускает нужный мне автотест.
- Третья — ставит паузу, чтобы окно не захлопнулось сразу после окончания теста. Это на всякий случай.
Второй файл — запускает заданное количество экземпляров первого файла.
multistarter.cmd
[code]cd C:\pyproject\
set x=0
:A
set /a x=%x%+1
start starter.cmd
if not %x%==10 goto :A[/code]
В первой строке мы переходим в папку проекта (где лежит starter.cmd). В последней — задано количество одновременно запущенных экземпляров starter.cmd
Всё. Теперь запускаю multistarter.cmd и наслаждаюсь процессом.
Вместо C:\pyproject\ можно указать путь к папке, где лежат оба ваши cmd-файла.
Вместо venv\Scripts\pytest.exe \tests\crowd_mos_ru\ideas\test_proverka_predlozhit_ideju.py — любую другую программу, которую нужно запустить в нескольких экземплярах.
Все экземпляры автотеста авторизовались и отработали без ошибок. Баг не подтвердился.
А что если один из автотестов использует логаут? Пошёл копать код в поисках подобной неприятности.
А с вами был Доктор Лексиум. До новых постов.
Напишите комментарий