当前位置: 首页 > wzjs >正文

国外木屋建设网站网页界面设计总结与体会

国外木屋建设网站,网页界面设计总结与体会,电子商务创建网站,百度收录自适应网站目的 判断接口返回值和提前设置的预期是否一致,从而判断本次测试是否通过 代码步骤设计 第一步:前端调用后端已经写好的POST接口,并传递参数 第二步:后端接收到参数,组装并请求指定接口,保存返回 第三…

目的

判断接口返回值和提前设置的预期是否一致,从而判断本次测试是否通过

代码步骤设计

第一步:前端调用后端已经写好的POST接口,并传递参数

第二步:后端接收到参数,组装并请求指定接口,保存返回

第三步:预期结果对比接口返回,一致返回测试通过,不一致返回接口本次测试的真实数据

代码实现思路

第一步

1、接口的请求的方式是post
2、前端以post形式提交参数信息
3、接口将单个参数信息读取放到后端代码的变量中

第二步

1、根据解析的后端变量填入接口调用的参数中
2、访问指定接口,保存接口返回的json数据

第三步

1、读取忽略字段,如果没有,对接口返回的json数据(json转化为字典数据类型)做全量校验
2、读取忽略字段,如果有,对接口返回的json数据(json转化为字典数据类型)做校验,遇见匹配的忽略字段跳过
3、返回对比结果

4、对比一致,返回接口测试通过

返回差异数据(为空)

5、对比不一致,接口测试不通过

返回差异数据(不为空)

代码实现

步骤一
1、接收post请求的参数
from flask import request
from flask_restful import Resourcefrom app.api.common.utils import res
from app.commen.resopDiff import resp_diff
from app.interfaces.interfaces import interfacesclass TestCase(Resource):def post(self):data = request.get_json()if not data:# 返回明确的错误信息,避免引用未定义的 result# 400 Bad Requestreturn res(message="请求数据为空", success=False, code=400)try:# 打印接收到的数据(调试用)# print("Received data:", data)# 提取必要字段(建议增加字段存在性校验)method = data.get('method')url = data.get('url')params = data.get('params', {})  # 默认空字典headers = data.get('headers', {})  # 默认空字典expected = data.get('expected')  # 注意字段名拼写是否正确ignore_keys = data.get('ignore_keys', [])# 调用接口请求resp = interfaces.request(method=method,url=url,headers=headers,params=params)# 确保获取响应文本内容resp_text = resp.text#  调试输出响应内容# print("Response text:", resp_text)# 对比预期结果与实际响应# 假设 resp_diff 返回可序列化的字典(需确保实现正确)result = resp_diff(expected, resp_text, ignore_keys)# 构建返回结果if not result:  # 等价于 result == {}return res(data=result, message="接口对比一致,测试通过!", success=True, code=200)else:return res(data=result, message="接口对比不一致,测试不通过!", success=True, code=200)except KeyError as e:# 处理字段缺失错误return res(message=f"请求数据缺少必要字段: {str(e)}", success=False, code=500)except Exception as e:# 捕获其他异常(如接口请求失败)return res(message=f"服务器内部错误: {str(e)}", success=False, code=500)
步骤二

2、resp_diff(预期结果与实际响应求差异值)

from deepdiff import DeepDiff
import json# 参数要求,需要对比的是json字符串,以及需要忽略的字段def resp_diff(expected, realResp, ignore_keys):"""比较两个 JSON 数据的差异,并忽略指定的键。:param expected: 第一个 JSON 数据(字符串或字典):param realResp: 第二个 JSON 数据(字符串或字典):param ignore_keys: 需要忽略的键的列表(例如 ["extra", "age"]):return: 返回比较结果的描述和差异(如果有)"""# 如果输入是字符串,将其解析为字典if isinstance(expected, str):dict1 = json.loads(expected)else:dict1 = expectedif isinstance(realResp, str):dict2 = json.loads(realResp)else:dict2 = realResp# 构造 exclude_paths 参数exclude_paths = {f"root['{key}']" for key in ignore_keys}# print(f"ignore_keys{ignore_keys}")# # 使用 DeepDiff 进行比对# print(f"dict1{dict1}")# print(f"dict2{dict2}")# print(f"exclude_paths:{exclude_paths}")diff = DeepDiff(dict2, dict1, exclude_paths=exclude_paths)# 返回比较结果,直接返回diff需要对diff做判断return rename_diff_keys(diff)def rename_diff_keys(diff_dict):"""递归遍历 DeepDiff 结果,将 new_value/old_value 替换为自定义名称"""if not isinstance(diff_dict, dict):return diff_dictrenamed = {}for key, value in diff_dict.items():# 直接替换字段名if key == "new_value":renamed["realResp"] = valueelif key == "old_value":renamed["expected"] = value# 递归处理嵌套结构elif isinstance(value, dict):renamed[key] = rename_diff_keys(value)elif isinstance(value, list):renamed[key] = [rename_diff_keys(item) if isinstance(item, dict) else item for item in value]else:renamed[key] = valuereturn renamed

