MyPostMan:按照项目管理接口,基于迭代生成接口文档、执行接口自动化联合测试

MyPostMan 是一款类似 PostMan 的接口请求软件,不同于 PostMan 的是,它按照 项目(微服务)、目录来管理我们的接口,基于迭代来管理我们的接口文档,按照迭代编写自动化测试用例,在不同环境中均可运行这些用例。

  • 按照项目、文件夹管理我们的接口
  • 接口详情可以查看我们接口的入参和返回示例、字段含义说明等
  • 每个迭代会包含多个项目、多个文件夹的接口。
  • 以迭代为单位,生成接口文档,可以标注一些这个迭代的注意事项,可导出分享。
  • 把这个迭代涉及的一系列接口入参和返回串联起来调用,就构成了这个迭代接口的一个测试用例。
  • 我们迭代编写单测入参和断言支持大量常用的情景输入,如引起前面步骤的数据,读取项目环境变量数据等。
  • 发送网络请求,和 PostMan 相比,支持引用环境变量和使用随机数、随机字符串等作为参数。环境变量独立于项目和环境。

下载

MyPostMan项目地址:
MyPostMan 项目地址https://gitee.com/onlinetool/mypostman

软件下载(windows):Windows 下载地址http://cdn.fanghailiang.cn/MyPostMan-Setup-0.0.1.exe

软件下载(mac):

mac 下载地址http://cdn.fanghailiang.cn/MyPostMan-0.0.1.dmg

使用

开始旅程.mdhttps://gitee.com/onlinetool/mypostman/blob/master/doc/%E5%BC%80%E5%A7%8B%E6%97%85%E7%A8%8B.md

准备接口调用 key

在以下教程中,我们使用聚合数据的(天气预报)相关接口演示如何使用 MyPostMan 进行接口调用、文档生成、自动化测试。

首先你需要申请一下 key,如果嫌麻烦,可以使用我的 2c173c8a08cb275c6925c775c038903b ,但有限额,你大概率调不通~[沮丧]

环境、微服务、环境变量

在开始之前,先要设置好这些信息。我们企业中的环境一般分为开发、测试、预发布、线上等环境。通常我们只对某几个项目(微服务)拥有权限。不同的项目在不同环境中部署后,又会存在不同的访问地址,我们使用环境变量来管理这些在不同项目、不同运行环境中呈现不一样的字符串。

点击设置 -> 开发环境 -> 新增 来创建我们的开发环境

点击设置 -> 微服务 -> 添加 来创建我们的项目

在环境变量中设置我们这个项目在这个环境中,接口访问的 host 信息,点击设置->环境变量->选择项目(天气预报)->选择环境(本地环境)->api_host->编辑,下面填写的地址为 http://apis.juhe.cn/simpleWeather/ (注意,要求必须是以 http:// 或者 https:// 开头且以 /结尾的 url 地址)

再新建一个环境变量,把我们准备阶段辛苦申请的 appKey 填进去。点击 设置 -> 环境变量 -> 添加。参数名称填写 appKey ,参数值填写你刚刚申请的 key,我的填写 2c173c8a08cb275c6925c775c038903b

以上这些,相当于我们初始化了一个项目。完成后效果如下

迭代、接口测试、编写文档

我们这个天气预报项目 研发第一个迭代开发了两个接口:查询支持的城市列表根据城市查询未来天气

先创建一个迭代,在这个迭代里生产我们的接口文档,编写测试用例,最后迭代完成,接口合并到项目中,上线!

点击 设置 -> 版本迭代 -> 新增

我们现在通常是一个月一个迭代,因此我的迭代名称就是 天气预报 2406,因为我这个迭代涉及的项目就一个天气预报项目,所以微服务只选了一个。通常情况下,你们一个迭代会涉及很多个项目,都把它们选出来吧,多选漏选也无所谓,可以在 设置 -> 版本迭代 找到你的版本迭代,进行修改的。迭代说明是一个 markdown 的文案,这会在你们迭代的文档顶部展现出来,你、前端、测试 所有想要看迭代接口文档的人都会看到~

当你的迭代上线后,可以关闭这个迭代,相当于归档,迭代变得不可修改,所有接口会按照关闭的先后顺序覆盖到你项目的接口列表中。

测试一下我写的查询支持城市列表接口是否正确:请求 -> 发送请求,选择项目(天气预报)-> 选择环境(本地环境)->请求方式(GET)->地址(cityList),参数 key{{appKey}} ("{{"开头,"}}"结尾的值会引用我们环境变量的数据,最终发送网络请求的数据是环境变量设置的值而不是这个字符串本身;这个界面就是参照 PostMan;在你输入"{{"时,会自动提示出这个项目下所有的环境变量,因此输入不会太困难;)。点击发送请求按钮可以得到下图的响应,代表查询天气预报接口是可用的。

