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

网站建设菜单栏设计种子在线资源搜索神器

网站建设菜单栏设计,种子在线资源搜索神器,网站超链接用什么,黄骅市有什么好玩的地方1 背景 随着自动化测试左移实践深入#xff0c;越来越多不同类型的需求开始用自动化测试左移来实践#xff0c;在实践的过程中也有了新的提效诉求#xff0c;比如技改类的服务拆分项目或者BC流量拆分的项目#xff0c;在实践过程中#xff0c;这类需求会期望不同染色环境…1 背景 随着自动化测试左移实践深入越来越多不同类型的需求开始用自动化测试左移来实践在实践的过程中也有了新的提效诉求比如技改类的服务拆分项目或者BC流量拆分的项目在实践过程中这类需求会期望不同染色环境在相同的配置条件下拆分后的代码和基准release代码的接口响应response有全量对比结果才能更好达到需求验证点。 2 实践成果 在这种需要对接口返回response做全量json对比的背景下商家域新的自动化平台新增了json全量对比的组件。在多个技改项目比如服务拆分和BC流量拆分项目中这种比较大花费人日比较多的项目测试中应用了json全量对比验证。在实践过程中比如原来要先写自动化把响应结果挨个验证或者在不同染色请求跟拆分前代码分别执行再对比结果。 在这种技改需求诉求下全量json对比组件很好地满足了需要验证大量的服务拆分前接口和服务拆分后的接口返回json值全量对比。以商家服务拆分技改为例技改跨几个迭代需要回归大量的接口目前该技改测试的接口已过千还在跨迭代测试中。测试过程利用全量json对比组件不光测试一轮极大提高了测试效率在二轮还可以用自动化回归提效。 3 实践过程 3.1 源组件JSONCompareUtils 本次全量json对比引用的源组件是JSONCompareUtils是Artemis框架提供的。JSONCompareUtils提供基于万行级Json的精确比对能力这个能力基于一套嵌套降噪配置的递归算法实现。在配置合理的情况下能快速进行较大Json串的比对。详情如下 引入方式 方法名JSONCompare 参数JSON expect, JSON actual, Properties properties public static MapString, String JSONCompare(JSON expect, JSON actual, Properties properties) {MapString, String diffs new HashMap(); ​if (null expect null actual) {return diffs;} else if (expect instanceof JSONObject actual instanceof JSONObject) {diffs.putAll(JSONObjectCompare((JSONObject) expect, (JSONObject) actual, $, properties));} else if (expect instanceof JSONArray actual instanceof JSONArray) {diffs.putAll(JSONArrayCompare((JSONArray) expect, (JSONArray) actual, $, properties));} else {diffs.put($, (expect COMPARE_ARROW actual) not the same instance type);} ​if (!org.springframework.util.CollectionUtils.isEmpty(diffs)) {for (Map.EntryString, String entry : diffs.entrySet()) {logger.info([key] entry.getKey() , [value] entry.getValue());} 3.2 JSONCompareUtils组件改造 JSONCompareUtils组件改造后适应于目前效能平台适用的自动化平台组件。 改造后的组件 改造后的组件名21471: [JSON] 全量比对-两Json传入对比接口提取返回与入参的json异同。 修改点改成对比两个接口提取返回提取字段取名json1、json2。 入参保留propeties返回多个时候的排序字段没有默认空不排序。 举例propeties: $.data.orderorder_no$.data.order为list[Object]以Object中order_no排序后再对list做对比。 import json import requests ​ def call(env_vars, g_vars, l_vars, sys_funcs, asserts, logger, **kwargs):param sys_funcs.get_call_param()path http://******/artemis/component/interface-platform/compare/jsonmethod POSTactual1 l_vars.get(json1)actual2 l_vars.get(json2) ​headers {Content-Type:application/json; charsetutf8,}body {expect : json.dumps(actual1,ensure_asciiFalse),actual : json.dumps(actual2,ensure_asciiFalse),properties : str(param[propeties])}logger.info(Artemis请求body: str(body))try:resq requests.post(path,data json.dumps(body),headers headers,timeout8)res json.loads(resq.text)logger.info(artemis组件结果)logger.info(res)asserts.assertTrue(res[success], msg调用artemis-interface异常)asserts.assertEqual(str(res[data]), {}, msg存在不一致比对数据 :)except Exception as e:logger.info(f执行JSON比对失败【{str(e)}】)raise ereturn res 3.3 组件应用 步骤1: 提取接口返回json1、json2 步骤2: 添加组件 步骤3:对比上面两个接口的提取的返回值 3.4 实践场景 3.4.1 实践一 提取接口返回全量标准被参照对比的标准json1再提取新代码中期望跟标准json1对比的json2添加全量json组件对比json1和json2的值。 测试场景服务拆分技改类需求中需要对不同服务两个或者多个接口返回response全量json结果对比的场景 提取被参照对比全量json1见图一对比全量json2见图二组件执行结果见图三 图一 图二 图三 3.4.2 实践二 返回json多次设置、多次对比数据。 测试场景BC流量拆分前和拆分后的代码不同接口路由但是同一个业务功能返回response全量json需要在不同染色多次对比结果的场景 json1、json2可进行多次设置、多次对比。 3.4.3 实践三 全量json对比不同环境返回数据。 测试场景拆分前和拆分后的代码相同接口需要在相同配置不同染色环境下返回response全量json结果对比的场景。 服务拆分的接口不同染色环境对比返回的结果举例如下 3.4.4 实践四 全量json对比list结果返回顺序不一致的数据。 测试场景拆分前和拆分后的代码相同接口返回response全量json需要先排序再对比结果的场景 Demo如下 服务拆分的接口请求是一个list数组每次调用返回的list里面的顺序可能不一致可利用组件的参数先排序再对比json返回结果两个接口返回的json如下 可用组件的propeties: $.datauserId或者propeties: $.datamerchantIdjson里面的list先排序再对比这样就规避了list返回顺序不一致的情况 4 结论 在实际测试过程中技改的需占比也不小几乎每个迭代每个域都会有技改类的需求。本文为例举了几个例子涉及提效需求点 1.服务拆分技改类需求中需要对不同服务两个或者多个接口返回response全量json结果对比的场景 2.拆分前和拆分后的代码相同接口需要在相同配置不同染色环境下返回response全量json结果对比的场景 3.拆分前和拆分后的代码相同接口返回response全量json需要先排序再对比结果的场景 4.BC流量拆分前和拆分后的代码不同接口路由但是同一个业务功能返回response全量json需要在不同染色多次对比结果的场景 以上场景均能通过自动化全量json对比组件的方式去提效测试且在后续回归中直接用自动化覆盖回归尤其在商家服务拆分跨好几个迭代涉及上千个接口的大的技改类需求中达到明显的提效效果。 公司目前提供了很多现有的平台和小工具不同类型的技改需求可以利用平台小工具模式去实践应用适合的场景下合理地应用可以达到事半功倍的效果。 *文/mango 本文属得物技术原创更多精彩文章请看得物技术官网 未经得物技术许可严禁转载否则依法追究法律责任
http://www.pierceye.com/news/62868/