3、在蓝图上注册接口,访问路径

api.add_resource(TestCase, '/interfaces/post1')

4、通过Postman传递参数测试效果

  • 结果与预期一致
    请添加图片描述

  • 结果与预期不一致
    请添加图片描述


文章转载自:

http://yBHvp7HV.smtrp.cn
http://z9YnGFlB.smtrp.cn
http://2Iwa77Ma.smtrp.cn
http://fem8DSms.smtrp.cn
http://SWOjxnw1.smtrp.cn
http://F9AUR7Hj.smtrp.cn
http://mttsJZ12.smtrp.cn
http://JqfSkMhV.smtrp.cn
http://0uVzzOLp.smtrp.cn
http://4JrPGzDa.smtrp.cn
http://zAPJTVA4.smtrp.cn
http://9MzcOpEA.smtrp.cn
http://20qvwfii.smtrp.cn
http://yRfKTxhK.smtrp.cn
http://gKjtUyZd.smtrp.cn
http://EcmcLIqF.smtrp.cn
http://m8veBHzA.smtrp.cn
http://3XTO6rlX.smtrp.cn
http://Zuy6C0D7.smtrp.cn
http://Qqop1mn4.smtrp.cn
http://kCosSTGD.smtrp.cn
http://1PhTNvmw.smtrp.cn
http://lljk8337.smtrp.cn
http://nHpacrwy.smtrp.cn
http://E8sf1J38.smtrp.cn
http://GnAt00J4.smtrp.cn
http://ZiaBlSEd.smtrp.cn
http://FxRHbc6O.smtrp.cn
http://XmN1ruMy.smtrp.cn
http://W3BdNFp6.smtrp.cn
http://www.dtcms.com/wzjs/658313.html

相关文章:

  • 山东平台网站建设多少钱辽宁大连最新发布
  • 做初中试卷的网站wordpress 主题骨架
  • C语言网站开发pdf重庆市建设工程管理协会网站
  • 高明网站建设报价企业做网站都需要准备哪些材料
  • 网站建设拷贝软件福州网站建设信息
  • 网站开发的教学视频四川新冠感染最新消息
  • 深圳福田区住房和建设局官方网站全屋装修设计定制整装
  • 温州地区做网站杭州seo公司排名
  • 如何创建问卷网站seo推广一年要多少钱
  • 北京高端网站制作公司做箱包外贸哪个网站好
  • 重庆专业网站推广时间网站建设服务费进入什么科目
  • 婚庆摄影网站模板网页图片不能保存怎么破解
  • 沈阳黑酷做网站建设优化公司怎么样类似站酷的网站建站
  • 京东网站开发技术2核512内存装wordpress
  • 网站语言智慧团建入口登录网站
  • 网站建设制作有那些设计非常好的网站
  • php怎么写购物网站商品显示页面有什么ae做动图的网站
  • 深圳市专业做网站徐州在线网
  • 网站后期维护是做什么杭州百度首页优化
  • 代码素材网站哪个好东莞东城
  • 厦门官方网站建设海南住房建设厅定额网站
  • 四川成都旅游必去十大景点推荐谷歌seo搜索引擎下载
  • 怎么查看网站解析中国设计师网app
  • 开服表网站开发赣州经开区最新规划图
  • 网站建设百度推广说词网站做软件有哪些内容
  • 成都人才网站建设软件设计师是干什么的
  • 新手建站wordpress pre标签
  • 怎么使用网站上的模板wordpress ios7 高度
  • 网站开发参考文献格式外包业务
  • 上饶做网站哪家好哦天眼查询个人 企业查询