介绍:postman
相似工具: 命令行curl fiddler
下载地址:官网下载https://www.getpostman.com/
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件
市场上有很多优秀的,完善的接口测试工具,比如SoapUI,Postman,JMeter、yapi等,能够高效的帮助后端开发人员独立进行接口测试。这里使用Postman接口测试工具,分别介绍如何对GET请求和POST请求进行接口测试。
Postman的操作环境
postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。
postman 页面接口详情:
主要界面功能介绍
l New: 新建,可以创建request(请求),collection(请求集),environment(环境变量)等。
l Inport:导入,可以直接导入postman请求集,curl等一些请求文件。
l Runner: 执行请求,可以选择执行请求的collection,并且添加执行参数,例如执行时间,执行次数等等。
l Workspace: 工作台,可以选择使用个人工作台或团队工作台,可以创建team并且邀请成员加入一起编辑使用请求集。
l History: 历史请求,所有调试的历史请求数据
l Collection: 请求集,可以创建保存,将某些请求放到一起形成请求集
l Environment: 环境变量,管理设置的环境变量,可以设置全局环境变量,也可新建环境,添加环境变量
工作台页面功能介绍
l 请求方法: 支持 get, post, put, patch delete等请求方法
l URL: 可以直接输入请求URL,也可以通过环境变量设置,自定义URL
l Params: 请求参数
l Authorization: 认证鉴权,支持多种授权鉴权
l Header: 请求头
l Body: 请求体,包含form-data,json,文件上传等
l Pre-request-Script: 请求脚本,可以在请求发起前执行的脚本
l Tests: 接口测试,请求完成后进行的测试脚本
l Cookies: 可以为请求添加cookies
l 下面就是response的一些信息,返回数据,返回头,cookie,测试结果等
postman环境配置:
全局变量(Globals)
场景:以页面显示,需要在header中添加认证,那么每次请求都添加吗?我们可以设置全局变量
设置变量名和value值
断言
Postman的断言功能在Test模块中,比如要测试返回结果是否含有某一字符串,就需要在Test中编写相应的代码,Test中的代码使用的是JavaScript语法。
我们先来了解下postman断言的一些特点 ,具体如下
断言编写位置:Tests标签
断言所用语言:JavaScript
断言执行顺序:在响应体数据返回后执行 。
断言执行结果查看:Test Results
在上面我们介绍到,编写的断言代码是JavaScript,那如果不会写怎么办 ? 不用担心,因为postman已经给我们内置了一些常用的断言 。用的时候,只需从右侧点击其中一个断言,就会在文本框中自动生成对应断言代码块 。
postman自带Tests函数:
Postman提供了参考代码供我们选择即可,主要断言代码有如下几种:
# 断言状态码是否为200,在断言中此种断言价值不高
pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
# 断言响应文本中是否包含某个数据串,常用
pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });
# 使用JsonPath断言
pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); });
# 检查响应正文中是否包含某个子串
pm.test("Body is correct", function () { pm.response.to.have.body("response_body_string"); });
# 响应信息包含列表中其中某一个
pm.test("Successful POST request", function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); });
# 将xml响应转为json
var jsonObject = xml2Json(responseBody);
3.保存接口配置
待整个接口都调试完毕后,记得点击 Save 去保存接口信息:
去保存当前 API 接口,然后需要填写相关的接口信息:
l Request Name: 请求的名字
我一般习惯用保存为 接口的最后的字段名,比如
l Request Description: 接口的描述
最好写上该接口的要实现的基本功能和相关注意事项
支持 Markdown 语法
Select a collection or folder to save: 选择要保存到哪个分组(或文件夹)
往往保存到某个 API 接口到所属的该项目名的分组
功能说明:
All Collections : 列出所有集合,可以选择一个集合运行
Environment : 环境列表 ,当选择的集合使用到了环境,这里就必须选择 ,反之,可不选。
Iterations :迭代次数,这里面更多的使用场景读取外部文件进行参数化 。当然一个集合也可以重复运行多次。
Delay :请求之间的间隔时间,默认为0也就是没有间隔 。
Data : 读取数据文件进行参数化的选项 。
Save Seponses : 保存响应数据,默认情况不开启 ,但是当集合中有请求报错时,打开此选项 。就可以在Run Result查看每个请求的响应结果 ,这样有助于调试错误。
keep variable values : 持久变量,默认为开启状态,开启后,前面请求的变量设置的值,后面有请求修改此值,会覆盖此值 。
run collection without using stord cookies : 不使用cookies保存的值运行
Save cookies after collection run : 集合中的请求在执行期间创建/更新cookie 。打开此选项,可以将cookie保存到cookie管理器,从而覆盖任何现有的cookie。
Recent RUN :右侧是保存了最近运行的结果,可以点击打开查看 。也可以下载 和删除 。
Import/Export :可以将运行结果导出后再导入结果进行查看 。