最近接触了Postman API测试,业务上是需要写出来Postman脚本。以前可以说是从来都没有听说过脚本的事情,虽说也其实这个工具有一点了解,但是在这回实践之后才有了更多的理解。首先推荐大家学习一个Pluralsight的视频Postman Fundamentals,我只是有针对性的看了前一部分,就感觉收获良多。一个好的入门课程其实也是很重要的。
这里我就举例说一个spring security的用户验证的测试,其他的测试过程也是很相似的。
认证测试:
- step1 在地址栏中输入自己API的地址(例子中是用户登陆认证的一个form)
- step2 选择请求的方式,这个postman里面有很多,我这里选择的是POST
- step3 在headers我们可以把Content-Type设置出来
- step4 在body中加入需要请求的key和对应的value(这个例子中就是username、password,因为spring secutity的登陆认证机制只有验证登陆后才可以进行后续操作,否则就会报401未认证)
- step5 在Tests中可以编写一些测试语句,以检查得到的Response body是否是你需要的
这个例子的Tests如下:
编写好测试界面中的测试语句,然后点击send,可以在下面的Tests Results中查看测试是否通过,例子中的就是测试全部通过了,如果有错误,下面的提示中会告知你哪个测试出错,以及为什么出错。
下面说一下这几个简单测试语句:
我想在开始之前提醒大家一件事,postman测试语句是需要很精准的,也就是说你写的测试语句需要可以精准的、直观的测试出返回的response是否符合预期,你的测试需要着眼于关键点。
状态码测试:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
第一行中的"Status code is 200"是可以自己修改的,这一行字符串会在下面的控制台输出(可参照上图),这里建议要取一些有意义的字符串,可以见名知义那种。
第二行中的 200,就是你期望得到的状态码。
是否得到认证的测试:
第二行就是定义jsonData接受response中json数据,然后就是进行判断返回的字段是否是预期的。
pm.test("Your test user is authenticated", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.authenticated).to.eql(true);
});
那么对比验证一下认证失败的情况:
我随便的设置了登录的用户名和密码,可以看到下方的Test results中3条都fail了,并且还有返回值的对比说明。
希望以上能对大家有所帮助。
再给大家推荐一个非常好的科研网站可以使用免费Web of Science、zhi网、IEEE、EI等账号。亲测好用。这个网站拥有众多的数据库,法律的、医学的、工科的,等等。