51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3994|回复: 0
打印 上一主题 下一主题

[原创] 如何使用Postman自动测试接口

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-4-22 10:20:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     1. 概述:
      Postman是一款接口测试神器,本文为大家介绍一下如何使用post完成SOAP的接口测试。
      被测对象是一个整数加法接口,部署在本地web服务器上,URL为:https://localhost:44347/WebService1.asmx


      测试数据如下,包含正整数,负数,还有一例小数作为非法测试用例


      2.搭建测试环境:
      2.1 安装测试软件:
      这里我们只需要安装Postman(7.36)和OpenSSL。

      2.2 为Postman创建证书
      因为Postman与站点之间为HTTPS通讯,Postman需要有自己的证书。这里我们用openssl来生成自签名证书。
    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt


      生成后的证书和私钥如下:


      2.3将证书导入Postman
      首先,打开Postman的setting界面。
      其次,在general这一tab页关掉‘SSL certificate validation’。


      最后,在certificate这一页,指定需要测试服务器地址和端口号,然后依次添加cert和key可以:


      3.准备测试数据
      3.1 获取请求格式
      SOAP的请求格式可以通过多种方式获取:直接访问webservice page或者通过fiddler,weirshark等工具抓包获取。


      3.2 准备测试数据
      Postman支持CSV格式的数据,这里将之前提到的数据做成CSV格式。


      4.手动单例测试
      4.1编辑请求
      在Postman中创建一个request,它的header和body如下图。这里我们希望计算120+130是多少。



      点击发送后,顺利拿到了结果,没错,是想要的250。


      4.2 增加测试验证点
      首先我们需要将响应格式转换成JSON格式,然后从中找到加法运算的返回值:AddResult。测试脚本如下。
    Var response = xml2Json(responseBody);
    Var addresult = response["soap:Envelope"]["soap:Body"]["AddResponse"]["AddResult"];
    console.log(addresult)




      运行后,顺利得输出250。

      4.3保存请求
      新建一个Collection,并将这个request保存进去。

      5.自动化测试
      Postman可以将CSV或者JSON格式的测试数据传递给collection。这里我们用CSV格式。

      5.1 修改请求:
      因为测试参数输入来自CSV文件,因此,我们将request中输入参数a和b对应至变量input1和input2,变量名分别是CSV文件中参数一与参数二的列名。


      5.2修改验证
      在test输入框中,分析响应并与期望值进行对比。因为从soap中解析得到的数值addresult为string类型,而从CSV解析得到的期望值data.output为number类型。这里我们需要做一个类型转换。
    pm.test("Test?Add?Function",?()?=>?{
    var?response?=?xml2Json(responseBody);
    var?addresult?=?response["soap:Envelope"]["soap:Body"]["AddResponse"]["AddResult"];
    console.log(addresult)
    pm.expect(addresult).to.eql(data.output.toString());
    });




      6.运行测试
      在collection runner界面加载测试输入文,文件的类型及测试用例数目会被显示出来。


      点击运行后就可以看到测试结果如下:


      可以看到3例pass,一例fail。失败的这一例是因为输入参数为小数。

      7. 小结
      这里只是一个简单的介绍,如果需要将这个测试加入CI系统,实现完全的自动化测试,还需要借助于Newman。Postman还有很多强大的功能需要大家在实际测试中不断探索。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 03:53 , Processed in 0.062993 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表