使用 mocha,一个 for 循环可以搞定,json 对比字段是由 chai 内部实现的,可以不用关注。
参见:接口测试过程中如何快速进行 diff 测试?
测试最好是一种全能型人才,敢于产品 pk 业务,敢于开发讨论代码,能够 hold 住全局。
是常见的任务串行处理流程中常见的问题,if 语句内部可能处理的正常逻辑
抱歉
赞,代码气味很好
看到的代码类似这样:
obj1 = rpc1.getObj();
if(obj != null && obj.isSuccess()==true){
doTask1();
}
obj2= rpc2.getObj();
if(obj2 != null && obj2.isSuccess()==true){
doTask2();
}
obj3= rp3.getObj();
if(obj3!= null && obj3.isSuccess()==true){
doTask3();
}
描述有点问题,if 语句中的 return 去掉。doTask1() 与 doothertask() 是顺序执行的。
是这样的,写成这样是为了强调仅判断了返回结果 success==true 的情况
doothertask 与 if 语句没有关系,但是由于没有考虑 if 语句没有对应的 else 处理其他异常,导致 doothertask 成功执行了。
部分接口从业务上来说应该是强依赖关系,一旦返回非预期结果应该中断流程或者抛出异常。
著名公司在 github 中开源项目有多少项目使用了 mocha?
截止 2018-08-10,简单统计了一下各公司使用 mocha 的项目,如下表:
此外,文中 mocha 进行 diff 测试过程中参数化使用的是数组,当然可以选择 json 文件、csv 文件、Excel 文件、数据库数据进行参数。
推荐大家使用 mocha 搞定 diff 测试
1、高效,例如 v1、v2 两套接口,url 中除了版本号不一样外,其他参数相同,稍微组织一下代码,一个 forEach 便可搞定成百上千的接口 diff 测试。
2、测试报告漂亮
3、Google、Microsoft、Facebook 都在用,思考一下为什么世界顶级大公司都在用 mocha?
问题抛给各位了
不知道怎么得出的这个结论?
新人可以借鉴一下楼主经验
多达400多万行有效的单元测试代码是由Wings全自动生成的。更有意思的是:可以看到这些代码采用人工开发的成本高达1079个人月,成本更是达到了1079万之多。
数据很漂亮,如果编译了 Chrome,然后启动了一下,运行了 400 万行代码,一下节约了 1079 万的成本。
平常工作过程中不用 Charles,使用 fiddler(免费、不用盗版),但是工具是相似的,这工具能够模拟网速、超时,但是不能完全模拟真实网络环境
第二点问题回复如下,仅供参考。
1、测试数据如何管理?
这个可以使用 json 文件、Excel、csv、数据库均可,看个人喜好,怎么快就怎么用。
2、如何保证新接口子调用是否一致?
方法 1、让开发在调用过程中打印日志,通过检查日志来确认调用链路是否一致。
方法 2、工作过程中如果有代码查看权限,直接确认代码变动可能更快;
欢迎其他小伙伴补充
不同版本测试接口 diff 可以尝试下述思路:
思路 1、部署两套测试环境,可以让 oldJson 等于旧版本接口返回值,newJson 等于新接口返回值,然后进行对比;
思路 2、如果只有一套测试环境,可以先使用 CI 工具部署旧版本源代码构建的应用,遍历需要 diff 的接口,存储各个接口返回值为 json(存库也可)。接下来部署新版本源代码构建的应用,遍历所有接口,对每一个接口返回值进行对比。
思路 3、如果允许使用线上发布的版本接口返回值(通常情况下面向公众的 App、web 应用均可使用线上版本)进行对比,思路与思路 1 相似。
java 的版本没有去实现,感兴趣的小伙伴自行 github 搜索 json 对比的开源项目
1、在 python、node.js 中 json 对比真实的就是一个断言实现,Java 用得少,但我相信已有开源的已实现对比的 jar 包;
2、重构代码过程中开发将请求参数、响应结果的大小写修改了,我只是对这个开发表示佩服。
此外大小写是否一样在 for 循环加上一个断言便可解决
我比较感兴趣的是重构如何影响字段的大小写了?
如果公司有安全相关的要求,报告虽然挺好看的,但是这个不太合规
可以考虑的方案:分析结果数据,自己画图
抓包用 fiddler 吧
楼主用 jmeter 处理有点复杂,如果仅检查返回码,一个连数据库的函数 + 一个循环便可解决问题。