Postman入门

Postman入门

postman 接口测试工具 ,网页调试和发送网页http请求的Chrome插件,适用于不同的操作系统
开发或调试网络程序,网页B/S模式的程序时,需要一些方法来跟踪网页请求。可使用一些网络的监视工具,如Firebug/Fiddler等网页调试工具。这款调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,还可以发送几乎所有类型的http请求。

下载地址:https://www.postman.com/downloads/

postman基础功能介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hdpcgQFw-1617075356536)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010104325445.png)]

请求区域介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Czh5Btmv-1617075356540)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010111230212.png)]

  • 1 Authorization:身份验证

  • 2 headers:请求的头部信息

  • 3 body:post请求时必须要带的参数,里面放一些key-value键值对

  • 4 Pre-request Script:这个运行在请求之前,语法使用JavaScript语句

  • 5 tests:通常用来写测试

  • 6 form-data:将表单数据处理为一条消息,以标签为单元

  • 7 x-www-form-uriencoded:对应信息头-application/x-www-form-urlencoded,会将表单内的数据转换为键值对

  • 8 raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送

  • 9 binary:对应信息头-Content-Type:application/octet-stream,只能上传二进制文件,且设有键值对,一次只能上传一个文件,也不能保存历史,每次选择文件,提交

导入和导出接口集

导入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pbv5I4DU-1617075356542)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010112607684.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTQOU0KY-1617075356546)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010112659829.png)]

导出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9b41QLf-1617075356548)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010112451299.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VZYJgWun-1617075356551)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010112505283.png)]

环境变量设置

Global :全局

Enviroment :环境变量

Local :局部

Data :数据

优先级由高到低:Data>Local>Enviroment>Global

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZiJi1N9o-1617075356556)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010113051334.png)]

1、添加环境变量

2、查看当前环境中的变量和全局变量的值

3、一键切换环境变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WpzcSNwN-1617075356557)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010114825208.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gWliwJdq-1617075356560)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010113333963.png)]

将返回值的某个数据设置为环境变量

有时候,我们获取到一个变量需要将它保存下来,之后可能会使用到,例如token、sign等信息,就会用到tests区域。

  • 定义一个 data,获取body中返回的所有参数,并转化为JSON格式

    • var data = JSON.parse(responseBody); //将字符串转化为对象,parse()会进行json格式检查是一个安全函数,如检查json中某个数组元素的个数(长度)
    • var data = JSON.parse(responseBody);
    • tests[“proect’s length”] = data.project.length === 3;
  • 将返回中的值设置为一个环境变量

    • pm.environment.set(“key”,xxx.data.value);
    • postman.setEnvironmentVariable(“key”,“value”);
  • 将返回中的值设置为一个全局变量

    • pm.globals.set(“key”,xxx.data.value);
    • postman.setGlobalVariable(“key”,“value”)
    • 注:Global后面不能加S,value值一定要指定到某个具体节点
  • 测试response Headers中的某个元素是否存在

    • tests[“元素Content-type是否存在”] =postman.getResponseHeader(“Content-Type”);
    • getResponseHeader()方法会返回header的值
  • 定义一个obj ,获取headers值

    • var obj = postman.getResponseHeader(“key”);
  • 将Headers中的值设置为一个环境变量

    • postman.setEnvironmentVariable(“key”,xxx);
    • pm.environment.set(“key”,xxx)
  • j检查response的code值是否为200

    • tests[“Status code is 200”] = responseCode.code === 200;
    • tests[“Status code is 200”]中的tests是一个内置对象
    • responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200
  • 检查response的body中是否包含字符串

    • tests[“Body matches string”] = responseBody.has(“type”);
    • tests[“Body matches string”]中的tests是一个内置对象,type无论是key或者value,只要匹配就可以。多个类型可用“,”分割。
  • 检查Response Body是否等于字符串

    • tests[“测试点”] = responseBody === “Response Body返回的内容”
    • 可以用在接口返回内容为纯字符串时,直接检查整个返回结果的正确性
  • 检查Response time是否小于200ms

    • tests[“Response time 小于200毫秒”] = responseTime < 200;
  • 检查Response time是否大于200ms

    • tests[“Response time 大于200毫秒”] = responseTime > 200;
  • 设置一个随机数变量

    • pm.globals.set( " type",parseInt(4*Math.random())+1);
    • 针对不同类型的课程类型,设置一个1-4的随机函数,字段名是type,parsInt时强制转换为整数
  • 校验接口是否返回有数据

    • tests[“获取第一个结果”] = xxx.content.result[0];
  • postman.setNextRequest('Request4")

    • postman.setNextRequest()是一个带有一个参数的函数,是接下来要运行的请求的名称或ID,通常用来跳转至某个接口,只在运行该集合时有用,单独使用无效。
  • var jsonObject = xml2Json(responseBody)

在设置过变量之后,调用变量的时候,在postman里,可以直接使用{{变量名}}

使用postman进行接口自动化测试

在接口测试上,大体上两个思路:

  • 判断请求返回的code是否符合预期

  • 判断请求返回的内容中是否包含预期的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apv7gvnW-1617075356561)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010145740550.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gTmiL5QY-1617075356562)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010145806201.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qwTiThRL-1617075356563)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010150157147.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAsEAl6g-1617075356565)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010150239034.png)]

若是想每次都要运行不一样的数据,我们还需要其他的方法,比如使用pro-requestScript功能,导入或生成随机数据进行测试。

postman参数化的过程

针对某一个接口,有大量的测试数据需要批量验证,就要用到数据的参数化。

例如有批量的手机号需要进行查询

  • 先创建一个data.txt格式的文件,文件名不能是汉字,放置的第一行是变量名,后面每一行都是该变量的一个数据(若是有多条变量和数据,可使用","分割)
  • 再在postman里面创建一个环境变量,名字和上面的变量名保持一致即可,postman里面的环境变量的值,可以随便填写(因为调用的时候会调用txt文本里面的数据,而不会用到postman里面设置的数据)
  • 在tests里面写一个检测脚本,检测该手机号是否为移动手机号
  • 以集合的形式运行还接口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o50kk22c-1617075356566)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010152639757.png)]

  • 查看运行结果,完成参数化设置。

每个接口的访问地址都一样,只是里面的请求参数不一样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-epTIQiRq-1617075356568)(C:\Users\meryliangyu\AppData\Roaming\Typora\typora-user-images\image-20201010152804332.png)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值