← Назад к вопросам

Как отправить статус-код 200

1.6 Junior🔥 221 комментариев
#Тестирование API

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Отправка статус-кода 200: методы и контексты

Отправка HTTP-статус-кода 200 OK — фундаментальная задача в веб-разработке и тестировании веб-приложений. Как QA Engineer, вы должны понимать, как этот код генерируется на разных уровнях приложения и как его валидировать. Статус 200 указывает на успешное выполнение запроса, и его отправка зависит от используемых технологий.

Основные способы отправки статус-кода 200

В зависимости от роли (разработчик, тестировщик или администратор) методы отправки различаются:

1. На уровне backend-приложения (языки программирования)

В Node.js (Express.js):

const express = require('express');
const app = express();

app.get('/api/users', (req, res) => {
  // 200 отправляется по умолчанию при успешном ответе
  res.status(200).json({ users: ['Alice', 'Bob'] });
});

// Или просто, без явного указания статуса
app.get('/health', (req, res) => {
  res.send('OK'); // Express автоматически добавит 200
});

В Python (Django):

from django.http import HttpResponse, JsonResponse

def user_list(request):
    # Явное указание статуса 200
    return HttpResponse(status=200, content="Success")
    
# Или через JsonResponse (200 по умолчанию)
def api_users(request):
    return JsonResponse({'status': 'active'}, status=200)

В PHP:

<?php
// Установка статус-кода через header()
http_response_code(200);
echo json_encode(['message' => 'Success']);

// Или альтернативный способ
header("HTTP/1.1 200 OK");
?>

2. Использование инструментов тестирования и отладки

Как QA-инженер, вы чаще будете проверять отправку статуса 200, чем реализовывать её в коде. Вот основные инструменты:

  • cURL в командной строке:

    # Простой GET-запрос с выводом заголовков
    curl -I https://api.example.com/users
    # Ответ будет содержать: HTTP/1.1 200 OK
    
    # С сохранением полного вывода
    curl -v https://api.example.com/health
    
  • Postman или Insomnia:

    В интерфейсе этих инструментов статус-код отображается prominently после выполнения запроса. Вы можете создавать автотесты, проверяющие, что ответ имеет статус 200.

  • Автоматизированные тесты (Python + pytest + requests):
    import requests
    import pytest
    
    def test_api_returns_200():
        response = requests.get('https://api.example.com/health')
        # Проверяем, что статус-код равен 200
        assert response.status_code == 200
        # Можно проверить и текст статуса
        assert response.reason == 'OK'
    

Важные аспекты для QA-инженера

При тестировании статус-кода 200 необходимо проверять не только его наличие:

  1. Контекст успеха: Код 200 должен приходить только при действительно успешных операциях. Например:
    *   GET-запрос к существующему ресурсу
    *   POST-запрос, создавший новый объект
    *   PUT-запрос, успешно обновивший данные

  1. Совместная валидация с телом ответа: Статус 200 с некорректным или пустым телом ответа может быть признаком проблемы:

    # Пример комплексной проверки в тесте
    def test_user_api_returns_valid_data():
        response = requests.get('/api/users/1')
        assert response.status_code == 200
        data = response.json()
        assert 'id' in data
        assert 'name' in data
        assert data['id'] == 1  # Проверяем конкретные данные
    
  2. Отличие от других успешных кодов:

    *   **201 Created** — для успешного создания ресурса
    *   **204 No Content** — успешно, но без тела ответа
    *   **206 Partial Content** — для частичного контента

  1. Мониторинг и логирование: В production-среде важно отслеживать процент ответов со статусом 200 vs ошибками (4xx, 5xx). Внезапное падение этого показателя — сигнал для investigation.

Практический пример теста для QA

// Пример теста на JavaScript с использованием Jest и Supertest
const request = require('supertest');
const app = require('../app');

describe('User API endpoints', () => {
  test('GET /api/users should return 200 with valid data', async () => {
    const response = await request(app)
      .get('/api/users')
      .expect(200) // Проверка статус-кода
      .expect('Content-Type', /json/); // Дополнительная проверка
    
    expect(response.body).toHaveProperty('users');
    expect(Array.isArray(response.body.users)).toBeTruthy();
  });
  
  test('GET /api/nonexistent should NOT return 200', async () => {
    const response = await request(app)
      .get('/api/nonexistent')
      .expect(404); // Ожидаем 404, а не 200
  });
});

Заключение

Отправка статус-кода 200 — это ответственность backend-разработчиков, но верификация его корректности — ключевая задача QA-инженера. Вы должны:

  • Проверять, что 200 возвращается только при valid-сценариях
  • Удостоверяться, что с кодом 200 приходит корректное тело ответа
  • Использовать автоматизированные тесты для регулярной проверки
  • Понимать, в каких случаях вместо 200 должны возвращаться другие успешные коды (201, 204)

Правильная обработка и проверка статус-кодов — основа стабильной работы RESTful API и веб-приложений в целом.

Как отправить статус-код 200 | PrepBro