相关文章:

  • 北京餐饮培训网站建设软件外包项目网站
  • 植物设计网站推荐怎样防止别人利用自己电脑做网站
  • 网站做不做百度云加速广州推广系统
  • 长沙网站备案拍照点wordpress建站用什么
  • 给网站app做后台的公司湖北省平安建设网站
  • 黄骅港天气预报一周7天seo网站自动推广
  • 观澜网站建设天津酒店网站制作
  • 东莞设计网站公司清远住房和城乡建设局网站
  • 企业网站建设任务书茂名手机网站制作
  • 什么是企业型网站网站正在建设中中文模板
  • 网站首页做几个关键词大学生创业做创意宿舍装修网站
  • 成都科技网站建设电话咨询seo搜索引擎优化薪资
  • 网站优化培训班yandex搜索引擎入口
  • 关于做营销型网站的建议新版wordpress编辑器不好用
  • 减肥产品网站模板十大购物网站
  • 建设部标准定额司网站要网站开发费用短信
  • 买卖信息网站如何做响应式网站设计
  • 深圳市企业网站seo点击软件wordpress自动文章内容
  • 爱站网关键词排名wordpress安装的模板文件
  • 网站小空间王野天师
  • 涿鹿镇做网站抖音小程序模板
  • wordpress一键仿站静态网页有哪些网站
  • 茶网站建设实训报告好看的网站在哪里好找
  • 新建网站需要多少钱无锡哪里做网站好
  • 网站优化工作品牌推广专员
  • 什么是移动网站开发怎么修改网站首页logo
  • 济南定机票网站建设百度排名推广
  • 网站开发典型做个小网站 虚拟空间 买服务器
  • 哈尔滨做网站哪家便宜seo核心技术排名
  • 十堰h5网站建设如何选择网站建设平台