来自接口测试初学者的笔记,写的不对的地方大家多多指教哦
之前有介绍过封装get和post方法,这篇文章主要优化之前的内容
环境
- PyCharm 2021.2.2
- 使用美多商城的接口
思路
- 创建公共类:class Request
- 定义公共方法:request_api
- 重构get方法
- 重构post方法
重构后完整的代码为
# 重构get/post方法
class Request:
# 定义公共方法,uri是接口具体地址
def request_api(self, url, data=None, json=None, headers=None, cookies=None, method="get"):
# 增加方法的参数,根据参数来验证get/post请求
if method == "get":
# get请求
response = requests.get(url, data=data, json=json, headers=headers, cookies=cookies)
elif method == "post":
# post请求
response = requests.post(url, data=data, json=json, headers=headers, cookies=cookies)
# 获取结果响应内容,判断返回内容的格式
code = response.status_code
try:
body = response.json()
except Exception as e:
body = response.text
# 内容存到字典,并将字典返回
res = dict()
res["code"] = code
res["body"] = body
return res
# 重构get方法
# 定义方法和参数
def get(self, url, **kwargs):
# 调用公共方法
return self.request_api(url, method="get", **kwargs)
# 重构post方法
# 定义方法和参数
def post(self, url, **kwargs):
# 调用公共方法
return self.request_api(url, method="post", **kwargs)
测试
import requests
from utils.request_util import Request
request = Request()
def login_get():
# 定义测试数据(uri是随机写的)
url = "http://1.1.1.1:111/login/"
data = {"username": "python", "password": "12345678"}
# 使用重构后的post
r = request.get(url, json=data)
print(r)
def login_post():
# 定义测试数据(uri是随机写的)
url = "http://1.1.1.1:111/login/"
data = {"username": "python", "password": "12345678"}
# 使用重构后的post
r = request.post(url, json=data)
print(r)
if __name__ == '__main__':
login()
info()
Q:判断响应的内容格式?
A:由于响应的内容有可能是json和text格式的,所以在公共部分做检验的话,在最后实际调用的时候就不需要去判断格式了
Q: ** kwargs 什么意思?
A:传参个数,由于具体的传参内容是不确定的,所以这边用**kwargs代替参数,如果传参的内容有变化,那么直接在公共方法中的get和post请求方法的传参后面添加具体参数