Ответ
Опыт включает ручное тестирование (Postman) и создание автотестов, преимущественно на стеке Python (pytest + requests). Основные направления работы:
1. Функциональное тестирование:
- Проверка HTTP-статусов (
200 OK,201 Created,400 Bad Request,404 Not Found,500 Internal Server Error). - Валидация структуры и данных ответа (использую библиотеку
jsonschema). - Тестирование граничных значений и некорректных входных данных для параметров.
2. Нефункциональное тестирование:
- Проверка заголовков (
Content-Type,Cache-Control). - Базовая проверка производительности и анализ логов.
- Тестирование авторизации (JWT, OAuth 2.0).
Пример автотеста для GET-запроса:
import requests
import jsonschema
def test_get_user_by_id():
url = "https://api.example.com/v1/users/1"
# 1. Выполнение запроса
response = requests.get(url, headers={"Authorization": "Bearer token123"})
# 2. Проверка статус-кода
assert response.status_code == 200
# 3. Проверка заголовка
assert response.headers["Content-Type"] == "application/json"
# 4. Валидация JSON-схемы ответа
user_schema = {
"type": "object",
"properties": {
"id": {"type": "integer"},
"name": {"type": "string"},
"email": {"type": "string", "format": "email"}
},
"required": ["id", "name", "email"]
}
jsonschema.validate(instance=response.json(), schema=user_schema)
Работал с документацией OpenAPI (Swagger) и инструментами для нагрузочного тестирования (например, Locust).