本页面用于积累Postman的高级应用,方便测试和团队合作
目录
一、加入postman团队
二、知识储备
创建接口合集和请求
导入和导出
环境变量、全局变量
test模块、Pre-request Script模块
接口关联
传参方式:动态变量传参、数据变量传参
flow流程
遇到的一些问题
三、应用-财报解析接口自动化测试
一、创建团队
申请个人账号:团队每个成员自己注册账号,登陆即可
创建团队:使用账号登录后,点击顶部的 My Workspace,创建团队 WorkSpace,创建团队工作空间并邀请成员,被邀请的人就可以加入该 workspace
加入团队:进取组团队邀请链接:
二、知识储备
创建接口合集和请求:后续如果团队空间中的集合和请求发生变化,都会同步
导入和导出:
1.postman通过链接导出、导入
1.1 导出
1.2 导入
2.postman通过json文件导出、导入
2.1 导出
2.2 导入postman
3.将postman导出的json格式的接口文档导入yapi:
yapi导入json文档只支持v1.1格式,导入v2.0格式的json文件会提示解析数据为空,但目前postman导出的json文档为v2.0格式,所以需要格式转换,详情参考
用到的代码:
终端中,输入以下命令以安装 :Postman Collection Transformersudo npm install -g postman-collection-transformer
输入以下命令将单个 Postman 集合从 v2 转换为 v1,生成的集合将以 v1 格式下载到您的目标文件路径:postman-collection-transformer convert -i 1103财报-2022.8.2.postman_collection.json -o 1103.test.json -j 2.0.0 -p 1.0.0 -P
- 环境变量、全局变量
1.概念:
环境变量:postman可以设置多套环境,每套环境里可以有多个环境变量。环境变量是特定的环境下引用的变量,必须要制定对应的环境才能引用到其中的变量
全局变量:postman只可以设置一组全局变量,作用于整个postman。全局变量是在postman中所有的api都使用的变量,可以直接引用全局变量中的变量,而不用指定环境(独立于环境变量)
2.设置步骤:
点击右上角眼睛,点击add
进行环境命名
在URL里填入host参数,点击右上角进行环境切换
- test模块、Pre-request Script模块
- test模块:是请求发送之后需要执行的代码片段
1.1判断请求返回的 code 是否符合预期
1.2判断请求返回的内容中是否包含(关键字),或者等于预期的内容
1.3判断接口返回值为字符串类型,转换成json类型
1.4获取接口返回值,并设置全局变量
2.Pre-request Script模块:是请求发送之前需要执行的代码片段
2.1加密请求,如果接口信息需要加密,选择Pre-request Scripts标签,在Pre-request Scripts中请求一个加密接口,然后将获得加密后的数据设为环境变量
2.2获取当前日期、时间戳,编写如下脚本,在接口请求参数中引用设置的变量,查看控制台可以看到输出
2.3在Pre-request中获取环境变量(和上面tests页签中获取并设置的逻辑一样)
- 接口及联:
将上一个接口获取的返回值通过test脚本设置成变量,下一次需要用到该参数的接口,在参数值位置填入变量
- 以上面的token为例,其余接口需要token,在auth里选择bearer token,token值位置填充{{token}},以后可以直接动态获取token值
或者不想一个个去设置bearer token,也可以点击接口合集,选择edit,填入token
- 传参方式:动态变量传参、数据变量传参
注意:这两种变量使用之前要在pre-request script中定义过,然后在request的URL、headers、body中以放在双花括号中间的形式使用。
1.动态变量传参:Postman也有一些动态变量,可以用在你的request中。在request header中包含时间戳或者在URL参数中发送一个随机字符串,时间戳和随机字符都属于动态变量。
引入变量,将账户和密码字段的参数值都设置为变量:{{username}}、{{password}}
然后在Pre-request Script 功能区中用脚本将上面两个变量进行赋值,但这种方法是将参数值写死,所以无论运行多少次还是固定是一个参数值
2.数据变量传参:集合运行器让我们导入CSV或JSON文件,然后在HTTP请求和脚本中使用来自数据文件的值。这些变量称为数据变量。
以csv文件批量导入数据为例:
打开文本编辑器:第一行 写入 的是 数据对应的 “字段名”,从第二行向后依次是对应的数值,数据间用 英文逗号隔分。
或者在excel中填写测试数据,将文件保存为csv格式,utf-8编码方式。传入四组测试数据
在需要引用参数的接口下的pre-request Script下定义需要的参数
运行次数选择4次,文件上传刚才保存的csv文件,点击运行按钮
- flow
1.是一个 API 工作流构建器,可让以逻辑方式连接 API。使用 Flows 在您的 Postman 工作区中链接请求、处理数据和创建真实世界的工作流
2.步骤
2.1创建一个Send Request Block
2.2创建一个Create Durables 映射 Token变量(Create Durables 作用:将A接口返回值存储到一个变量中 功能效果等价【Assign Variables】)
2.3使用Token变量 创建一个SendRequest进行链接
2.4接口配置变量
2.5执行
- 遇到的问题:
1.财债通后台登陆接口:没有屏蔽掉验证码,在执行登陆接口时,只更新验证码,点击运行提示错误验证码,https://czt.datagrand.cn/#/passport/login
解决:同时更新cookie和验证码,再点击运行。session是服务端根据cookie获取唯一对应的session(jessionid),该session对应登陆的验证码。只要cookie没有过期,session不会改变,刷新可以验证码会改变,此时只需要改验证码。
2.接口合集里的每个接口单独运行,没有报错,点击运行集合后,其中一个接口报错:Form param file
, file load error: PPERM: insecure file access outside working directory
解决:出错的接口需要上传文件,运行合集时,需要在设置里打开allow reading files outside working directory按钮
- 上传文件接口获取到file_name和unique_name两个键值对的字典。将该字典设置成全局变量时,postman默认把字典数据变成string格式。在创建任务接口时,调用该全局变量,并打印该全局变量,发现该字典被识别为object格式
解决:把获取到的字典格式在pre-request script之前进行序列化 JSON.stringify()
参考链接:https://blog.postman.com/when-and-how-to-use-json-serialization-in-postman/
三、应用-财报解析接口自动化测试
选择一个接口合集,点击run collection运行
接口运行结束,会有运行结果概览。若某个接口有加上test断言,在接口运行结果下方展示pass或者fail。接口无断言,展示no test in this request
版权归原作者 sxmia 所有, 如有侵权,请联系我们删除。