当前位置: 首页 > news >正文

MyPostMan 迭代文档管理、自动化接口闭环测试工具(自动化测试篇)

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

 软件下载

如果不想从源码一步步编译,可以从以下链接下载可执行文件:

windows 平台:MyPostMan-Setup-0.0.5.exe

mac 系统:MyPostMan-0.0.5.dmg

mac 可能遇到无法打开应用的情况,在终端执行命令sudo spctl --master-disable 后即可正常打开


编写单测用例、执行测试

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

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

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

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

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

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

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

接口选择 天气预报 项目 的 查询支持的城市列表 接口,触发方式选择自动执行,其他使用默认值即可。{{appKey}}会从接口关联项目的环境变量中读取对应的环境变量值。

下面填写返回断言:这个接口的断言是要求 接口返回正确的错误码,也就是 error_code 必须是 0

​ 

​ 

 最终生成下面的断言表达式,支持添加多个断言的,他们之间是且的关系。点击添加步骤按钮,添加我们第一个单元测试的第一个步骤。

我们可以试着运行一下测试用例,看一下效果,选择环境->本地环境,点击执行用例按钮。

 

 

从图中可以看到,我们的执行结果是成功的,也可以看到,我们每个步骤、接口调用的入参、返回值,断言两边的计算结果,方便我们在遇到失败时进行排障。

再接再厉,添加第二个接口,拿刚刚成功的获取城市列表接口返回的 任意一个城市作为入参,调用查询天气预报接口,断言接口返回的城市就是我们入参提供的来自于城市列表接口返回的任意城市。(有点绕,诶,看图)

 

 下面是高能区,仔细看图

 

 result.*random().city 是参数数据源的具体路径,result 下面是一个数据,我们选数组下面的任意的一个元素,拿到这个元素后,我们使用他的 city 字段作为入参。(放心,在输入“.”号时会自动触发语法提示,输入这些不会太难,你体验一下就知道了~)

点击确定,入参已经填好了

下面添加返回断言,我的断言名称是 接口的返回城市名称字段需要与入参的城市名一致

​ 

 这个能看懂吧?我们拿当前步骤执行结果中的 result.city 路径的数据作为断言的左侧。

这个是拿我们当前步骤 body 入参的 city 路径的实际数值作为断言比较的对象,结果如下:

​ 可以看到,我们已经添加好了两个步骤,下面在 本地环境 下执行我们的用例。

​ ​ 我们从城市列表接口的返回中随机取了一个叫 廊坊 的城市查询了天气预报,返回的城市名称正是廊坊,断言成功!

好了,我们的入门教程就到这里,其他功能,比如备份、还原数据库,从 PostMan 导入接口到项目等功能,自行探索。啰嗦一句,最好定时备份一下数据库!

从源码编译

版本依赖: - nodejs:v20.12.2 - electron:26.2.4

  1. 安装 & 配置 yarn
npm install -g yarn
yarn config set ELECTRON_MIRROR https://registry.npmmirror.com/-/binary/electron/
yarn config set ELECTRON_BUILDER_BINARIES_MIRROR https://registry.npmmirror.com/-/binary/electron-builder-binaries/
yarn config set registry https://registry.npmmirror.com/
  1. 下载依赖包
yarn
  1. 生成可执行文件
yarn package

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • go 实现websocket以及详细设计流程过程,确保通俗易懂
  • 谷粒商城实战笔记-37-前端基础-Vue-基本语法插件安装
  • 【阿里OSS文件上传】SpringBoot实现阿里OSS对象上传
  • 【Vite】快速入门及其配置
  • WPF中UI元素继承关系
  • python os库使用教程
  • 【源码阅读】Sony的go breaker熔断器源码探究
  • C2W1.Assignment.Parts-of-Speech Tagging (POS).Part2
  • 算法日记day 15(二叉树的遍历)
  • 【Qt】QWidget核心属性相关API
  • 新版网页无插件H.265播放器EasyPlayer.js如何测试demo视频?
  • 深入浅出mediasoup—通信框架
  • 【BUG】已解决:ModuleNotFoundError: No module named ‘paddle‘
  • 【云原生】Kubernetes微服务Istio:介绍、原理、应用及实战案例
  • uniapp vue3 上传视频组件封装
  • 分享的文章《人生如棋》
  • [数据结构]链表的实现在PHP中
  • 10个确保微服务与容器安全的最佳实践
  • django开发-定时任务的使用
  • Docker下部署自己的LNMP工作环境
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Iterator 和 for...of 循环
  • Java 多线程编程之:notify 和 wait 用法
  • Java 内存分配及垃圾回收机制初探
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Spring声明式事务管理之一:五大属性分析
  • SwizzleMethod 黑魔法
  • 汉诺塔算法
  • 欢迎参加第二届中国游戏开发者大会
  • 七牛云假注销小指南
  • 携程小程序初体验
  • 智能网联汽车信息安全
  • 第二十章:异步和文件I/O.(二十三)
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (C语言)二分查找 超详细
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (篇九)MySQL常用内置函数
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)scrum常见工具列表
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net 使用ajax控件后如何调用前端脚本
  • .NET企业级应用架构设计系列之应用服务器
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • /bin/rm: 参数列表过长"的解决办法
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @vue/cli 3.x+引入jQuery