我自动化的经验比较少,一直都不擅长自动化的断言,以前用的方法是:测试数据放在 yaml 中,新增,然后预期结果跟 sql 查询结果对比;查询,接口返回数据跟 sql 查询数据对比。最近遇到个新项目,很多接口都是几十个,近百个字段,有点懵,不知道怎么样写能方便点?求各位指点
var rstAct = apiX();
Assert.AreEqual(rstExp, rstAct);
我都是一整串 全部比对,,不过这样的话,如果返回的字符串稍微一改动,就需要批量维护,工作量挺大
对比两个 json 就行了吧~
1.对比 json
2.校验关键字段
对比 jsonschema
看你校验颗粒度
1、大范围的就对比两个 json Assert Equal response.text expect_json
2、校验你想校验的关键几个
3、数据驱动,把一个个接口字段及期望值做参数化
这近百个值都是你想要的吗?如果是的,那就都对比吧,如果不是,取关键字段就好了呀
我这边的做法,希望对你有帮助,接口返回断言
总体兜底: json schema 或者正则
详细用例: json path 或者其他方式,断言指定字段内容
建议 schema 特殊的字段校验直接写在 shchema 内了
有条件的话可以考虑用流量回放
jsonschema 以及关键字段就行
m
全值断言、局部断言,拿你要比对的部分就行
最近参考的是 jsonpath,deepdiff,还有社区有个第三方库:https://testerhome.com/topics/22561。
目前采用的方案是 deepdiff 第三方库
联系开发,对关键字段进行校验即可。或者对字段数量进行校验。通常情况下,没有必要对字段做逐一校验,选择能反应业务是否正常的判断逻辑即可。