Библиотека запросов Python — очень удобный инструмент при проведении тестирования интерфейса. Ниже я подробно опишу весь процесс тестирования интерфейса с помощью библиотеки запросов Python и приведу соответствующие примеры кода.
1. Установите библиотеку запросов Python.
Прежде чем использовать библиотеку запросов Python для тестирования интерфейса, вам необходимо сначала установить библиотеку. Его можно установить из командной строки, используя:
pip install requests
2. Отправить запрос
Отправлять запросы с помощью библиотеки запросов Python очень просто. Вам нужно только вызвать методы get, post и другие в библиотеке запросов. В качестве примера возьмем отправку запроса GET:
import requests
# Отправить GET-запрос
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
# Вывести содержимое ответа
print(response.content)
Приведенный выше код отправит запрос GET и выведет содержимое ответа. Среди них https://jsonplaceholder.typicode.com/posts/1 — запрошенный URL-адрес.
3. Добавьте заголовки запроса
При проведении тестирования интерфейса обычно необходимо добавлять заголовки запросов. Заголовки запросов можно добавить с помощью параметра headers в библиотеке запросов. В качестве примера рассмотрим добавление заголовка запроса User-Agent:
import requests
# Добавить заголовок запроса User-Agent
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# Отправить GET-запрос
response = requests.get('https://jsonplaceholder.typicode.com/posts/1', headers=headers)
# Вывести содержимое ответа
print(response.content)
Приведенный выше код добавит заголовок запроса User-Agent и отправит запрос GET.
4. Добавьте параметры запроса
При проведении тестирования интерфейса обычно требуется добавить параметры запроса. Параметры запроса можно добавить с помощью параметра params в библиотеке запросов. В качестве примера возьмем добавление параметра запроса с параметром id, равным 1:
import requests
# Добавить параметры запроса
params = {'id': 1}
# Отправить GET-запрос
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
# Вывести содержимое ответа
print(response.content)
Приведенный выше код добавит параметр запроса с идентификатором 1 и отправит запрос GET.
5. Отправьте POST-запрос.
При проведении тестирования интерфейса обычно требуется отправить POST-запрос. POST-запросы можно отправлять с помощью метода post в библиотеке запросов. В качестве примера возьмем отправку POST-запроса в формате JSON:
import requests
import json
# Заголовок запроса
headers = {'Content-Type': 'application/json'}
# Параметры запроса
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
# Отправить POST-запрос
response = requests.post('https://jsonplaceholder.typicode.com/posts', headers=headers, data=json.dumps(data))
# Вывести содержимое ответа
print(response.content)
Приведенный выше код отправит запрос POST в формате JSON и выведет содержимое ответа.
6. Утвердить содержание ответа
При проведении тестирования интерфейса часто необходимо делать утверждения о содержании ответа. Для создания утверждений вы можете использовать собственную библиотеку unittest Python или стороннюю библиотеку pytest. В качестве примера возьмем библиотеку unittest для утверждений:
import requests
import unittest
class TestApi(unittest.TestCase):
def test_get_post(self):
# Отправить GET-запрос
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
# Проверьте, равен ли код состояния ответа 200.
self.assertEqual(response.status_code, 200)
# Утвердить содержание Содержит ли ответ слово «название»?
self.assertIn('title', response.json())
if __name__ == '__main__':
unittest.main()
Приведенный выше код отправит запрос GET и подтвердит код состояния ответа и содержимое ответа.
Короче говоря, использование библиотеки запросов Python для тестирования интерфейса очень удобно и гибко. Вы можете добавлять заголовки запросов, параметры запросов, отправлять запросы POST и т. д. в соответствии с фактическими потребностями, а также использовать библиотеку unittest или библиотеку pytest для создания утверждений.