点击发送请求 按钮上面的 保存 按钮,把刚刚自测验证通过的接口保存到这个迭代文档中。

我们需要告诉其他人,这个接口是用来干什么的,传的那些字段是什么含义,返回的那些字段又是什么含义,这些在我们的迭代文档中都会有所体现。另外这个接口是属于哪个迭代的,如果这个迭代涉及的接口太多,我们还要通过文件夹在迭代这个池子中进行接口和接口的分类。

点击保存就在我们这个迭代中新建了第一个接口 ------查询支持的城市列表!

验证第二个接口,根据城市名称查询天气。请求->发送请求->选择项目->选择环境->请求方式(POST)->请求地址(query)。key 填写 {``{appKey}} 读取 appKey 环境变量, city 填写 上海,代表查询上海这座城市的天气。发送请求得到以下响应:

看起来接口没有问题,我们点击保存按钮把这个接口存入迭代的接口文档中吧!选择好迭代、文件夹,填好接口名称、字段含义,over

下面看看我们的劳动成果,一份迭代的接口文档已经准备好了

在迭代导航下可以看到我们刚刚创建的迭代,点进来,可以看到这个迭代下面的接口列表,支持根据接口地址、接口说明、接口所属的项目(微服务),接口在迭代里的文件夹进行帅选;对接口列表的管理包括编辑、删除、设置排序值等。在右下角漂浮着有一个迭代文档的按钮

点击迭代文档按钮,查看我们的迭代文档

不对,这个接口文档就我一个人能看到有个 p 用啊。别急,页面右下角漂浮着一个导出按钮,点击。支持将迭代的接口文档导出成 markdown 和 html 两种格式。以下是导出的文档打开效果

编写单测用例、执行测试

上面,我们在编写接口文档时,已经大概测试了单个接口是可用的。实际上,这些接口不是单独存在的,他们需要根据特定的使用场景,按一定的规则将这些接口的入参、返回值串联起来,通过一步步的断言验证在这个特定场景下,接口返回信息是正确无误的。

以我们的天气预报项目为例,上面验证了 上海 这个城市查询天气是没有问题的,然而我们的实际场景是:从支持的城市列表中任意拿出一个城市,都要求必须能够查询出这个城市的天气,只有这样才能确保我们的接口是真的可用。

新建一个单测用例:从单测菜单找到我们的迭代天气预报 2406 ,点击添加,单测名称我写的是 任意城市查询天气,点击确定。

在这个单测用例中,包含两个步骤:

  1. 查询城市列表
  2. 从城市列表的返回中,任意选择一个城市名作为入参,查询该城市的天气

为了保证这些步骤顺利执行下去,每个步骤必须添加一个断言,断言失败终止执行测试用例,并告知亲在哪里断言出错了,入参是什么、返回是什么,方便你进行排查修复 bug。

从单测列表中找到你新加的单测,右边三个点中找到添加步骤入口

接口选择 天气预报 项目 的 支持城市列表 接口,其他使用默认值即可。注意 Content-Type 应该是 application/x-www-form-urlencoded{``{appKey}}会从接口关联的项目的环境变量中读取对应的环境变量值。

阅读更多内容,请打开以下链接:

doc/开始旅程.md · onlinetool/MyPostMan - Gitee.com

下载

MyPostMan项目地址:
MyPostMan 项目地址https://gitee.com/onlinetool/mypostman

软件下载(windows):Windows 下载地址http://cdn.fanghailiang.cn/MyPostMan-Setup-0.0.1.exe

软件下载(mac):

mac 下载地址http://cdn.fanghailiang.cn/MyPostMan-0.0.1.dmg

相关推荐
惜.己10 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
坐公交也用券13 小时前
使用Python3实现Gitee码云自动化发布
运维·gitee·自动化
互联网杂货铺15 小时前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
施努卡机器视觉15 小时前
电解车间铜业机器人剥片技术是现代铜冶炼过程中自动化和智能化的重要体现
运维·机器人·自动化
徐浪老师15 小时前
深入实践 Shell 脚本编程:高效自动化操作指南
运维·chrome·自动化
King's King15 小时前
自动化立体仓库:详解
运维·自动化
东隆科技15 小时前
晶圆测试中自动化上下料的重要性与应用
运维·自动化
懒笑翻18 小时前
Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例
运维·selenium·自动化
n***859418 小时前
Github 开源 10K Stars 自动化 API、后台作业、工作流和 UI 的开发平台
运维·自动化