Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,30 @@
# Diplom_2
# Diplom_2
# Автотесты для API
Протестированы эндпоинты API для Stellar Burgers.
URL: https://stellarburgers.education-services.ru/
API документация: https://code.s3.yandex.net/qa-automation-engineer/python-full/diploma/Api-Stellar_Burgers.pdf

# Протестировано
Создание пользователя:
- создать уникального пользователя;
- создать пользователя, который уже зарегистрирован;
- создать пользователя и не заполнить одно из обязательных полей.
Логин пользователя:
- вход под существующим пользователем;
- вход с неверным логином и паролем.
Создание заказа:
- с авторизацией;
- без авторизации;
- с ингредиентами;
- без ингредиентов;
- с неверным хешем ингредиентов.

# Инструкция по запуску:
1. Установка зависимостей:
pip install -r requirements.txt

2. Запуск всех тестов и запись отчета:
pytest --alluredir=./allure-results

3. Просмотр отчета по прогону html
allure serve ./allure-results
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uuid": "bda0e1f6-a713-4c14-b3bc-ac9658d80abe", "befores": [{"name": "field", "status": "passed", "start": 1771964743803, "stop": 1771964743803}], "start": 1771964743803, "stop": 1771964744303}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name": "Создание заказа без авторизации", "status": "failed", "statusDetails": {"message": "AssertionError: assert 200 == 401\n + where 200 = <Response [200]>.status_code", "trace": "self = <test_order_create.TestOrderCreation object at 0x000001240C328B00>, get_available_ingredients = ['61c0c5a71d1f82001bdaaa6d', '61c0c5a71d1f82001bdaaa6f']\n\n @allure.title('Создание заказа без авторизации')\n def test_create_order_without_auth_error_401(self, get_available_ingredients):\n with allure.step('Отправить POST-запрос на создание заказа без токена'):\n response = OrderMethods.create_order(get_available_ingredients)\n \n with allure.step('Проверить, что статус-код 401 и ошибка \"You should be authorised\"'):\n> assert response.status_code == 401 # Ожидаем 401 по документации, но сервер возвращает 200, тест будет падать\nE assert 200 == 401\nE + where 200 = <Response [200]>.status_code\n\ntests\\test_order_create.py:59: AssertionError"}, "steps": [{"name": "Отправить POST-запрос на создание заказа без токена", "status": "passed", "start": 1771964737621, "stop": 1771964738127}, {"name": "Проверить, что статус-код 401 и ошибка \"You should be authorised\"", "status": "failed", "statusDetails": {"message": "AssertionError: assert 200 == 401\n + where 200 = <Response [200]>.status_code\n", "trace": " File \"C:\\Users\\BOSS\\Diplom\\Diplom_2\\tests\\test_order_create.py\", line 59, in test_create_order_without_auth_error_401\n assert response.status_code == 401 # Ожидаем 401 по документации, но сервер возвращает 200, тест будет падать\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"}, "start": 1771964738128, "stop": 1771964738128}], "start": 1771964737621, "stop": 1771964738134, "uuid": "9de0406e-9c2f-4b33-b0f9-30e52af798b6", "historyId": "ba1c41154d9a5c5a9443de1c4c141fb5", "testCaseId": "ba1c41154d9a5c5a9443de1c4c141fb5", "fullName": "tests.test_order_create.TestOrderCreation#test_create_order_without_auth_error_401", "labels": [{"name": "feature", "value": "Создание заказа"}, {"name": "parentSuite", "value": "tests"}, {"name": "suite", "value": "test_order_create"}, {"name": "subSuite", "value": "TestOrderCreation"}, {"name": "host", "value": "DESKTOP-OOOSF5A"}, {"name": "thread", "value": "7664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.test_order_create"}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uuid": "66335898-4a6a-46a9-bb74-52178ff6cc02", "children": ["eb8b4127-e922-4988-a077-cb38b8a5858e"], "befores": [{"name": "cleanup_user", "status": "passed", "start": 1771964738291, "stop": 1771964738291}], "afters": [{"name": "cleanup_user::0", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'john@russell-haynes.net'"}, {"name": "password", "value": "'T2#PQz5V^V'"}], "start": 1771964738840, "stop": 1771964739397}, {"name": "Удаление пользователя", "status": "passed", "parameters": [{"name": "token", "value": "'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5OWUwOTQyOTg0MjcwMDAxYmU1NzM2YSIsImlhdCI6MTc3MTk2NDczOSwiZXhwIjoxNzcxOTY1OTM5fQ.nTMGQhMgFm7TBKuE8vTugmIRd1gr3ckBQ29GJznKk-Q'"}], "start": 1771964739397, "stop": 1771964740483}], "start": 1771964738840, "stop": 1771964740492}], "start": 1771964738291, "stop": 1771964740493}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name": "Нельзя создать пользователя без обязательного поля email, password, name", "status": "passed", "steps": [{"name": "Сгенерировать валидные данные и удалить поле", "status": "passed", "start": 1771964744311, "stop": 1771964744312}, {"name": "Отправить POST-запрос на регистрацию", "status": "passed", "steps": [{"name": "Регистрация пользователя", "status": "passed", "parameters": [{"name": "body", "value": "{'email': 'gregory@hebert.org', 'password': 'Nn_y2XFCP('}"}], "start": 1771964744312, "stop": 1771964744847}], "start": 1771964744312, "stop": 1771964744847}, {"name": "Проверить, что статус 403 и ошибка \"Email, password and name are required fields\"", "status": "passed", "start": 1771964744847, "stop": 1771964744848}], "parameters": [{"name": "field", "value": "'name'"}], "start": 1771964744311, "stop": 1771964744853, "uuid": "4dea6bae-8ab2-41e3-842a-983342ac3932", "historyId": "fe3839d72775b2c7dc1cdd99a1937fb6", "testCaseId": "f45547c715a31beab06cc5c121de4dd7", "fullName": "tests.test_user_create.TestCreateUser#test_create_user_missing_field", "labels": [{"name": "feature", "value": "Создание пользователя"}, {"name": "parentSuite", "value": "tests"}, {"name": "suite", "value": "test_user_create"}, {"name": "subSuite", "value": "TestCreateUser"}, {"name": "host", "value": "DESKTOP-OOOSF5A"}, {"name": "thread", "value": "7664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.test_user_create"}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name": "Создание заказа без ингредиентов", "status": "passed", "steps": [{"name": "Авторизоваться под пользователем", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'teresa@lopez.com'"}, {"name": "password", "value": "'mb0Wlvv2I*'"}], "start": 1771964731570, "stop": 1771964732125}], "start": 1771964731569, "stop": 1771964732127}, {"name": "Отправить POST-запрос на создание заказа с пустым списком ингредиентов", "status": "passed", "start": 1771964732127, "stop": 1771964732639}, {"name": "Проверить, что статус-код 400 и ошибка \"Ingredient ids must be provided\"", "status": "passed", "start": 1771964732639, "stop": 1771964732639}], "start": 1771964731569, "stop": 1771964732644, "uuid": "e68d9c1e-614e-40b4-af5f-4149547c9583", "historyId": "7b9e7df3576d5e35fdc7ceb9f9fab054", "testCaseId": "7b9e7df3576d5e35fdc7ceb9f9fab054", "fullName": "tests.test_order_create.TestOrderCreation#test_create_order_without_ingredients_error_400", "labels": [{"name": "feature", "value": "Создание заказа"}, {"name": "parentSuite", "value": "tests"}, {"name": "suite", "value": "test_order_create"}, {"name": "subSuite", "value": "TestOrderCreation"}, {"name": "host", "value": "DESKTOP-OOOSF5A"}, {"name": "thread", "value": "7664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.test_order_create"}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uuid": "55abefe5-2108-4e55-9876-620fe45c6ac0", "children": ["2c1f1486-185a-4eeb-a531-22974482984d"], "befores": [{"name": "create_and_delete_user", "status": "passed", "steps": [{"name": "Регистрация пользователя", "status": "passed", "parameters": [{"name": "body", "value": "{'email': 'henry@jones.com', 'password': 'sL%0mNsy+4', 'name': 'Henry'}"}], "start": 1771964747685, "stop": 1771964748296}], "start": 1771964747684, "stop": 1771964748299}], "afters": [{"name": "create_and_delete_user::0", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'henry@jones.com'"}, {"name": "password", "value": "'sL%0mNsy+4'"}], "start": 1771964748860, "stop": 1771964749446}, {"name": "Удаление пользователя", "status": "passed", "parameters": [{"name": "token", "value": "'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5OWUwOTRjOTg0MjcwMDAxYmU1NzM3NCIsImlhdCI6MTc3MTk2NDc0OSwiZXhwIjoxNzcxOTY1OTQ5fQ.-U_gJ8Dx5nskr1s15tw4jlKb_UPWWGb_S3pUMgaHwDk'"}], "start": 1771964749446, "stop": 1771964750548}], "start": 1771964748860, "stop": 1771964750554}], "start": 1771964747684, "stop": 1771964750554}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name": "Успешный вход под существующим пользователем", "status": "passed", "steps": [{"name": "Отправить POST-запрос на авторизацию пользователя", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'warren@fox.com'"}, {"name": "password", "value": "'t4YW&78P$w'"}], "start": 1771964745433, "stop": 1771964746019}], "start": 1771964745433, "stop": 1771964746020}, {"name": "Проверить, что статус-код 200 и ответ содержит ожидаемые данные (email)", "status": "passed", "start": 1771964746020, "stop": 1771964746020}], "start": 1771964745433, "stop": 1771964746025, "uuid": "f9073cf8-b72f-4347-ab34-2072818f06f6", "historyId": "be958ea51886d9503f460a7df9eb51bf", "testCaseId": "be958ea51886d9503f460a7df9eb51bf", "fullName": "tests.test_user_login.TestLoginUser#test_login_user_success", "labels": [{"name": "feature", "value": "Логин пользователя"}, {"name": "parentSuite", "value": "tests"}, {"name": "suite", "value": "test_user_login"}, {"name": "subSuite", "value": "TestLoginUser"}, {"name": "host", "value": "DESKTOP-OOOSF5A"}, {"name": "thread", "value": "7664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.test_user_login"}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uuid": "fc9f279a-0e54-4d2c-a870-4a95db8ea967", "children": ["fe222416-bf4b-42e0-9a6f-7720bd5b1a51", "9de0406e-9c2f-4b33-b0f9-30e52af798b6"], "befores": [{"name": "get_available_ingredients", "status": "passed", "start": 1771964723940, "stop": 1771964724549}], "start": 1771964723940, "stop": 1771964753399}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uuid": "01ac6e31-dc90-4f99-b984-7eb6dc0fbd2c", "children": ["9e670423-640d-4a5e-b04c-9575001045dc"], "befores": [{"name": "create_and_delete_user", "status": "passed", "steps": [{"name": "Регистрация пользователя", "status": "passed", "parameters": [{"name": "body", "value": "{'email': 'kimberly@wright.com', 'password': '59CstXSt&w', 'name': 'Kimberly'}"}], "start": 1771964750570, "stop": 1771964751132}], "start": 1771964750569, "stop": 1771964751138}], "afters": [{"name": "create_and_delete_user::0", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'kimberly@wright.com'"}, {"name": "password", "value": "'59CstXSt&w'"}], "start": 1771964751708, "stop": 1771964752277}, {"name": "Удаление пользователя", "status": "passed", "parameters": [{"name": "token", "value": "'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5OWUwOTRmOTg0MjcwMDAxYmU1NzM3NyIsImlhdCI6MTc3MTk2NDc1MiwiZXhwIjoxNzcxOTY1OTUyfQ.JW1MNs6xRmpW3Va3UVFYoS0GVPiHLcQiOhI_nxRMFCQ'"}], "start": 1771964752277, "stop": 1771964753376}], "start": 1771964751708, "stop": 1771964753386}], "start": 1771964750569, "stop": 1771964753386}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uuid": "40b12bd1-6e61-428c-a212-71670c8fc082", "children": ["425c712b-3e0a-4960-b23d-389e514c6c9c"], "befores": [{"name": "create_and_delete_user", "status": "passed", "steps": [{"name": "Регистрация пользователя", "status": "passed", "parameters": [{"name": "body", "value": "{'email': 'david@osborne.com', 'password': 'g+ti8Poqj0', 'name': 'David'}"}], "start": 1771964740505, "stop": 1771964741092}], "start": 1771964740503, "stop": 1771964741096}], "afters": [{"name": "create_and_delete_user::0", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'david@osborne.com'"}, {"name": "password", "value": "'g+ti8Poqj0'"}], "start": 1771964741606, "stop": 1771964742196}, {"name": "Удаление пользователя", "status": "passed", "parameters": [{"name": "token", "value": "'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5OWUwOTQ1OTg0MjcwMDAxYmU1NzM2ZCIsImlhdCI6MTc3MTk2NDc0MiwiZXhwIjoxNzcxOTY1OTQyfQ.PsqfJxULm_yt25VgL8JDxsOBnpbCmLOnfzPGqNGa0wA'"}], "start": 1771964742196, "stop": 1771964743262}], "start": 1771964741606, "stop": 1771964743271}], "start": 1771964740503, "stop": 1771964743272}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name": "Вход с неверным паролем", "status": "passed", "steps": [{"name": "Получить данные пользователя и изменить пароль", "status": "passed", "start": 1771964751140, "stop": 1771964751140}, {"name": "Отправить POST-запрос на авторизацию с неверным паролем", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'kimberly@wright.com'"}, {"name": "password", "value": "'unknown_password_123_error'"}], "start": 1771964751140, "stop": 1771964751701}], "start": 1771964751140, "stop": 1771964751701}, {"name": "Проверить, что статус-код 401 и сообщение об ошибке \"email or password are incorrect\"", "status": "passed", "start": 1771964751701, "stop": 1771964751701}], "start": 1771964751139, "stop": 1771964751707, "uuid": "9e670423-640d-4a5e-b04c-9575001045dc", "historyId": "c80f50888dc9f0f7bc3bf418c97b6276", "testCaseId": "c80f50888dc9f0f7bc3bf418c97b6276", "fullName": "tests.test_user_login.TestLoginUser#test_login_invalid_password", "labels": [{"name": "feature", "value": "Логин пользователя"}, {"name": "parentSuite", "value": "tests"}, {"name": "suite", "value": "test_user_login"}, {"name": "subSuite", "value": "TestLoginUser"}, {"name": "host", "value": "DESKTOP-OOOSF5A"}, {"name": "thread", "value": "7664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.test_user_login"}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name": "Нельзя создать пользователя без обязательного поля email, password, name", "status": "passed", "steps": [{"name": "Сгенерировать валидные данные и удалить поле", "status": "passed", "start": 1771964743804, "stop": 1771964743805}, {"name": "Отправить POST-запрос на регистрацию", "status": "passed", "steps": [{"name": "Регистрация пользователя", "status": "passed", "parameters": [{"name": "body", "value": "{'email': 'jose@lopez.biz', 'name': 'Jose'}"}], "start": 1771964743805, "stop": 1771964744297}], "start": 1771964743805, "stop": 1771964744297}, {"name": "Проверить, что статус 403 и ошибка \"Email, password and name are required fields\"", "status": "passed", "start": 1771964744297, "stop": 1771964744297}], "parameters": [{"name": "field", "value": "'password'"}], "start": 1771964743804, "stop": 1771964744302, "uuid": "30208f44-5bcb-4ca2-a0df-c469c3fc066d", "historyId": "c2b5c99300c8d8bef759a85a31dcd55e", "testCaseId": "f45547c715a31beab06cc5c121de4dd7", "fullName": "tests.test_user_create.TestCreateUser#test_create_user_missing_field", "labels": [{"name": "feature", "value": "Создание пользователя"}, {"name": "parentSuite", "value": "tests"}, {"name": "suite", "value": "test_user_create"}, {"name": "subSuite", "value": "TestCreateUser"}, {"name": "host", "value": "DESKTOP-OOOSF5A"}, {"name": "thread", "value": "7664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.test_user_create"}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uuid": "de0b870e-ae55-47c2-bd83-4e3429cd8b44", "children": ["e68d9c1e-614e-40b4-af5f-4149547c9583"], "befores": [{"name": "create_and_delete_user", "status": "passed", "steps": [{"name": "Регистрация пользователя", "status": "passed", "parameters": [{"name": "body", "value": "{'email': 'teresa@lopez.com', 'password': 'mb0Wlvv2I*', 'name': 'Teresa'}"}], "start": 1771964730984, "stop": 1771964731562}], "start": 1771964730983, "stop": 1771964731567}], "afters": [{"name": "create_and_delete_user::0", "status": "passed", "steps": [{"name": "Авторизация пользователя", "status": "passed", "parameters": [{"name": "email", "value": "'teresa@lopez.com'"}, {"name": "password", "value": "'mb0Wlvv2I*'"}], "start": 1771964732646, "stop": 1771964733220}, {"name": "Удаление пользователя", "status": "passed", "parameters": [{"name": "token", "value": "'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5OWUwOTNiOTg0MjcwMDAxYmU1NzM2MiIsImlhdCI6MTc3MTk2NDczMywiZXhwIjoxNzcxOTY1OTMzfQ.Ll4B0MR01zhdW6nl_qpEeGj6tQTWe8YW7EQAw3UByEM'"}], "start": 1771964733221, "stop": 1771964734266}], "start": 1771964732646, "stop": 1771964734272}], "start": 1771964730983, "stop": 1771964734272}
Loading