postman接口测试

本文详细介绍了接口测试的重点,包括接口分类、接口测试流程、接口关联等,并重点讲解了Postman工具的使用,包括参数设置、接口描述、请求方式、预请求脚本和断言。同时,通过示例展示了如何进行接口关联和动态参数的运用,以及Postman内置的动态参数和自定义动态参数的创建。最后,讨论了接口业务闭环中的增删改查操作及其在Postman中的实现。

一、接口分类

  1. 外部接口:被测系统与外部系统之间的接口
  2. 内部接口:被测系统内部各个模块之间的接口

二、接口测试重点

  1. 检查接口参数的正确性
  2. 接口功能的正确性
  3. 输出结果的正确性
  4. 异常场景的容错处理
  5. 权限控制

三、接口测试的流程

  1. 拿到api接口文档(从开发拿或抓包获取),熟悉业务接口、接口地址、鉴权方式、入参、出参、错误码及其他特别的需求。
  2. 编写接口测试用例以及评审
    编写思路:
    正例:输入正确的入参、接口返回正常
    反例:
    鉴权反例:鉴权码为空、错误、过期。。。
    参数反例:参数是否必填验证、参数的异常验证、错误码覆盖。。。
    其他场景:接口黑名单、接口调用次数限制、分页场景测试(负数页、0、1、5、 10…100)
  3. 使用接口测试工具Postman、Jemeter执行接口测试
  4. Postman+newman+jenkins+git实现持续集成。(输出报告和电子邮件)

四、Postman接口测试工具

  1. 两种工具体系:Postman+newman+jenkins+git、Jemeter+Ant+jenkins+git
  2. Postman工作台在这里插入图片描述
请求接口:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx74a8627810cfa308&secret=e40a02f9d79a8097df497e6aaf93ab80
请求参数:grant_type=client_credential
           appid=wx74a8627810cfa308
           secret=e40a02f9d79a8097df497e6aaf93ab80
返回:

{
   "access_token": "53_MuXabuJBJ7qFJysWndxaoa6_LGPz2y4rB61LJ3GA-GZlzMF91mTFUFaLN7zaZY84R5q46Dv-u14AIUL7u_cIqlxM8MhIDkNS14d0wXjpTKptflvpiBr6wvD9rmGrTs53ib_G2hpWUUkC9ltbWAQgAGAQUK",
    "expires_in": 7200
}

如上图:请求页签:
params:get传递的参数
Authorization:鉴权,常见的鉴权方式为:Bearer Token、Basic Auth。
Headers:请求头
Body:post传参的地方
none:没有参数
form-data:既可以传键值对参数,也可以传文件
x-www-from-urlencoded:只能传键值对参数
raw:json、text、xml、html、JavaScript
binary:把文件以二进制的方式传参数
Pre-request Script:请求前的脚本
Tests:请求后的断言
cookies:用于管理cookies信息

          响应页签:
          Body:接口返回的数据
                  pretty:以json、html、xml。。。不同的格式查看返回的数据
                  Raw:以文本的方式查看返回的数据
                  PreView:以网页的方式查看返回的数据
          ookies:响应cookies信息
          Headers:响应头
          Test Results:断言的结果
          200:状态码
          OK 状态信息
          273ms 响应的时间
          343B 响应的字节数
          Save Response:将响应保存起来

接口描述:创建标签接口
请求URL:https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN
请求方式:POST
请求Body:{“tag”:{“name”:“广东”}}
在这里插入图片描述
在这里插入图片描述
Post和Get请求的区别:
1、get请求一般是获取数据,post请求一般是提交数据
2、post请求比get请求更安全
3、传参数的方式不同:get请求在地址栏后面以?的方式传参,多个参数之间用&隔开。post请求在body中以表单形式传参。

五、接口关联

1、使用json提取器实现接口关联

首先使用打印语句,将日志打印出来
在这里插入图片描述
之后使用json提取将返回的数据转换成对象格式,并且赋给变量result
在这里插入图片描述
之后去构造全局变量
在这里插入图片描述
在这里插入图片描述
之后用双大括号将全局变量括起来就可以作为下一个请求的变量
在这里插入图片描述
第一个接口:
console.log(responseBody);
//使用json提取器提取access_token值
//把返回的字符串格式的数据转换成对象的格式
var result = JSON.parse(responseBody)
console.log(result.access_token)
//把access_token设置为全局变量
pm.globals.set(“access_token”,result.access_token)

第二个接口:
{{access_token}}

2、使用正则表达式提取器实现接口关联
首先使用正则去获取整个token在这里插入图片描述
获取日志
在这里插入图片描述
看日志,可以看到是下标为1的,去获取下标为1的
在这里插入图片描述
把获取的值当做全局变量
在这里插入图片描述
之后再去执行下一个接口
{{access_token}}
在这里插入图片描述
在这里插入图片描述
//使用正则表达式提取器实现关联接口关联,match匹配
var result = responseBody.match(new RegExp(‘“access_token”:“(.*?)”’));
console.log(result[1])
//设置全局变量
pm.globals.set(“access_token”, result[1]);

六 、postman内置动态参数以及自定义的动态参数

postman内置动态参数
{{KaTeX parse error: Expected 'EOF', got '}' at position 10: timestamp}̲}生成当前时间的时间戳 {{randomInt}}生成0-1000之间的随机数
{{$guid}} 生成速记GUID字符创

自定义动态参数
//手动的获取时间戳
var times = Date.now();
//设置为全局变量
pm.globals.set(“times”,times)
在这里插入图片描述在这里插入图片描述

七、接口业务闭环(增删改查)

获取公账号已创建的标签接口
https://api.weixin.qq.com/cgi-bin/tags/get?access_token={{access_token}}
在这里插入图片描述
编辑标签接口
可以考虑在创建标签的时候,获取标签的id,之后根据id,去编辑标签
由此,将标签的id设置为全局变量

//获取创建的标签ID
var tag_id = responseBody.match(new RegExp(‘“id”😦.*?),’));
console.log(tag_id[1]);
//把标签id设置为全局变量
pm.globals.set(“tag_id”,tag_id[1]);
在这里插入图片描述
在这里插入图片描述
删除标签接口
https://api.weixin.qq.com/cgi-bin/tags/delete?access_token={{access_token}}
在这里插入图片描述
上传文件接口
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={{access_token}}
在这里插入图片描述

八、Postman断言

在这里插入图片描述
Status code:Code is 200 检查返回的状态码是否是200
Response body:Contains string 检查响应中包含指定字符串
Response body:Json value check 检查响应中其中json的值
Response body:is equal to a string 检查响应等于一个字符串
Response headers:Content-Type 检查是否包含响应头Content-Type
Response time is less than 200ms:检查请求耗时小于200ms

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dijiaye1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值