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

news2024/11/22 8:30:44

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

  • 按照项目、文件夹管理我们的接口

  • 接口详情可以查看我们接口的入参和返回示例、字段含义说明等

  • 每个迭代会包含多个项目、多个文件夹的接口。

  • 以迭代为单位,生成接口文档,可以标注一些这个迭代的注意事项,可导出分享。

  • 把这个迭代涉及的一系列接口入参和返回串联起来调用,就构成了这个迭代接口的一个测试用例。

  • 我们迭代编写单测入参和断言支持大量常用的情景输入,如引起前面步骤的数据,读取项目环境变量数据等。

  • 发送网络请求,和 PostMan 相比,支持引用环境变量和使用随机数、随机字符串等作为参数。环境变量独立于项目和环境。

下载

MyPostMan项目地址:
MyPostMan 项目地址icon-default.png?t=N7T8https://gitee.com/onlinetool/mypostman

 软件下载(windows):Windows 下载地址icon-default.png?t=N7T8http://cdn.fanghailiang.cn/MyPostMan-Setup-0.0.1.exe

软件下载(mac): 

mac 下载地址icon-default.png?t=N7T8http://cdn.fanghailiang.cn/MyPostMan-0.0.1.dmg

 使用

开始旅程.mdicon-default.png?t=N7T8https://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 项目地址icon-default.png?t=N7T8https://gitee.com/onlinetool/mypostman

 软件下载(windows):Windows 下载地址icon-default.png?t=N7T8http://cdn.fanghailiang.cn/MyPostMan-Setup-0.0.1.exe

软件下载(mac): 

mac 下载地址icon-default.png?t=N7T8http://cdn.fanghailiang.cn/MyPostMan-0.0.1.dmg

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

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

相关文章

ASP.NET MVC企业级程序设计(增删,页面水平排列,字符串拼接,非空,添加框内默认提示)

目录 题目: 实现过程 控制器代码 DAL BLL Index Deile 题目: 实现过程 控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication1.Models;namespac…

oracle中执行select ... for update需要什么权限?

oracle中执行select … for update需要什么权限? 问题 在oracle中,一个用户执行select … for update需要什么权限? 分析测试 用户1: test_0614 用户2:test 目标表:test.t_0614 执行语句:se…

机器学习课程复习

