一、postman下载与使用
1.下载地址:https://www.postman.com/downloads/
下载完成后直接安装即可,需要注册一下postman账号,登录账号后网页版也可以用,适合办公协同。
二、使用步骤
1.新建一个workspace,创建一个用例集
Params:用于在get请求传参
Authorization:postman自带的鉴权功能
Headers:请求头
Body:post请求传参
– none:没有参数
– form-data:既有文件又有键值对
– x-www-form-urlencoded:只传输键值对
– raw:创建JSon、TXT、xml、HTML、js传输
– binary:把文件以二进制方式传输
Pre-request Script:接口请求之前的脚本,用js格式写
Tests:断言的代码
2.接口关联
将所需要的数据从响应结果中取出,并设置为全局变量,在相关联的请求中去调用这个变量即可,如需要关联所查询的手机号码的归属地的天气。
代码如下(示例):
var jsonData=pm.response.json()//获取响应中的json数据
var get_city=jsonData.result.city //获取城市
console.log(get_city)//调试并查看是否获取成功
pm.globals.set("city", get_city);//设置city为全局变量,当前值为get_city
获取响应结果并设置为全局变量。
在2.查询天气中进行将入参的city的value设置为变量{{city}}即可
3.断言
postman断言
对接口请求后的内容进行设置,如状态码、响应头、响应正文等信息进行断言操作。在设置时会给定一个预期结果,在发送请求后会得到一个实际如果,如果两者结果一致,则认为是成功的,否则则是失败的。在失败的情况下则需要进一步分析原因,从而判断是否是一个bug。
为什么要加入断言?
利用断言判断测试结果,减少人工检查。
状态码断言
状态码
分类 分类描述
1** 信息响应,服务器收到请求,需要请求者继续执行操作
2** 成功响应,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
状态码断言
//Status code is 200//判断这个接口是否被服务器处理了
pm.test("Status code is 200",function(){
pm.response.to.have.status(200);});//test():用来做断言的 "Status code is 200":描述信息-》判断状态码是否为200//function()实现功能 结果显示在Test //Status code name has string
pm.test("判断状态消息是否为ok",function(){
pm.response.to.have.status("OK");});//Successful POST request
pm.test("判断状态码是否为200,201,203",function(){
pm.expect(pm.response.code).to.be.oneOf([201,200,203]);});
响应正文断言-使用最多
响应时间、响应头断言
4.参数化
变量参数化
全局变量
环境变量
作用:主要是用来做接口关联、环境的设置(测试环境、预生产环境)
在上图3中有按钮位置
文档参数化
postman支持JSON文档、TXT文档、csv文档
作用:批量管理数据(输入的数据,预期结果),批量测试
注意:如果在预览文件时有乱码,就把文件选择用utf-8无bom的格式或者转为utf-8编码格式就可以解决很多问题
txt文档参数化
案例:对商城登录接口进行多组数据测试
1用txt、csv、json文档准备数据
2:接口中引用变量
3:测试集导入数据文件
4:多次迭代运行
5:查看运行结果
1.txt文本传数据
有几行数据就在iteration那里填几,比如此时是六组数据,那就填6
2、csv-表格–读取完数据后会自动选择迭代次数
3.json
–补
5.数据驱动
论坛接口测试集
文档参数化
断言参数化
接口自动化运行
实例:论坛接口测试
论坛地址:https://cnodejs.org
接口文档:https://cnodejs.org/api
案例1:发布帖子,获取首页帖子,更新帖子,获取首页帖子
topic4 requests
POST 发布新帖
GET 获取首页帖子查看获取是有成功
POST 更新帖子
GET 获取首页帖子-否看更新是否成功
总结
版权归原作者 翻云手 所有, 如有侵权,请联系我们删除。