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 功能
- 接口设计:
Apifox
接口文档遵循OpenApi 3.0 (原 Swagger)
、JSON Schema
规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。并且支持在线分享接口文档。 - 数据模型:可复用的数据结构,定义接口返回数据结构及请求参数数据结构(仅
JSON
和XML
模式)时可直接引用。支持模型直接嵌套引用,直接JSON/XML
智能导入,支持oneOf
、allOf
等高级组合模式。 - 接口调试:
Postman
有的功能,比如环境变量、前置/后置脚本、Cookie/Session
全局共享 等功能,Apifox
都有,并且比Postman
更高效好用。接口运行完之后点击保存为用例按钮,即可生成接口用例,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容Postman
语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。 - 接口用例:通常一个接口会有多种情况用例,比如参数正确用例、参数错误用例、数据为空用例、不同数据状态用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。
- 接口数据
Mock
:内置Mock.js
规则引擎,非常方便mock
出各种数据,并且可以在定义数据结构的同时写好mock
规则。支持添加“期望”,根据请求参数返回不同mock
数据。最重要的是Apifox
零配置 即可Mock
出非常人性化的数据,具体在本文后面介绍。 - 数据库操作:支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。
- 接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是:
JMeter
有的功能基本都会有,并且要更好用。 - 快捷请求:类似
Postman
的接口调试方式,主要用途为临时调试一些无需文档化的接口,无需提前定义接口即可快速调试。 - 代码生成:根据接口及数据数据模型定义,系统自动生成接口请求代码、前端业务代码及后端业务代码。
- 团队协作:
Apifox
天生就是为团队协作而生的,接口云端实时同步更新,成熟的团队/项目/成员权限管理,满足各类企业的需求。
二、Apifox 做的不仅仅是数据打通
如果你认为 Apifox 只做了数据打通,来提升研发团队的效率,那就错了。Apifox 还做了非常多的创新,来提升开发人员的效率。
支持导出 OpenApi (Swagger)
、Markdown
、Html
等数据格式,因为可以导出OpenApi
格式数据,所以你可以利用 OpenApi (Swagger)
丰富的生态工具完成各种接口相关的事情。
支持导入 OpenApi(Swagger)
、Postman
、apiDoc
、HAR
、RAML
、RAP2
、YApi
、Eolinker
、NEI
、DOClever
、ApiPost
、Apizza
、ShowDoc
、API Blueprint
、I/O Docs
、WADL
、Google Discovery
等数据格式,方便旧项目迁移。
支持定时自动导入OpenApi (Swagger)
、apiDoc
、Apifox
格式数据。
下面详细介绍一下Apifox
的数据导入。
三、手动导入
打开 项目设置 面板,点击 手动导入 ,可选择文件导入或 URL 导入。
以导入 Apifox
格式为例,导入可选内容包括:接口、数据模型、环境、测试用例、测试套件。
- 导入
OpenAPI/Swagger
格式只包含 接口、数据模型、环境; - 导入
Postman
格式只包含接口;
四、手动导入-高级设置
1、接口覆盖模式
- 同
URL
覆盖:当两个文件URL
、method
相同时,新文件会覆盖旧文件 - 同
URL
且同分组才覆盖:当两个文件的URL
、method
相同时,并且在同一个分组下时,新文件会覆盖旧文件 - 同
URL
不导入:当两个文件URL
、method
相同时,新文件不会导入 - 同
URL
时保留两者:当两个文件URL
、method
相同时,新文件会导入,旧文件不会被删除
2、文件(markdown 文档、数据模型、测试用例、接口用例)覆盖模式
- 同名覆盖:当两个文件名称相同时,新文件会覆盖旧文件
- 同名且同分组才覆盖:当两个文件的名称相同时,并且在同一个分组下时,新文件会覆盖旧文件
- 同名不导入:当两个文件名称相同时,新文件不会导入
- 同名时保留两者:当两个文件名称相同时,新文件会导入,旧文件不会被删除
3、导入到分组
支持将文件导入到具体的分组中。
4、导入接口用例
开启开关后,已选择接口下的接口用例默认全选,也可以在导入预览中选择对应接口用例。
- 当导入非
Apifox
格式文件,且接口文档覆盖时,名称相同的 接口用例 不会导入,不同名称的 接口用例 会新增。 - 当导入
Apifox
格式文件,且接口文档覆盖时,名称相同的 接口用例 会覆盖,不同名称的 接口用例 会新增。
五、自动导入
打开项目设置面板,点击自动导入,可设置多个数据源,定时同步到具体分组中。
只有角色为管理员,且打开客户端的时候,才会按照设置的导入频率 自动导入,其他角色不会触发自动导入 。
六、导入不同的数据源
1、导入 OpenAPI (Swagger) 数据
支持导入 OpenAPI 3、Swagger1、2、3数据格式的json
或yaml
文件。
2、导入 Postman 数据
支持 Postman Collection v2.1
格式。
数据导出方法:找到 Postman
左侧列表 Collections
,鼠标移到需要导出的集合,点击···,选择Export
然后选择Collection v2.1 (recommended)
即可导出,如下图所示:
3、导入 ShowDoc 格式数据
数据导出方法:点击 ShowDoc
文档右侧的展开按钮,找到导出按钮,点击后选择 markdown
压缩包 导出。
将从 ShowDoc
导出的 Markdown
压缩包 解压,会看到一个文件名为prefix_info.json
的 json
文件。
导入 Apifox
的时候,选择ShowDoc
格式,然后导入前面解压得到的prefix_info.json
文件即可。
七、Apifox 下载地址
介绍了Apifox
这么多实用的功能,用上了才是真福利!
软件完全免费,堪称国产良心,有兴趣有需求的小伙伴,可以去官网:www.apifox.cn了解详情
以上是关于Apifox写接口自动化测试用例总结-1的主要内容,如果未能解决你的问题,请参考以下文章
效率神器Apifox_API 文档API 调试API MockAPI 自动化测试工具推荐