使用requests库进行接口测试

接口测试除了用postman、jmeter等工具外,也可以使用Python的requests库进行接口测试。

requests 是一个流行的 Python HTTP 库,简化了发送 HTTP 请求的过程,提供了直观的方法和功能,使得发送请求、处理响应以及处理其他与 HTTP 相关的任务变得简单。

一、使用requests库进行接口测试的一些基本方法

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 属性:获取响应头部信息,返回字典形式。

三、一个post请求示例

#!/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 请求。传入 urldata=jsondataheaders=headers 作为参数;

最后通过 response.text 获取响应的内容。

注:在实际使用中,需要将 url 替换为实际的 API 地址,并根据需要调整请求头和数据。同时,还可以对响应进行处理,例如获取响应内容、状态码等信息。

四、一个get带参数请求示例

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,则表示请求失败。

你可能感兴趣的:(python,接口自动化,python)