接口测试除了用postman、jmeter等工具外,也可以使用Python的requests库进行接口测试。
requests
是一个流行的 Python HTTP 库,简化了发送 HTTP 请求的过程,提供了直观的方法和功能,使得发送请求、处理响应以及处理其他与 HTTP 相关的任务变得简单。
1、安装requests库,可以通过在终端或命令提示符中运行以下命令来安装
pip install requests
2、导入requests库
import requests
3、发送无需参数的GET请求
response = requests.get(url)
4、发送带参数的GET请求
params = {"key1": "value1", "key2": "value2"}
response = requests.get(url, params=params)
5、发送POST请求(发送JSON数据)
import json
payload = {"key1": "value1", "key2": "value2"}
headers = {"Content-Type": "application/json"}
response = requests.post(url, data=json.dumps(payload), headers=headers)
6、获取响应内容
#获取文本形式的响应内容
res = response.text
#获取JSON格式的响应内容(如果返回的是JSON)
res = response.json()
#获取状态码
res = response.status_code
7、检查请求是否成功
if res.status_code == 200:
print("Request successful!")
else:
print("Request failed!")
requests
库中常用的一些方法和参数详解1、发送请求的方法:
requests.get(url, params=None, **kwargs)
:发送一个 GET 请求。requests.post(url, data=None, json=None, **kwargs)
:发送一个 POST 请求。requests.put(url, data=None, **kwargs)
:发送一个 PUT 请求。requests.delete(url, **kwargs)
:发送一个 DELETE 请求。requests.head(url, **kwargs)
:发送一个 HEAD 请求。2、URL 参数:
params
参数:通过字典或字符串指定 URL 中的查询参数。3、请求头参数:
headers
参数:通过字典指定请求头部信息。4、发送请求时的其他可选参数:
data
参数:以字节、字典或文件对象形式提供 HTTP 请求体数据。json
参数:以 JSON 对象形式提供 HTTP 请求体数据。cookies
参数:以字典形式指定要随请求一起发送的 cookies 数据。auth
参数:以元组形式提供认证凭证,支持多种认证方式(如基本认证、摘要认证等)。timeout
参数:设置请求超时时间,单位为秒。5、响应处理相关方法和属性:
.text
属性:获取响应内容,返回 Unicode 字符串形式。.content
属性:获取响应内容,返回字节形式。.json()
方法:将响应内容解析为 JSON 格式的 Python 对象。.status_code
属性:获取响应状态码。.headers
属性:获取响应头部信息,返回字典形式。#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import json
import requests
# 定义url和入参报文数据
url = "https://api.example.com"
data = {
"requestId": "111111111",
"data": {
"11111": "1111",
"2222": "2222",
"3333": "3",
"44444": "44",
"55555": "555",
"66666": {
"111": "111",
"222": "333",
}
}
}
# 把字典转成json格式
jsondata = json.dumps(data)
# 设置请求头
headers = {"Content-Type": "application/json"}
# 发送post请求
response = requests.post(url, data=jsondata, headers=headers)
# 获取响应数据
print(response.text)
上述示例中:
url
是请求的目标 URL 地址,data
是要发送的数据,在这里使用了一个字典;
然后使用 json.dumps()
方法将字典数据转换为 JSON 字符串形式;
然后定义了请求头部信息,使用 "Content-Type": "application/json"
表示请求体的数据类型为 JSON;
然后通过 requests.post()
方法发送 POST 请求。传入 url
、data=jsondata
和 headers=headers
作为参数;
最后通过 response.text
获取响应的内容。
注:在实际使用中,需要将 url
替换为实际的 API 地址,并根据需要调整请求头和数据。同时,还可以对响应进行处理,例如获取响应内容、状态码等信息。
import requests
url = "http://example.com/api"
params = {
"param1": "value1",
"param2": "value2"
}
res = requests.get(url, params=params)
if res.status_code == 200:
print("请求成功")
print(response.json())
else:
print("请求失败")
上述示例中:
定义了一个 url 变量来存储请求的URL地址;
定义了一个params 变量用于存储需要传递的参数;
然后使用 requests.get() 方法发送 GET 请求,并将参数通过 params 参数传递给它 ;
最后,我们检查响应的状态码。如果状态码为 200,则表示请求成功,并打印出响应的内容(使用 .json() 方法将响应解析为 JSON 格式)。如果状态码不是 200,则表示请求失败。