🔖 Справочник: Весь курс Auto QA в одной шпаргалке

← К оглавлению урока

⚡ Ключевые команды курса

# pytest
pytest test_file.py -v
pytest --alluredir=allure-results

# Allure
allure serve allure-results
allure generate allure-results -o allure-report --clean

# Selenium
pip install selenium webdriver-manager
driver = webdriver.Chrome()
driver.get("https://example.com")
driver.find_element(By.ID, "btn").click()

# Requests
import requests
resp = requests.get(url)
assert resp.status_code == 200
data = resp.json()

Allure: установка и запуск

КомандаОписание
pip install pytest allure-pytestУстановить pytest и плагин Allure
pytest --alluredir=allure-resultsЗапустить тесты, сохранить данные для отчёта
allure serve allure-resultsОткрыть интерактивный отчёт в браузере (веб-сервер)
allure generate allure-results -o allure-report --cleanСгенерировать статический HTML-отчёт
allure open allure-reportОткрыть готовый HTML-отчёт в браузере

Allure: декораторы разметки

ДекораторПримерОписание
@allure.epic@allure.epic("компании")Принадлежность к проекту/модулю
@allure.feature@allure.feature("READ")Функциональная группа
@allure.story@allure.story("Получение списка")Конкретный сценарий
@allure.title@allure.title("Получение всех компаний")Читаемое название теста
@allure.description@allure.description("Запрос с active=true")Подробное описание
@allure.severity@allure.severity("blocker")Критичность теста
@allure.id@allure.id("ITCH-1")ID для навигации в коде (не в отчёте)

Allure: шаги и вложения

СинтаксисПрименение
with allure.step("описание"):Контекстный менеджер — шаг внутри теста
@allure.step("описание")Декоратор на метод — весь метод = один шаг
@allure.step("api. Метод '{param}'")Автоподстановка параметра из аргумента метода
allure.attach(content, "title", type)Вложение: текст, скриншот, JSON и др.
allure.attachment_type.TEXTТип вложения — текст (SQL, лог)
allure.attachment_type.PNGТип вложения — изображение

pytest: ключевые команды

КомандаОписание
pytest test_file.py -vЗапуск с подробным выводом
pytest test_file.py -v -sС выводом print/logging
pytest test_file.py::test_func -vЗапуск конкретного теста
pytest -k "company"Запуск тестов, содержащих "company" в имени
pytest -m smokeЗапуск тестов с маркером smoke
@pytest.fixture(scope="class")Фикстура на уровне класса
@pytest.mark.parametrize("x", [1,2,3])Параметризованный тест

Selenium WebDriver: основные операции

ОперацияКод
Запуск браузераdriver = webdriver.Chrome()
Открыть URLdriver.get("https://example.com")
Найти элементdriver.find_element(By.ID, "username")
Найти несколькоdriver.find_elements(By.CLASS_NAME, "item")
Кликнутьelement.click()
Ввести текстelement.send_keys("text")
Очистить полеelement.clear()
Явное ожиданиеWebDriverWait(driver, 10).until(EC.visibility_of_element_located(...))
Закрыть браузерdriver.quit()

Requests: основные методы

МетодКодКогда использовать
GETrequests.get(url)Получение данных
POSTrequests.post(url, json=data)Создание ресурса
PATCHrequests.patch(url, json=data)Частичное обновление
PUTrequests.put(url, json=data)Полное обновление
DELETErequests.delete(url)Удаление ресурса

Requests: объект Response

Атрибут/методВозвращает
resp.status_codeint: 200, 201, 404, 500…
resp.json()dict или list (Python-объект)
resp.textstr — тело ответа как строка
resp.headersdict заголовков ответа
resp.urlstr — итоговый URL запроса

Уровни критичности Allure Severity

ЗначениеОписание
blockerКритично — блокирует весь прод
criticalВажно — критичная функциональность
normalОбычный приоритет
minorНезначительный баг
trivialКосметический дефект