搜索

今天初次使用Newman ,生成测试报告。在postman中使用Collection Runner,进行接口集测试,全部通过。

image-20210614161458488

然后使用Newman输出测试报告的时候,遇到了问题...

输出测试报告和在postman中的结果不一致,一个通过,一个失败...

image-20210614161616231

我就很懵逼

去网上查了一些文档,关于Newman方面的帖子是真的少。

newman命令中看到

-k, --insecure Disable strict ssl

字面意思,就是Newman在执行集合时禁用严格SSL,其实也就是证书的问题。

上述,是我在一个帖子中看到的,但是我加了-k参数后,并没有任何效果。

到底是什么问题呢?

我又问了问技术圈的朋友们,几乎无人回复,因为他们基本都是做开发的,就我和极少数朋友是“全能兵”,哈哈

Newman在执行集合的时候,仅仅显示请求地址,

image-20210614162203532

这就很难找错误了,连个请求参数都不显示,这怎么排查错误啊???

找到了一篇网友的帖子

tests["Response Body ", responseBody] = false

他是这样,让程序查看请求接口的返回,便于debug,从而解决问题。

然后他改良了下,在run一个collection时,针对失败的场景再发出返回,以下是他的改良。大家可以参考参考。

//test1 请求是否成功
pm.test("Response OK", function () {
    pm.expect(pm.response.code).to.be.oneOf([200,201,202,204]);
});
//test2 请求不成功时 发送responsebody
var array=[200,201,202,204];
if (array.indexOf(pm.response.code)=== -1){
    tests["Response Body ", responseBody] = false;
}

真的感谢这位前辈,也正是有了他的方法,我才解决了问题。

我比较粗暴,直接在失败后的断言后,输出响应内容。如下:

image-20210614162638235

哈哈,看到错误了!

image-20210614162713948

info字段值进行转码后,

image-20210614162743035

我服了~~~密码错误!!怎么可能呢?那我在postman中,怎么断言成功的呢?

我打开环境变量看下,数值是否正确。还真的不正确。

INITIAL VALUECURRENT VALUE我填写是不一样的,postman中调用的是CURRENT VALUE ,测试通过。但是在Newman中,应该调用的是INITIAL,而且我设定的值是错误。所以,请求结果断言是不通过的。

原来,结果是Newman读取环境变量的键值与Postman读取环境变量的键值是不一样的,以及我的粗心大意,造成我白白的浪费了半个多小时~哭了

但是好歹也学到了东西,血赚不亏!

postman 接口测试 newman

版权属于:guoxiaorui
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
0
查看目录

目录

来自 《关于newman,我遇到的一些坑》
评论

博主很懒,啥都没有
© 2021 程序猿小睿