Тестирование API в мобильных приложениях

🤔 Зачем тестировать API в мобилках?

API (Application Programming Interface) – это мост между клиентом (мобильным приложением) и сервером. Если API падает, то приложение превращается в бесполезный UI кирпич.

✅ Почему API-тестирование важно?

  • Ловим баги на бэке, пока они не долетели в приложение.
  • Проверяем нагрузку (чтобы сервер не сдох от 1000 юзеров).
  • Тестируем без UI, что быстрее и стабильнее.
  • Автоматизируем тесты, чтобы не кликать в мобилке вручную.

🔍 Что тестируем в API?

1 Функциональное тестирование

📌 Что проверяем?

  • Корректность ответов (200 OK, 400 Bad Request и т. д.).
  • Структуру JSON/XML (чтобы не приходил мусор).
  • Логика работы эндпоинтов (регистрация, логин, покупка и т. д.).

📌 Как тестируем?

  • 🛠 Postman – для ручных проверок.
  • 🤖 REST Assured / Requests (Python) – для автоматизации.

2 Тестирование безопасности (Security)

🔐 Что проверяем?

  • Авторизацию (можно ли получить данные без логина?).
  • XSS/SQL-инъекции (не принимает ли сервер вредные запросы?).
  • Доступ по ролям (юзер не должен видеть админские данные).

📌 Как тестируем?

  • Burp Suite, OWASP ZAP – для ручного анализа.
  • JWT-токены – проверяем, не истекают ли.

3 Нагрузочное тестирование (Performance)

🔥 Что проверяем?

  • Как API выдерживает 100, 1000, 10 000 запросов.
  • Время отклика (не тупит ли сервер).
  • Стабильность под нагрузкой.

📌 Как тестируем?

  • JMeter – эмулируем толпу пользователей.
  • Locust – нагрузка на Python, удобно масштабировать.

4 Интеграционное тестирование

🔄 Что проверяем?

  • Как API работает с базой данных.
  • Как связаны разные эндпоинты (создали пользователя → получили ID → авторизовались).
  • Работа со сторонними сервисами (оплата, пуши, карты).

📌 Как тестируем?

  • Mock-серверы (WireMock, Postman Mock) – фейковые ответы от API.
  • TestContainers – эмулируем базу в тестах.

🛠 Инструменты для тестирования API

Тестирование API в мобильных приложениях

📌 Автоматизация API-тестов

1 Postman (ручные тесты + автоматизация)

Postman – топовый инструмент для проверки API.

✔ Отправляем запросы (GET, POST, PUT, DELETE).✔ Проверяем ответы (JSON, статус-коды).✔ Пишем тесты на JavaScript.

Пример простого теста:

pm.test("Статус 200 OK", function () { pm.response.to.have.status(200); });

🚀 Автоматизация с Newman

Чтобы запускать Postman-тесты из CI/CD:

newman run api-tests.postman_collection.json

Можно интегрировать с GitLab, Jenkins, GitHub Actions.

2 Автотесты на Python (Requests + Pytest)

Если нужен код, то Requests + Pytest – мощный стек для API-тестов.

📌 Устанавливаем Requests

pip install requests

📌 Пример теста API

import requests def test_get_users(): response = requests.get("https://reqres.in/api/users?page=2") assert response.status_code == 200 assert "data" in response.json()

🚀 Можно добавить в CI/CD и запускать на каждом коммите.

3 REST Assured (для Java)

Если проект на Java, то REST Assured – лучший выбор.

📌 Пример теста на REST Assured

import requests def test_get_users(): response = requests.get("https://reqres.in/api/users?page=2") assert response.status_code == 200 assert "data" in response.json()

🔥 Java + Allure Report → красивые отчёты для CI/CD.

🚀 API + CI/CD (GitLab, Jenkins, GitHub Actions)

Чтобы API-тесты запускались автоматически, добавляем их в CI/CD:

📌 GitLab CI/CD (Python + Requests + Pytest)
Файл .gitlab-ci.yml:

stages: - test api_tests: stage: test image: python:3.9 before_script: - pip install -r requirements.txt script: - pytest tests/api_tests artifacts: paths: - reports/

Теперь тесты будут запускаться при каждом пуше.

📌 Итоги

🔥 API-тестирование – важный этап в мобильном QA.
🚀 Лучшие инструменты: Postman, Requests, REST Assured, JMeter, Locust.
🛠 CI/CD + API-тесты = автоматизация проверки бэка.
✅ Хорошие API-тесты – это меньше багов в проде.

Начать дискуссию