问答 接口自动化测试遇到字段有近百个值的时候,怎么断言?

芒果 · July 06, 2022 · Last by 哪里不会点哪里 replied at March 03, 2023 · 10144 hits

我自动化的经验比较少,一直都不擅长自动化的断言,以前用的方法是:测试数据放在 yaml 中,新增,然后预期结果跟 sql 查询结果对比;查询,接口返回数据跟 sql 查询数据对比。最近遇到个新项目,很多接口都是几十个,近百个字段,有点懵,不知道怎么样写能方便点?求各位指点🙏

共收到 18 条回复 时间 点赞

var rstAct = apiX();
Assert.AreEqual(rstExp, rstAct);

我都是一整串 全部比对,,不过这样的话,如果返回的字符串稍微一改动,就需要批量维护,工作量挺大

对比两个 json 就行了吧~

1.对比 json
2.校验关键字段

Pactortester 回复

对比 json 了,还要校验关键字段?

对比 jsonschema

看你校验颗粒度
1、大范围的就对比两个 json Assert Equal response.text expect_json
2、校验你想校验的关键几个
3、数据驱动,把一个个接口字段及期望值做参数化

这近百个值都是你想要的吗?如果是的,那就都对比吧,如果不是,取关键字段就好了呀

我这边的做法,希望对你有帮助,接口返回断言
总体兜底: json schema 或者正则
详细用例: json path 或者其他方式,断言指定字段内容

建议 schema 特殊的字段校验直接写在 shchema 内了

有条件的话可以考虑用流量回放

jsonschema 以及关键字段就行

全值断言、局部断言,拿你要比对的部分就行

最近参考的是 jsonpath,deepdiff,还有社区有个第三方库:https://testerhome.com/topics/22561
目前采用的方案是 deepdiff 第三方库

七星瓢虫 回复

json schema,这样不是有很多个 Schema 文件,维护起来也不方便吧

联系开发,对关键字段进行校验即可。或者对字段数量进行校验。通常情况下,没有必要对字段做逐一校验,选择能反应业务是否正常的判断逻辑即可。

Author only
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up