美文网首页
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