常见接口测试工具
- postman
- JMeter
- soapUI
- RobotFramework
postman:一款功能强大的网页调试与发送网页HTTP请求的工具
本文主要介绍postman基础使用,更详尽的脚本语法参考:
postman的操作环境
postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。
一、 主界面
二、测试集合及子目录
collection在postman里面相当于一个文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也可以再建文件夹。后续的Runner中会用到,Runner的最大单位是Collection。
1. 新建项目
输入项目名称,点击【create】
- 新建项目成功
- 新建子目录(例:一个项目中有多个模块,可以按照模块划分接口)
3. 导入和导出接口集
- 导出
数据一般以postman_collection.json结尾
- 导入:将导出的.json文件(包括接口和环境)可以共享给其他人,然后通过import的方式,将数据和环境一起全部导入即可
三、请求部分
-
Sendbox:包括Url、Get/Post、Headers、Body、Pre-request Script、Tests
-
Pre-request Script 和 Tests主要用来写测试脚本和数据准备,其中Pre-request Script里面写此接口的前置任务,Tests中主要用来写测试脚本,并通过Postman的
tests[“你想输出的内容”] = true/false;
来实现,true显示为绿色PASS,false显示为红色FAIL。
其中true等价于1,false等价于0,即上述代码也可以这么写:
tests["你想输出的内容"] = 1/0;
详见如下参数:
- Body
-
Auth
身份验证,主要用来填写用户名密码,以及一些验签字段,postman有一个helpers可以帮助我们简化一些重复和复杂的任务。当前的一套helpers可以帮助你解决一些authentication protocols的问题 -
Headers
请求的头部信息 -
Body
post请求时必须要带的参数 -
Pre-requerst scripts
自定义请求数据,在请求之前运行,语法使用JavaScript语句 -
Tests
tests标签功能比较强大,通常用来写测试,请求之后运行。支持JavaScript语法。postman每次执行request的时候,会执行tests。测试结果会在tests的tab上面显示一个通过的数量以及对错情况。
-
form-data
将表单数据处理为一条消息,以标签为单元,用分隔符分开。既可以单独上传键值对,也可以直接上传文件(当上传字段是文件时,会有Content-Type来说明文件类型,但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。)。是post请求里较常用的一种
-
x-www-form-urlencoded
对应信息头 - application/x-www-from-urlencoded,会将表单内的数据转换为键值对 -
raw
可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送 -
binary
对应信息头 - Content-Type:application/octet-stream,只能上传二进制文件,且没有键值对,一次只能上传一个文件, 也不能保存历史,每次选择文件,提交
四、 环境变量
postman支持设置环境变量和全局变量,并可以一键切换不同环境,也可以下载保存为JSON文件。
环境变量被设置为键值对,键为变量名。
变量分类
- Globals Environment:全局变量,适用于所有Collections和Runner,总是有效
- Current Environment:环境变量,可设置多个环境,根据不同的接口和需求进行切换即可。
- Local:局部变量
- Data: 数据
优先级从高到底 Data ---- > Local ---- > Enviroment ---- > Global
即:如果一个有效的环境变量名和全局变量名重名,那么全局变量名将被环境变量名覆盖。
-
一键切换环境,选择No Environment则不使用环境变量,仅适用全局变量
-
可以查看当前环境中的变量和全局变量(Globals)的值
-
设置环境变量
- 添加环境:点击下图箭头所指的设置按钮,进入环境管理页面
【设置页面】如下,可点击右下角【Add】按钮添加环境,也可复制、下载、删除已有环境
- 【添加环境】界面如下,设置环境名和对应变量名、变量值,点击【Add】即可添加
五、如何查看环境变量
点击如下箭头所指按钮即可查看当前环境的环境变量
不同环境根据需求对同一变量设置不同的变量值,即可使用例多环境可回归
六、变量如何使用
postman中变量可用于
- URL
- URL params
- Header values
- form-data/url-encoded values
- Raw body content
- Helper fields
变量点的使用方法:{{variableName}}
-
这个字符串{{variableName}} 将会被它的值所替代。
-
例如:环境变量名为 “username”,值为"17711111111",可以在request的URL字段中使用{{username}},{{username}}将会在request发送时被替换成 “17711111111”,如下图
-
环境变量可以帮助你分离敏感数据例如keys和passwords。你最好保存所有的敏感值到一个环境中,提供一个虚拟的环境来使用。如果你信任这个用户,你也可以给他你的环境。
-
警告:环境和全局变量被存储为字符串。如果你正在存储对象或数组,请确保在存储前使用JSON.stringify()格式化他们 ,在检索时使用 JSON.parse()。
小结:
当postman的body使用了变量,如何知道请求发出的具体变量值是什么?
- 通过postman console查看
- 通过运行后的环境变量查看
- 通过fiddler抓包查看
注意:
当前Environment中设置的key值名称必须是唯一的,即使没有选中,直接用相同key值去setEnvironmentVariable,不会报错,但实际没有设置成功;如下案例:
“Viva_Android”环境中的“DevicesID”没有勾选,但已经在“Viva_Android”环境中存在,所以,当在sandbox中再次设置环境变量时(如下),则新的DevicesID无法生效,但不会报错;
postman.setEnvironmentVariable("DeviceID", "aaa"); //设置环境变量DeviceID为aaa
所以,一定注意:环境中的key值不要重名。
七、Runner
Runner中可以添加本地的Data File文件,包括.csv和.json两种格式文件;如果包含多条数据,每次执行一条数据,具体Demo可在开头的第一个链接中找到;
Runner中添加本地.csv测试文件示例
八、Console调试
console.log(variable_key);
如何查看console的输出内容?
应用菜单–>View—>Show Postman Console或点击下图框中部分
示例:
九、常用设置
- Settings - general - Language detection:选择【json】,以后请求返回的数据是自动格式化之后的json字符串