请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师你好,通过读取json文件来匹配code+message或者json有点疑问

1.老师你好,通过读取json文件来获取code+message这种方式我有个疑问:执行runmain函数后,我接口可能匹配到到了json文件code+message,但未必是我要的预期结果,比如json文件中{url:[{“100”:“成功”},{“101”:“用户名错误”},{“102”,“invalied args”}]}我其实cases是101:用户名错误,但实际结果返回code:102,也能匹配到上我json文件中code:102,匹配上则测试通过有所违背呀,并不是我要的预期结果,通过json获取也是相同的疑问,当匹配到json的时候,我匹配到error时,但是error的种类可能有多个:code:1001,code:1002,我怎么才能知道哪个才是我预期结果。
2.根据1的两个问题,我的思考是code+meesage这种方式,以具体的结果填入到excel中{“1000”:“登录成功”}(因一般都是一个code对应一个message),用实际结果的code:message去匹配预期结果,相等则pass,否则fail.对于json这种方式也是将具体的结果写入到excel表格中通过deepdiff比较,当两个相同的时候返回{},当{}时则pass,否则fail
3.对于1的疑问麻烦老师帮我解答下,对于2的思路有什么欠缺也麻烦老师解答下,谢谢

正在回答 回答被采纳积分+3

1回答

Mushishi 2020-09-23 21:50:03

code的判断这个一般只是判断我们成功的code,也就是说你验证接口时候我只看你成功没有,如果不是成功的code我都认为你失败,当然你的失败肯定有很多接口信息。

2、这里的message不一定是说的时code对应的message的文本,我们判断的时当code=10000 成功时,我们再去判断一个字段是否拥有。比如data下面的userid 这个字段是否存在,如果存在我们就认为你整个接口通过

3、其实我们后面说了的我们更多的时通过 json的结构体来判断,我们判断你结构体和我正确的结构体是否一样

0 回复 有任何疑惑可以回复我~
  • 老师你好,我看当预期结果是json格式,只是对成功和失败case的json格式验证是否通过,如果是实际结果完全符合我预期json格式的要求下,并且还要完全去匹配value的值才算通过,比如预期结果{status:error,code:10001,message:参数不合法}实际结果也要完全匹配。这部分的设计没有看到
    回复 有任何疑惑可以回复我~ 2020-09-23 23:59:41
  • Mushishi 回复 提问者 qq_番茄你个马铃薯_3 #2
    json格式对比 只会对比结构体,就是我们再wiki里面看到的key部分,不会对比value,因为按照业务说一般你每次请求value就可能不一样,这样没办法处理,除非你每次请求的时候数据是没有请求该结果之前的数据。这个就又是另外一门学科知识了。这个就涉及到了数据偏移。最简单的我们就是去判断响应结果状态码对不对+并且里面是否包含某个key
    回复 有任何疑惑可以回复我~ 2020-09-24 09:04:16
  • 提问者 qq_番茄你个马铃薯_3 回复 Mushishi #3
    好吧谢谢老师,这样我就没办法校验异常case的各种响应结果是否符合我的预期了,下面是我在postman里面的断言:第一种:tests["错误的APIVersion"] = responseBody === '{"message":"invalid API version","args":{},"code":103}';
    第二种:tests["填写错误的concenttype"] = responseBody === '{"message":"invalid content type","args":{},"code":108}';
    第三种:tests["接口名称多层"] = responseBody === '{"message":"invalid path","args":{},"code":105}';等等
    针对各种场景专门设置了case
    回复 有任何疑惑可以回复我~ 2020-09-24 19:25:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信