当前位置: 首页> 教育> 培训 > 宁波网站建设开发公司_深圳建站公司收费_网络推广策划方案模板_太原今日头条

宁波网站建设开发公司_深圳建站公司收费_网络推广策划方案模板_太原今日头条

时间:2025/7/10 15:37:56来源:https://blog.csdn.net/2302_82334306/article/details/146389922 浏览次数:0次
宁波网站建设开发公司_深圳建站公司收费_网络推广策划方案模板_太原今日头条
  1. ​**__handle_str**:利用 str.replace 清洗 Excel 数据中的换行符和空格,确保格式合法;
  2. ​**handle_response**:基于 isinstance 和 requests 的 json()/text 方法,标准化 JSON/文本响应,输出统一结构;
  3. ​**assert_reponse**:通过 jsonpath 动态提取字段、ast.literal_eval 安全转换预期值为字典,结合 unittest 的 assertEqual 实现灵活断言,避免硬编码;
  4. ​**assert_db**:直接调用 assertEqual 验证数据库数据一致性。
  1. __handle_str(清洗输入)
  2. handle_response(标准化响应)
  3. assert_reponse(动态断言)
  4. assert_db(数据库断言)
自定义函数所用模块/方法函数作用
handle_response(response)

isinstance

判断对象的数据类型并返回布尔值;区分响应数据格式(JSON 或纯文本),确保后续处理逻辑适配不同接口返回类型
assert_reponse(expected_data, response)动态提取实际响应字段,并与预期数据对比,执行自动化断言

__handle_str()清洗数据

清洗excel中的预期结果的换行符(\n)和空格,避免因数据格式错误(如 JSON 中存在非法空格)导致解析失败或断言不匹配

isinstance判断对象的数据类型是字典dict并返回布尔值
ast.literal_eval(expected_data)字符串转字典将字符串格式的预期值(如 "{'token_type': 'bearer'}")安全转换为字典,避免 eval 的安全风险。
jsonpath(response, "$..key")动态字段提取通过 JSONPath 表达式(如 $..token_type)从响应中提取动态字段值,支持嵌套结构,避免硬编码路径。
assert_db(extract_data, actual_data)self.assertEqual()直接比对数据库查询结果与预期数据,验证数据一致性。
import ast
import unittest
from jsonpath import jsonpathclass HandleResponse(unittest.TestCase):def __handle_str(self,data:str):    #data:excel中获取的请求参数for str_data in ["\n"," "]:data = data.replace(str_data,"")return data             #去掉空格后的请求参数# 响应结果处理def handle_response(self,response):try:if isinstance(response.json(),dict): #判断一个对象是否时一个已知的类型return {"response_type":"json","response":response.json()}except Exception as e :if isinstance(response.text,str):return {"response_type":"str","response":response.text}else:return {}def assert_reponse(self,expected_data,response):# 期望结果: expected_data = {"token_type": "bearer"}# 实际结果: actual_data = {"token_type":"bearer"}if expected_data:#去空格expected_data = self.__handle_str(data=expected_data)# 三元运算符 [结果为真的值] if [条件] else [结果为假的值]expected_data = expected_data if isinstance(expected_data,dict) else ast.literal_eval(expected_data)actual_data = {}if response["response_type"] == "json":for key in expected_data:actual_data[key]=jsonpath(response,f"$..{key}")[0]self.assertEqual(expected_data,actual_data)else:for key in expected_data:actual_data[key] = response["response"]self.assertEqual(expected_data, actual_data)else:print("预期结果为空,不需要做接口响应的断言")# 断言数据库def assert_db(self,extract_data,actual_data):self.assertEqual(extract_data,actual_data)if __name__ == '__main__':cl = HandleResponse()

关键字:宁波网站建设开发公司_深圳建站公司收费_网络推广策划方案模板_太原今日头条

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: