最近接触了Postman API测试,业务上是需要写出来Postman脚本。以前可以说是从来都没有听说过脚本的事情,虽说也其实这个工具有一点了解,但是在这回实践之后才有了更多的理解。首先推荐大家学习一个Pluralsight的视频Postman Fundamentals,我只是有针对性的看了前一部分,就感觉收获良多。一个好的入门课程其实也是很重要的。

这里我就举例说一个spring security的用户验证的测试,其他的测试过程也是很相似的。

认证测试:

postman怎么直接调用dubbo接口 postman调用api接口_api

  • step1 在地址栏中输入自己API的地址(例子中是用户登陆认证的一个form)
  • step2 选择请求的方式,这个postman里面有很多,我这里选择的是POST
  • step3 在headers我们可以把Content-Type设置出来
  • step4 在body中加入需要请求的key和对应的value(这个例子中就是username、password,因为spring secutity的登陆认证机制只有验证登陆后才可以进行后续操作,否则就会报401未认证)
  • step5 在Tests中可以编写一些测试语句,以检查得到的Response body是否是你需要的

这个例子的Tests如下:

postman怎么直接调用dubbo接口 postman调用api接口_postman_02

编写好测试界面中的测试语句,然后点击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了,并且还有返回值的对比说明。

postman怎么直接调用dubbo接口 postman调用api接口_api_03


希望以上能对大家有所帮助。

再给大家推荐一个非常好的科研网站可以使用免费Web of Science、zhi网、IEEE、EI等账号。亲测好用。这个网站拥有众多的数据库,法律的、医学的、工科的,等等。