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

news2024/9/22 13:36:15

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1932878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

定制QCustomPlot 带有ListView的QCustomPlot 全网唯一份

定制QCustomPlot 带有ListView的QCustomPlot 文章目录 定制QCustomPlot 带有ListView的QCustomPlot摘要需求描述实现关键字: Qt、 QCustomPlot、 魔改、 定制、 控件 摘要 先上效果,是你想要的,再看下面的分解,顺便点赞搜藏一下;不是直接右上角。 QCustomPlot是一款…

Spring中IoC容器和Bean

目录 IoC(Inversion of Control)控制反转思想 Spring技术对IoC思想的实现 DI(Dependency Injection)依赖注入 目标 最终效果 IoC入门案例 传统方法,不使用IoC思想调用dao层 使用IoC思想调用dao层 第一步:导入Spring坐标 第二步:创建…

stm32:CAN通讯

目录 介绍 协议层 CAN的 帧/报文 种类 数据帧 远程帧(遥控帧) 错误帧 过载帧 帧间隔 总线仲裁 stm32的CAN外设 工作模式 测试模式 功能框图 时序 标准时序 例子 环回静默模式测试 寄存器代码 HAL版本 介绍 一种功能丰富的车用总线标…

【ffmpeg命令入门】重新编码媒体流、设置码率、设置帧速率

文章目录 前言ffmpeg的描述重新编码媒体流重新编码媒体流的命令ffmpeg支持的媒体流 设置视频码率视频码率是什么设置视频的码率 设置文件帧数率帧数率是什么ffmpeg设置帧数率 总结 前言 在数字媒体处理领域,ffmpeg是一款非常强大的工具,它可以用来进行媒…

自动化产线 搭配数据采集监控平台 创新与突破

自动化产线在现在的各行各业中应用广泛,已经是现在的生产趋势,不同的自动化生产设备充斥在各行各业中,自动化的设备会产生很多的数据,这些数据如何更科学化的管理,更优质的利用,就需要数据采集监控平台来完…

解决Ubuntu 20.04下外接显示屏无信号问题【多次尝试无坑完整版!!!】

解决Ubuntu 20.04下外接显示屏无信号问题【多次尝试无坑完整版!!!】 一、引言 作为一名开发者,我经常在Windows和Ubuntu之间切换,以满足不同的开发需求。最近,我在使用惠普暗影精灵9(搭载RTX 4…

HLS加密技术:保障流媒体内容安全的利器

随着网络视频内容的爆炸性增长,如何有效保护视频内容的版权和安全成为了一个亟待解决的问题。HLS(HTTP Live Streaming)加密技术作为一种先进的流媒体加密手段,凭借其高效性和安全性,在直播、点播等场景中得到了广泛应…

隐性行为克隆——机器人的复杂行为模仿学习的新表述

介绍 论文地址:https://arxiv.org/pdf/2109.00137.pdf 源码地址:https://github.com/opendilab/DI-engine.git 近年来,人们对机器人学习进行了大量研究,并取得了许多成果。其中,模仿学习法尤其受到关注。这是一种从人…

JavaEE初阶 - IO、存储、硬盘、文件系统相关常识 (二)

🎇🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…

appium2.0 执行脚本遇到的问题

遇到的问题: appium 上的日志信息: 配置信息 方法一 之前用1.0的时候 地址默认加的 /wd/hub 在appium2.0上, 服务器默认路径是 / 如果要用/wd/hub 需要通过启动服务时设置基本路径 appium --base-path/wd/hub 这样就能正常执行了 方法二…

HarmonyOS NEXT学习——@BuilderParam装饰器

初步理解,相当于VUE的插槽slot Builder function overBuilder() {}Component struct Child {label: string ChildBuilder customBuilder() {}Builder customChangeThisBuilder() {}BuilderParam customBuilderParam: () > void this.customBuilder; // 使用自定…

【TDA4板端部署】基于 Pytorch 训练并部署 ONNX 模型在 TDA4

1 将torch模型转onnx模型 Ti转换工具只支持以下格式: Caffe - 0.17 (caffe-jacinto in gitHub) Tensorflow - 1.12 ONNX - 1.3.0 (opset 9 and 11) TFLite - Tensorflow 2.0-Alpha 基于 Tensorflow、Pytorch、Caffe 等训练框架,训练模型:选择…

Hadoop3:HDFS存储优化之小文件归档

一、情景说明 我们知道,NameNode存储一个文件元数据,默认是150byte大小的内存空间。 那么,如果出现很多的小文件,就会导致NameNode的内存占用。 但注意,存储小文件所需要的磁盘容量和数据块的大小无关。 例如&#x…

【5G Sub-6GHz模块】专为IoT/eMBB应用而设计的RG520NNA、RG520FEB、RG530FNA、RG500LEU 5G模组

推出全新的5G系列模组: RG520NNADB-M28-SGASA RG520NNADA-M20-SGASA RG520FEBDE-M28-TA0AA RG530FNAEA-M28-SGASA RG530FNAEA-M28-TA0AA RG500LEUAA-M28-TA0AA ——明佳达 1、5G RG520N 系列——专为IoT/eMBB应用而设计的LGA封装模块 RG520N 系列是一款专为 IoT…

Kafka Producer发送消息流程之Sender发送线程和在途请求缓存区

文章目录 1. Sender发送数据1. 发送数据的详细过程:2. 关键参数配置 2. 在途请求缓存区 1. Sender发送数据 Sender线程负责将已经在RecordAccumulator中准备好的消息批次发送到Kafka集群。虽然消息在RecordAccumulator中是按照分区组织的,但Sender线程在…

百日筑基第二十三天-23种设计模式-创建型总汇

百日筑基第二十三天-23种设计模式-创建型总汇 前言 设计模式可以说是对于七大设计原则的实现。 总体来说设计模式分为三大类: 创建型模式,共五种:单例模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式。结构型模式,共…

【JavaEE】synchronized原理详解

本文使用的是JDK1.8 目录 引言 Java对象在JVM的结构 对象头 Mark Word Monitor Owner EntryList WaitSet 加锁过程 锁消除 偏向锁 偏向锁使用 重偏向 撤销偏向 轻量级锁 重量级锁 自旋优化 引言 对于synchronized原理讲解之前,我们需要知道Java对象…

如何通过DBC文件看懂CAN通信矩阵

实现汽车CAN通信开发,必不可少要用到DBC文件和CAN通信矩阵。 CAN通信矩阵是指用于描述 CAN 网络中各个节点之间通信关系的表格或矩阵。它通常记录了每个节点能够发送和接收的消息标识符(ID)以及与其他节点之间的通信权限。 通信矩阵在 CAN 网…

Redis中数据分片与分片策略

概述 数据分片是一种将数据分割并存储在多个节点上的技术,可以有效提高系统的扩展性和性能。在Redis中,数据分片主要用于解决单个实例存储容量和性能瓶颈的问题。通过将数据分散存储到多个Redis节点中,可以将负载均衡到不同的服务器上&#…

防火墙之双机热备篇

为什么要在防火墙上配置双机热备技术呢? 相信大家都知道,为了提高可靠性,避免单点故障 肯定有聪明的小伙伴会想到那为什么不直接多配置两台防火墙,然后再将他们进行线路冗余,不就完成备份了吗? 答案是不…