参考书目:《统计学习方法》 选择题 5道 3分/道 填空题 5道 3分/道 简答题 3道 计算题 1道 算法设计题 1道 隐马尔可夫不考计算题 很有可能考计算题的知识点:KNN、决策树、支持向量机、聚类算法 小概率会考计算题的知识点:线性回归(最小二乘法,代公式算参…

代码随想录——全排列(Leetcode LCR083)

题目链接 回溯 class Solution {List<List<Integer>> res new ArrayList<List<Integer>>();List<Integer> list new ArrayList<Integer>();boolean[] used;public List<List<Integer>> permute(int[] nums) {used new bo…

密码学及其应用——为什么选择接近的质数因子对RSA加密算法不安全?

RSA加密算法是一种广泛使用的非对称加密算法&#xff0c;它的安全性依赖于大整数分解的难度。具体来说&#xff0c;RSA算法生成的公钥包含一个大整数N&#xff0c;这是两个大质数p和q的乘积。然而&#xff0c;如果这两个质数p和q太接近&#xff0c;则可以相对容易地对N进行因式…

【Python机器学习实战】 | Lasso回归和弹性网回归详细分析研究

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

【STM32】矩阵计算器

【STM32】矩阵计算器 资料链接请在文章末尾获取~ 1.说明 使用元器件&#xff1a;stm32f103c8t6最小系统板x1&#xff0c;0.96寸OLED显示屏四角x1&#xff0c;4x4矩阵按键x1; 参考&#xff1a;正点原子有关4脚OLED驱动float型数据的驱动文件&#xff0c;CSDN有关矩阵横向扫描…

网络安全:入侵检测系统的原理与应用

文章目录 网络安全&#xff1a;入侵检测系统的原理与应用引言入侵检测系统简介IDS的工作原理IDS的重要性结语 网络安全&#xff1a;入侵检测系统的原理与应用 引言 在我们的网络安全系列文章中&#xff0c;我们已经涵盖了从SQL注入到端点保护的多个主题。本篇文章将探讨入侵检…

八大排序————C语言版实现

Hello&#xff0c;各位未来的高级程序员们&#xff0c;大家好&#xff0c;今天我就来为大家讲解一下有关排序的内容&#xff0c;我们常见的排序就是我们接下来要讲的这八个排序&#xff0c;我们平常所说的排序有十大排序&#xff0c;我们这里的八大排序是我们生活中最为常见的八…

【机器学习】:线性回归模型学习路线

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

探究布局模型:从LayoutLM到LayoutLMv2与LayoutXLM

LAYOUT LM 联合建模文档的layout信息和text信息&#xff0c; 预训练 文档理解模型。 模型架构 使用BERT作为backbone&#xff0c; 加入2-D绝对位置信息&#xff0c;图像信息 &#xff0c;分别捕获token在文档中的相对位置以及字体、文字方向、颜色等视觉信息。 2D位置嵌入 …

DOPE-FITC在细胞定位、动态追踪等方面的应用-星戈瑞

DOPE-FITC作为一种荧光标记磷脂&#xff0c;在细胞生物学研究中发挥着科研作用。其荧光特性和与细胞膜的亲和性&#xff0c;使其成为细胞定位、动态追踪等方面的工具。 细胞定位 DOPE-FITC能够有效地标记细胞膜&#xff0c;使得细胞膜在荧光显微镜下呈现出明亮的绿色荧光。这种…

NLP入门——复杂函数建模与链式求导

复杂函数建模 前面我们研究的梯度下降法分类&#xff0c;是简单的对每类中每个子词的分数进行求和&#xff0c;统计分数最大的类别并不断调整分数来提高准确率。 我们可以修改函数模型&#xff0c;用更加复杂的函数代替sum()&#xff0c;来达到更好的学习效果。 def compute_…

LLM大语言模型应用方案之RAG检索增强生成的实现步骤。

0.我理解的RAG 什么是RAG&#xff1f; RAG的全称是“检索增强生成模型”&#xff08;Retrieval-Augmented Generation&#xff09;。这是一种特别聪明的大语言模型。 RAG是怎么工作的呢&#xff1f; 1.检索&#xff1a;当你问RAG一个问题时&#xff0c;它会先去“图书…

Dockerfile封装制作pytorch(tensorflow)深度学习框架 + jupyterlab服务 + ssh服务镜像

一&#xff1a;docker-hub官网寻找需求镜像 1.我们在https://hub.docker.com/官网找到要封装的pytorch基础镜像&#xff0c;这里我们以pytorch1.13.1版本为例 2.我们找到的这个devel版本的镜像&#xff08;我们需要cuda的编译工具&#xff09; pytorch版本是1.13.1&#xff0c;…

Windows桌面运维----第四天

1、U盘故障打不开&#xff1a; 操作方式&#xff1a;WinR打开运行&#xff0c;输入cmd确定&#xff0c;在&#xff08;C:\Users\Administrator>&#xff09;后输入chkdsk,空格&#xff0c;输入U盘盘符&#xff0c;例如F:/F&#xff0c;回车&#xff0c;等待修复完成。 2、…

Bad return type in lambda expression: void cannot be converted to Unit

1.背景 当kotlin中声明需要传入一个返回值为空(Unit)的方法引用. 代码示例: 下方第二个参数为一个方法引用,(参数为BiometricPrompt.AuthenticationResult, 返回类型为Unit). object BiometricPromptUtil {private const val TAG "BiometricPromptUtil"fun cre…

Day6—热点搜索词统计

一、要求 根据用户上网的搜索记录对每天的热点搜索词进行统计&#xff0c;以了解用户所关心的热点话题。 要求完成&#xff1a;统计每天搜索数量前3名的搜索词&#xff08;同一天中同一用户多次搜索同一个搜索词视为1次&#xff09;。 二、数据 三、配置scala环境 1.下载sca…

思科PAP命令笔记

命令格式 含义 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 原文链接&#xff1a;https://blog.csdn.net/qq_44862120/article/details/115675197 ——————…

动态规划——活动安排问题II(C++)

Take it easy! 2024年6月19日 题目描述 假设有n个活动和一个资源&#xff0c;每个活动执行时都需要占用该资源&#xff0c;并且该资源在任何时间只能被一个活动所占用&#xff0c;一旦某个活动开始执行&#xff0c;中间将不能被打断&#xff0c;直到其执行完毕。每个活动i都有…