提示:阅读文章前,请先阅读目录
Postman是目前主流的接口测试工具之一,其简单易用,使用集合,多人协作,创建环境,创建测试,自动化测试,调试以及持续集成。
在日常工作中,拿它来调试接口,是非常的方便的,也可以直接做接口自动化测试,因为提供了断言的功能,可以在获取返回数据,然后进行断言。
官网下载地址:https://www.postman.com/downloads
下载完直接安装即可,不需要什么配置
不过,打开之后,需要登录一个postman账号,这个时候,没有的话,注册一个即可
下图是Postman的工作区间,各个模块功能的介绍如下:
1、New,在这里创建新的请求、集合或环境;还可以创建更高级的文档、Mock Server 和 Monitor以及API。
2、Import,这用于导入集合或环境。有一些选项,例如从文件,文件夹导入,链接或粘贴原始文本。
3、Runner,可以通过Collection Runner执行自动化测试。后续介绍。
4、Open New,打开一个新的标签,Postman窗口或Runner窗口。
5、My Workspace - 可以单独或以团队的形式创建新的工作区。
6、Invite - 通过邀请团队成员在工作空间上进行协同工作。
7、History - 所有请求的历史记录,这样可以很容易地跟踪你所做的操作。
8、Collections - 通过创建集合来组织你的测试套件。每个集合可能有子文件夹和多个请求。请求或文件夹也可以被复制。
9、Request tab - 这将显示您正在处理的请求的标题。默认对于没有标题的请求会显示“Untitled Request”。
10、HTTP Request - 单击它将显示不同请求的下拉列表,例如 GET, POST, COPY, DELETE, etc. 在测试中,最常用的请求是GET和POST。
11、Request URL - 也称为端点,显示API的URL。.
12、Save - 如果对请求进行了更改,必须单击save,这样新更改才不会丢失或覆盖。
13、Params - 在这里将编写请求所需的参数,比如Key - Value。
14、Authorization - 为了访问api,需要适当的授权。它可以是Username、Password、Token等形式。
15、Headers - 请求头信息
16、Body - 请求体信息,一般在POST中才会使用到
17、Pre-request Script - 请求之前 先执行脚本,使用设置环境的预请求脚本来确保在正确的环境中运行测试。
18、Tests - 这些脚本是在请求期间执行的。进行测试非常重要,因为它设置检查点来验证响应状态是否正常、检索的数据是否符合预期以及其他测试。
19、Settings - 最新版本的有设置,一般用不到。
测试网址:
https://jsonplaceholder.typicode.com/users
测试网址:
https://jsonplaceholder.typicode.com/users
params参数,会在请求时带上的参数,会直接加在url后面,并以 & 连接不同参数
key 是键名,value 是键值,description 是描述(只备注作用,不会带到请求参数)
在这里的 Bulk Edit ,进入编辑模式,对于大量的参数的话,可以用以下方式导入
需要用冒号隔开,一行一个参数
这是鉴权方式
我们最常用的就是 bearer 鉴权 然后填入token,发送请求之后,便会自动在请求头加上
当然,还有更多鉴权方式
header 请求头
在 Body 里面,有多种参数模式
none:无参数
form-data:表单格式,可以传入字典(键值对)或文件
x-www-form-urlencoded:只能传入字典,即键值对
raw:可以传入json,xml,html,javascript
binary:把文件转化为二进制,并传参
前置脚本处理器
我们可以在请求之后,使用postman的脚本,进行处理
后置脚本处理器,我们可以在请求之后,进行断言,脚本操作等
cookie 管理
我们在Tests编写的脚本,都会在下方的,TestResult 展示
比如,
我们在进行A项目时,需要用到username和password
这时,我们需要切换到B项目,也是需要用到username和password
但是,两个username可能都不一样,那么,怎么样才能便捷的切换,不需要每次都去修改呢?
那就是需要用到我们的环境变量 Environment
然后,我们在这里的参数,可以用{{变量名}} 来读取我们的环境变量
发起请求,然后,我们通过 Fiddler 来查看发起请求的时候,有没有把参数值带上
可以看到这里使用的是A环境变量时候的值
那我们切换到B
可以看到,就替换成B环境时候的值
与环境变量操作方法一样,我们添加username和password
我们会发现,参数值被加上了划线,并且处于灰色状态
说明如果跟环境变量的参数名一致,那么
就会优先使用环境变量
我们可以添加一个email的全局变量看看效果
集合可以方便管理我们的api
可以这么说,集合就是项目
我们习惯性,给不同项目创建不同集合,这样的话
每个集合就有对应的api,统一进行管理
我们可以为集合单独设立一些参数
当然,我们习惯性的,会为一个大集合下面创建N个子集合
代表,项目下的功能模块
比如,login,reg,home等
这样,我们就有一个清晰的项目结构,方便我们进行接口测试
我们可以给集合添加请求
我们创建一个get和post的请求
然后,我们在Tests编写脚本代码
编写断言功能,来判断请求的结果是否符合我们的要求
(下一步,我们将进行集合运行,即自动化测试)
get请求,我们设为响应时间是否超过200ms
在自动化测试中,需要先创建集合,所以,请按照上面的步骤,创建好集合,并添加好api接口
然后就是子集合
可以勾选需要自动化测试的api
然后,点击最下方的 Run test_project
这里就会出现运行结果
这里都断言不通过
这样,我们就轻松的完成了接口自动化测试,,去验证我们的请求结果
我们重试一下看看
get请求符合了200ms的响应时间
post的话,返回的状态码是201,其实也符合请求成功的情况,不过,我们是要判断是不是返回了200的状态码,如果项目需求就是需要返回200的状态码,那么,这个接口就是有bug
我们还可以尝试,循环运行10次看看
我们就可以看到一个综合结果
对于,我们需要筛选通过与不通过的请求
点击左侧这里,就可以方便的查看啦
对于循环测试api的话
我们的需求,需要每次请求的数据,不一样
那么,就可以用到数据参数化
我们先新建一个csv格式的文件
注意:默认文件的编码不是UTF-8,这个时候,如果包含中文,在导入数据的时候,postman只会获取成乱码,这个需要注意一下
我们用notepad++,来把文件编码改为utf-8,,如果你有其他文本编辑器,可以修改编码也是可以的
文件的首行,是列名
这里请使用英文变量名,后面,在请求参数中,才可以用{{}}来获取
我们在get请求中,在params中,使用这两个变量
在这里,我们可以看到,循环次数,自动帮我们修改为数据数
然后,这个会自动识别数据格式,如果自动识别的不准确,可以手动修改
然后,我们预览一下数据
注意看看有没有乱码情况,以及数据丢失的情况
然后,我们运行看看
通过 Fiddler 来查看请求有无带上参数
可以,已经自动帮我们填上我们提供的数据
这就是参数化测试
提示:将会持续优化更新
20220712,安装,功能介绍,Get 和 Post 请求-get请求,post请求,界面介绍-Params,Authorization,Header,Body,Pre-request Script,Tests,TestResult,Cookies,环境变量和全局变量-环境变量,全局变量,Collections 集合-创建集合,添加请求,Runner 自动化测试,Runner 参数化测试