美文网首页
Postman 接口测试入门教程

Postman 接口测试入门教程

作者: 心中翼 | 来源:发表于2019-04-25 14:26 被阅读0次

一、Postman可以做什么?

Postman 可以做API测试,不仅开发可以使用测试API是否可用。测试人员可以做一些接口验证,例如,参数验证,返回值校验等。后续使用nodejs 的newman进行自动化测试。

二、Postman下载,安装

Postman有两种安装方式,第一种是Chrome插件版,第二种是桌面版
两者的优缺点比较

版本 优点 缺点
Chrome版本 不需要打开新的应用,浏览器中随用随开 1、功能不全,如果需要全部功能,建议桌面版。 2、插件包不好找,因为某些原因,不能从官方商店安装
windows版本 需要打开新的应用,而且需要安装 1、功能齐全。2、安装包容易找到

总结:如果平时只是测试api,不需要太多功能,且能找到插件包的建议使用Chrome版本。
反之安装Windows版本。

1、Chrome插件安装

  • 下载插件包
     链接:https://pan.baidu.com/s/1v_zH4QnG2qJSfHvloCs0pg 
     提取码:y472 
  • 解压zip包


    解压
  • 打开Chrome加载已解压的文件夹,更多工具->扩展程序


    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

2、windows版本安装

三、Postman api测试

因为桌面端功能会比较全,以下演示使用桌面端演示,插件版上部分功能受限制。

创建Collection

image.png

创建API

这里使用了一个公共API来测试 https://www.apiopen.top/journalismApi获取信息

image.png

查看Console

有时候想要查看下api到底发送的详情,比如,api是否真的发送成功,使用了什么参数,用了多长时间,打印信息等。这时候可以打开菜单栏中的View->Show Postman Console查看。


image.png

传递参数

传递参数一般常用的有Query,header,body三种形式。这里只演示一下Query参数。


image.png
image.png

如果仅仅只是使用Postman作为测试api是否可用,以上信息基本足够,如果是测试想使用postman做api测试请继续查看。

编写Tests

Tests是做接口测试需要使用的功能,是希望api的返回值是否与期望的返回值一直


image.png
  • 测试返回code是否为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
  • 测试返回json对象msg属性是否为'成功!',打印使用console,在上文打开的Show Postman Console中查看打印信息。
pm.test("Test msg", function () {
    var jsonData = pm.response.json();
    console.log(jsonData) ;
    pm.expect(jsonData.msg).to.eql('成功!');
});
image.png image.png

循环创建TestCase,根据期望对象验证返回对象属性

//创建期望对象
var info = {
    "code":200,
    "msg":"456",
}
//获取返回对象
var jsonData = pm.response.json();
//验证code属性与msg属性
testObj(info,jsonData) ;

//方法,根据期望对象中的属性,验证返回对象属性
function testObj(expect,response){
    for(var key in expect){
    (function(key){
        pm.test('测试'+key+'属性', function() {
          pm.expect(expect[key]).to.eql(response[key]);
        });
    })(key)
 }
}
image.png image.png

设置全局函数

将上文中自己写的函数,设置为全局变量,这样,其他API中也可以直接使用。


image.png image.png
//加载全局函数
eval(globals.testObj);
//调用函数
testObj(info,jsonData) ;

更多测试方法可以去参考资料查找

使用Pre-request Script

该选项一般在api运行前执行,可以提前设置参数,然后query,header,body获取参数之类的操作。
设置变量pm.environment.set("param1", "123456");

image.png
image.png
image.png

更多测试方法可以去参考资料查找

设置Collection Token或SessionId信息

有时候api测试时需要先调用登录信息,再携带返回的token或者session信息才能执行。
可以将login api返回的token/sessionid信息设为全局变量,然后设置Collection的authorization,这样,就不用在每一个Api中填写token/sessionid信息了。

  • 将login api 与其他 api 都添加至collection


    image.png
  • 调用login api 将返回的token/sessionid信息存入全局变量,下图是假装调用了一个login api,在tests中设置sessionid变量。


    image.png
  • 设置Collection authorization,设置后,Collection中的所有api会自动携带token/sessionid信息,这里有好多种选项,根据个人需求,选择。我这是是在header中添加一个SESSIONID属性。


    image.png
    image.png

-执行API,看是否携带了设置的参数,查看request header,确实携带了SESSIONID参数,并且与上文设置的值一致。


image.png

相关文章

网友评论

      本文标题:Postman 接口测试入门教程

      本文链接:https://www.haomeiwen.com/subject/iydagqtx.html