上一篇已经知道如何发送HTTP请求(request.get/request.post)并得到返回包(response.text)。但是只得到返回包并不是最终目的,处理返回包数据并得到需要的结果才是最终目的,也是一次接口测试完成的标志。
1.用Python处理HTTP返回包的流程
关键参数值校验
参数完整性校验
2.用Python处理HTTP返回包的代码
整体结构
第一遍看有点看不懂
# coding:utf-8
"""
定义数据比较方法
1.conpare_param是对外的参数比较类
2.compare_code是关键参数值的比较方法,compare_params_complete是参数完整性的比较方法
3.get_compare_params是获得返回包数据集合(去重后)的方法
4.recur_params递归,对返回包数据去重,获得返回包数据的所有参数集合
"""
import json,os,logging
import opmysql
from public import config
# 实例化数据库操作类
operation_db = opmysql.OperationDbInterface()
class CompareParam():
# 初始化数据
def __init__(self,params_interface):
# 定义关键参数值(code)比较
def compare_code(self,result_interface):
# 定义将接口返回数据中的参数名写入列表
def get_compare_params(self,result_interface):
# 参数完整性比较方法,比较传参值与__recur_params方法返回的结果
def compare_params_complete(self,result_interface):
# 递归去重
def __recur_params(self,result_interface):
# 测试
if __name__ == "__main__":
sen_sql = "select * from case_interface where name_interface='getIpInfo.php' and id=1"
params_interface = operation_db.select_one(sen_sql)
result_interface = params_interface['data']['result_interface']
test_compare_param = CompareParam(params_interface['data'])
# ? 关键参数 result_interface 比较
result_compare_code = test_compare_param.compare_code(result_interface)
print(result_compare_code)
# ? 参数完整性比较
result_compare_params_complete = test_compare_param.compare_params_complete(result_interface)
print(result_compare_params_complete)
def init(self,params_interface)
# 初始化数据
def __init__(self,params_interface):
self.params_interface = params_interface # 接口入参
self.id_case = params_interface['id'] # 测试用ID
self.result_list_response = [] # 用来存储参数集的空列表
self.params_to_compare = params_interface['params_to_compare'] # 参数完整性的预期结果
def compare_code(self,result_interface)
# 关键参数值比较
def compare_code(self,result_interface):
"""
:param result_interface: HTTP返回包数据
:return: 返回码code,返回信息message,数据data
"""
try:
if result_interface.startswith('{') and isinstance(result_interface,str):
# 字符串类型转换为字典类型
temp_result_interface = json.loads(result_interface)
# 获取待比较的参数
temp_code_to_compare =