Apifox写接口自动化测试用例总结-1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apifox写接口自动化测试用例总结-1相关的知识,希望对你有一定的参考价值。

参考技术A

最近决定用Apifox写接口自动化测试用例,于是研究了这个工具的具体实践,下面把最近实践过程中遇到的问题和解决方案进行总结,方便回看。

Apifox它是集:接口文档管理、接口调试、Mock、接口自动化测试于一体的全流程集成工具,覆盖从开发->测试->管理等环节,等同于 Postman + Swagger + Mock + JMeter几款工具功能累加。

下面从以下几个方面来进行总结:
1json path语法及使用
2.参数化使用
3.结果验证

JsonPath语法要点:
$ 表示文档的根元素
@ 表示文档的当前元素
.node_name 或 [\'node_name\'] 匹配下级节点
[index] 检索数组中的元素
[start:end:step] 支持数组切片语法
** 作为通配符,匹配所有成员**
.. 子递归通配符,匹配成员的所有子元素
(<expr>) 使用表达式
?(<boolean expr>)进行数据筛选

直接从返回结果中获取第一个元素

从返回结果中获取iata=3Q的子节点中的id号

1.用两个的形式来传参,如flightId
2.如果提取变量是列表形式,可以取其中某一个,如flightId[0]
3.可以选择右侧的“魔法棒”动态值来选择变量/常量或动态变量

超越Postman,新一代国产调试工具Apifox,用起来够优雅


目录

一、Apifox 介绍

Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确!

1、Apifox 定位

Apifox = Postman + Swagger + Mock + JMeter

Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。

通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!

2、Apifox 功能

  1. 接口设计:Apifox接口文档遵循 OpenApi 3.0 (原 Swagger)JSON Schema规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。并且支持在线分享接口文档。
  2. 数据模型:可复用的数据结构,定义接口返回数据结构及请求参数数据结构(仅 JSONXML模式)时可直接引用。支持模型直接嵌套引用,直接 JSON/XML智能导入,支持 oneOfallOf 等高级组合模式。
  3. 接口调试:Postman有的功能,比如环境变量、前置/后置脚本、Cookie/Session全局共享 等功能,Apifox都有,并且比 Postman更高效好用。接口运行完之后点击保存为用例按钮,即可生成接口用例,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容 Postman语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。
  4. 接口用例:通常一个接口会有多种情况用例,比如参数正确用例、参数错误用例、数据为空用例、不同数据状态用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。
  5. 接口数据 Mock:内置 Mock.js规则引擎,非常方便 mock出各种数据,并且可以在定义数据结构的同时写好 mock规则。支持添加“期望”,根据请求参数返回不同 mock数据。最重要的是 Apifox零配置 即可 Mock出非常人性化的数据,具体在本文后面介绍。
  6. 数据库操作:支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。
  7. 接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是: JMeter有的功能基本都会有,并且要更好用。
  8. 快捷请求:类似 Postman的接口调试方式,主要用途为临时调试一些无需文档化的接口,无需提前定义接口即可快速调试。
  9. 代码生成:根据接口及数据数据模型定义,系统自动生成接口请求代码、前端业务代码及后端业务代码。
  10. 团队协作:Apifox天生就是为团队协作而生的,接口云端实时同步更新,成熟的团队/项目/成员权限管理,满足各类企业的需求。

二、Apifox 做的不仅仅是数据打通

如果你认为 Apifox 只做了数据打通,来提升研发团队的效率,那就错了。Apifox 还做了非常多的创新,来提升开发人员的效率。

支持导出 OpenApi (Swagger)MarkdownHtml等数据格式,因为可以导出OpenApi格式数据,所以你可以利用 OpenApi (Swagger) 丰富的生态工具完成各种接口相关的事情。
支持导入 OpenApi(Swagger)PostmanapiDocHARRAMLRAP2YApiEolinkerNEIDOCleverApiPost ApizzaShowDocAPI BlueprintI/O DocsWADLGoogle Discovery等数据格式,方便旧项目迁移。
支持定时自动导入OpenApi (Swagger)apiDocApifox格式数据。

下面详细介绍一下Apifox的数据导入。

三、手动导入

打开 项目设置 面板,点击 手动导入 ,可选择文件导入或 URL 导入。


以导入 Apifox格式为例,导入可选内容包括:接口、数据模型、环境、测试用例、测试套件。

  1. 导入 OpenAPI/Swagger格式只包含 接口、数据模型、环境;
  2. 导入 Postman格式只包含接口;

四、手动导入-高级设置

1、接口覆盖模式

  1. URL覆盖:当两个文件 URLmethod相同时,新文件会覆盖旧文件
  2. URL且同分组才覆盖:当两个文件的 URLmethod相同时,并且在同一个分组下时,新文件会覆盖旧文件
  3. URL不导入:当两个文件 URLmethod相同时,新文件不会导入
  4. URL时保留两者:当两个文件 URLmethod相同时,新文件会导入,旧文件不会被删除

2、文件(markdown 文档、数据模型、测试用例、接口用例)覆盖模式

  1. 同名覆盖:当两个文件名称相同时,新文件会覆盖旧文件
  2. 同名且同分组才覆盖:当两个文件的名称相同时,并且在同一个分组下时,新文件会覆盖旧文件
  3. 同名不导入:当两个文件名称相同时,新文件不会导入
  4. 同名时保留两者:当两个文件名称相同时,新文件会导入,旧文件不会被删除

3、导入到分组

支持将文件导入到具体的分组中。

4、导入接口用例

开启开关后,已选择接口下的接口用例默认全选,也可以在导入预览中选择对应接口用例。

  1. 当导入非 Apifox格式文件,且接口文档覆盖时,名称相同的 接口用例 不会导入,不同名称的 接口用例 会新增。
  2. 当导入 Apifox格式文件,且接口文档覆盖时,名称相同的 接口用例 会覆盖,不同名称的 接口用例 会新增。

五、自动导入

打开项目设置面板,点击自动导入,可设置多个数据源,定时同步到具体分组中。

只有角色为管理员,且打开客户端的时候,才会按照设置的导入频率 自动导入,其他角色不会触发自动导入 。


六、导入不同的数据源

1、导入 OpenAPI (Swagger) 数据

支持导入 OpenAPI 3、Swagger1、2、3数据格式的jsonyaml文件。

2、导入 Postman 数据

支持 Postman Collection v2.1 格式。

数据导出方法:找到 Postman左侧列表 Collections,鼠标移到需要导出的集合,点击···,选择Export然后选择Collection v2.1 (recommended)即可导出,如下图所示:

3、导入 ShowDoc 格式数据

数据导出方法:点击 ShowDoc文档右侧的展开按钮,找到导出按钮,点击后选择 markdown压缩包 导出。

将从 ShowDoc导出的 Markdown压缩包 解压,会看到一个文件名为prefix_info.jsonjson文件。

导入 Apifox的时候,选择ShowDoc格式,然后导入前面解压得到的prefix_info.json文件即可。

七、Apifox 下载地址

介绍了Apifox这么多实用的功能,用上了才是真福利!
软件完全免费,堪称国产良心,有兴趣有需求的小伙伴,可以去官网:www.apifox.cn了解详情

以上是关于Apifox写接口自动化测试用例总结-1的主要内容,如果未能解决你的问题,请参考以下文章

效率神器Apifox_API 文档API 调试API MockAPI 自动化测试工具推荐

如何使用 Apifox 来管理测试你的接口

超越Postman,新一代国产调试工具Apifox,用起来够优雅

Apifox-接口调用自动化测试工具

Apifox-比postman更优秀的接口自动化测试平台

接口自动化测试测试用例设计