1、前言
作者之前已经开发了一个生成接口用例的工具 - API接口用例生成器,即将现有的 Postman 脚本转化为接口用例。本篇介绍另一款最近刚开发并项目落地的工具,将 Postman 的 json 脚本文件可以批量转换生成接口用例 - APICase-PostmanForJSON。
2、简介
如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click APICase-PostmanForJSON,采用 Python 编写,利用了Tkinter 进行 GUI 封装。
特点:
1、支持 GET、POST、PUT、DELETE 方法
2、支持 带参数[Params]、带请求头[Header]、带请求体[Body]
3、支持 POST方式的文件上传接口[form-data]
4、支持 JSON格式类型:{}、[]、[{}]
5、支持 获取环境变量[环境变量文件-Initial value]
6、支持 获取全局变量[Variables]
7、支持 依赖接口的指定值获取[Tests]
示例:
var jsonData =JSON.parse(responseBody);
postman.setGlobalVariable("pressure",jsonData.data.pressure);
var jsonData =JSON.parse(responseBody);
pm.environment.set("pressure",jsonData.data.pressure);
var jsonData =JSON.parse(responseBody);
pm.globals.set("pressure",jsonData.data.pressure);
var jsonData =JSON.parse(responseBody);
pm.collectionVariables.set("pressure",jsonData.data.pressure);
8、支持 按接口或流程来生成用例
9、支持 按生成用例方式为流程时,提取返回值可以是值或方法
示例:
值:1006
方法:$('now',2,'res_body.data.pressure')
10、支持 自定义提取接口返回值
示例:
data
data.albumId
data[0].categoryId
11、支持 单接口缺省参数自动填充
12、支持 Postman接口脚本的两种方式[Add request、Add example]
13、支持 多接口[乱序],生成用例时相同接口归类
3、快速上手
打开APICase-PostmanForJSON。
主要就是导入Postman 的json 文件(接口文件为必填,环境变量文件为选填),根据所要生成用例的方式设置是接口还是流程,如果系统自定义提取值没有想要获取的元素,可以在自定义提取值那填写自己所要的值,之后点击运行就可以了,运行过程中进度条可以实时显示进度。
如下图是Postman 一个接口示例,可以看到请求成功并返回值。
将Postman 的接口和环境变量json 文件导出来。
使用APICase-PostmanForJSON 将导出的 json 文件转为接口用例。
导入json 文件,设置自定义提取值,生成用例方式为接口。
点击运行后,开始生成用例,运行日志会先统计有多少个接口,之后实时打印出来接口信息。
用例生成后,打印出用例文件路径。
打开用例文件,可以看到生成后的用例格式,按接口方式生成,即相同的接口归为一类,可以看到有2类接口,自定义的提取值也提取出来了。
如果按照生成的用例方式为流程。
打开用例文件,可以看到有多少个接口就会生成多少个sheet页。本次示例有4个接口,那么就会生成4个sheet页(每一个接口为1个sheet页)。