网站模板 修改,中国网络平台排名前十,wordpress 主题 支付宝,移动网站开发百度百科项目地址#xff1a;ApiChain 项目主页
ApiChain 简介
ApiChain 是一款类似 PostMan 的接口网络请求与文档生成软件#xff0c;与 PostMan 不同的是#xff0c;它基于 项目和迭代两个视角管理我们的接口文档#xff0c;前端和测试更关注版本迭代中发生变更的接口编写代码…项目地址ApiChain 项目主页
ApiChain 简介
ApiChain 是一款类似 PostMan 的接口网络请求与文档生成软件与 PostMan 不同的是它基于 项目和迭代两个视角管理我们的接口文档前端和测试更关注版本迭代中发生变更的接口编写代码和测试用例新来的研发或者版本迭代接近尾声进行回归测试期间又需要关注特定项目的接口和该项目的全部测试用例进行回归测试。ApiChain 支持针对每个版本迭代编写接口文档内网分享文档链接执行接口调用编写自动化测试用例在项目上线版本迭代结束时将这个迭代内发生的接口变更以及针对迭代涉及的接口编写的自动化测试用例合并到项目中去。
所有数据均保存在您的本地电脑除自动检测更新外这个可配置关闭无其他网络请求保证安全和高性能并能够让研发在纯内网环境中无障碍使用也是我日常工作常用工具之一。 按照项目、文件夹管理我们的接口 在迭代内点击发送请求可以使用我们给这个迭代设置的环境变量这些环境变量可以对这个迭代内涉及的全部项目或者某个项目有效。 发送网络请求 发送网络请求时可以使用我们给特定环境设置的环境变量这些环境变量分为全局有效、特定项目有效、特定版本迭代有效、迭代内特定项目有效。 路径变量请求url支持路径带有参数的格式如hmDownload/{{artifactId}}/{{token}}/app.hap。 头部支持 application/json、form-data 和 urlencoded 方式支持提交json格式的参数、上传文件 返回支持对返回图片或者压缩包、常规文本和其他资源的接口进行测试 接口详情页 可以查看我们接口的入参和返回示例、接口说明、字段含义说明等 接口文档页 以迭代为单位生成接口文档可以标注一些这个迭代的注意事项可导出分享也可直接通过浏览器共享页面。 mock服务器前端在本地开发阶段可以不必调用测试环境接口而是调用接口文档地址的接口返回文档中配置的mock数据以此来画界面。 迭代单测页 把这个迭代涉及的一系列接口入参和返回串联起来调用就构成了这个迭代接口的一个测试用例。这些一系列的步骤之间可以顺序自动执行也可以执行到某一步暂停下来等待你手动按下继续执行的按钮。 若某个测试用例执行失败可以点击请求地址跳转到发送请求的页面可以重复发送单测的请求用来复现并调试bug。 填写单测参数 我们迭代编写单测入参和断言支持大量常用的情景输入如引起前面步骤的数据读取项目环境变量数据等变量支持随机字符串uuid、随机整数、当前时间甚至使用 eval 函数自定义您对数据的处理逻辑。这样设计出来的单测只要接口未做变更未来无需修改可反复执行。用于迭代的测试以及项目回归测试。 项目接口管理 单测列表页 迭代结束被关闭时候这个迭代涉及的所有项目的接口会合并到对应的项目中点击该项目可以查看这个项目所有的接口名称、含义、字段和返回值说明。你也可以把这个迭代认为值得回归测试的单测用例保留到相关的项目中用于对项目的回归测试。 项目的每个单测用例都可以有自己的环境变量这些环境变量属于这个单测一系列步骤的共享数据。 软件下载
如果不想从源码一步步编译可以从以下链接下载可执行文件
windows 平台ApiChain_Setup_1.0.5.exe
**mac 可能遇到无法打开应用的情况在终端执行命令sudo spctl --master-disable 后即可正常打开 ** 第一次使用软件可以参照我们下面的新手指引一步步做完成一个天气预报项目的接口文档编写迭代自动化测试等。 相关术语 开发环境 正常情况下我们的开发环境包括本地local、dev、sit、uat 测试环境、pre 预发布环境、pro 线上环境 等。通常不同开发环境的数据是隔离的开发环境是我们存放环境变量的容器。 项目 通常一个具体的业务会通过内部不同微服务相互调用并对外提供唯一入口这些微服务称为项目当然单机项目只有一个微服务也是支持的。 迭代 一个时间段内业务上需要完成的功能目标称为一个迭代比如实现一个语音房。涉及到给不同的项目包括直播、im、礼物、游戏微服务等开发接口。因此迭代是一个周期内不同项目的一个组合。 环境变量 环境变量是 针对特定开发环境提供的 key-value 格式的数据集可以方便我们修改数据让这些有一定共性的数据变得更加可复用。 环境变量分为 全局环境变量在特定环境中的所有项目都可见比如用于测试的特定UID。项目环境变量只在特定项目可见的数据比如接口的api地址api_host迭代环境变量针对当前开发特定功能的版本迭代才可使用的数据比如临时申请的验证特定功能的高权限账号迭代测试完成就要销毁不便污染全局数据集。单测环境变量为了跑通特定环境的单测而使用的数据源长期对这个单测流程有效。 单测 就是不依赖于用户界面通过连续的链式的网络请求 来实现特定功能并可验证该功能确实实现的一套接口组合以及对接口返回信息的是否成功的判断。 比如 新建文件夹、创建文件、写入数据、删除文件、删除文件夹这个流程。通过获取文件列表判断新建的文件是否在该文件列表中来验证新增文件或者删除文件是否成功。 为了让单测变得可复用不要每次执行单测都要修改数据单测就要支持 随机字符串 这个特性用随机字符串作为单测的初始数据。同时需要能够取前面任何一个步骤的输入数据与当前步骤执行结果的输出数据进行比较确认当前步骤是否执行正确
开始旅程
准备接口调用 key
在以下教程中我们使用聚合数据的天气预报相关接口演示如何使用 ApiChain 进行接口调用、文档生成、自动化测试。
首先你需要申请一下 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 两种格式。 编写单测用例、执行测试
上面我们在编写接口文档时已经大概测试了单个接口是可用的。实际上这些接口不是单独存在的他们需要根据特定的使用场景按一定的规则将这些接口的入参、返回值串联起来通过一步步的断言验证在这个特定场景下接口返回信息是正确无误的。
以我们的天气预报项目为例上面验证了 上海 这个城市查询天气是没有问题的然而我们的实际场景是从支持的城市列表中任意拿出一个城市都要求必须能够查询出这个城市的天气只有这样才能确保我们的接口是真的可用。
新建一个单测用例从迭代菜单找到天气预报 2407-单测点击添加单测名称我写的是 任意城市查询天气点击确定。 在这个单测用例中包含两个步骤
查询城市列表从城市列表的返回中任意选择一个城市名作为入参查询该城市的天气
为了保证这些步骤顺利执行下去每个步骤必须添加一个断言断言失败终止执行测试用例并告知亲在哪里断言出错了入参是什么、返回是什么方便你进行排查修复 bug。 从单测列表中找到你新加的单测右边三个点中找到添加步骤入口
接口选择 天气预报 项目 的 查询支持的城市列表 接口触发方式选择自动执行其他使用默认值即可。{{appKey}}会从接口关联项目的环境变量中读取对应的环境变量值。 下面填写返回断言这个接口的断言是要求 接口返回正确的错误码也就是 error_code 必须是 0 最终生成下面的断言表达式支持添加多个断言的他们之间是且的关系。点击添加步骤按钮添加我们第一个单元测试的第一个步骤。 我们可以试着运行一下测试用例看一下效果选择环境-本地环境点击执行用例按钮。 从图中可以看到我们的执行结果是成功的也可以看到我们每个步骤、接口调用的入参、返回值断言两边的计算结果方便我们在遇到失败时进行排障。
再接再厉添加第二个接口拿刚刚成功的获取城市列表接口返回的 任意一个城市作为入参调用查询天气预报接口断言接口返回的城市就是我们入参提供的来自于城市列表接口返回的任意城市。有点绕诶看图 下面是高能区仔细看图 result.*random().city 是参数数据源的具体路径result 下面是一个数据我们选数组下面的任意的一个元素拿到这个元素后我们使用他的 city 字段作为入参。放心在输入“.”号时会自动触发语法提示输入这些不会太难你体验一下就知道了
点击确定入参已经填好了 下面添加返回断言我的断言名称是 接口的返回城市名称字段需要与入参的城市名一致 这个能看懂吧我们拿当前步骤执行结果中的 result.city 路径的数据作为断言的左侧。 这个是拿我们当前步骤 body 入参的 city 路径的实际数值作为断言比较的对象结果如下 可以看到我们已经添加好了两个步骤下面在 本地环境 下执行我们的用例。 我们从城市列表接口的返回中随机取了一个叫 廊坊 的城市查询了天气预报返回的城市名称正是廊坊断言成功 好了我们的入门教程就到这里其他功能比如备份、还原数据库从 PostMan 导入接口到项目等功能自行探索。啰嗦一句最好定时备份一下数据库
教程
从源码编译
版本依赖 - nodejsv20.12.2 - electron26.2.4
安装 配置 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/下载依赖包
yarn生成可执行文件
yarn package