Apifox使用-自动化测试

发布时间 2023-07-30 00:26:04作者: 天才九少

 正文

  • 编排测试场景
  • 运行测试
  • 持续集成
  • 查看测试结果

编排测试场景

新建测试场景

测试场景用于将多个接口有序地组合在一起运行,用于测试一个完整业务流程。

打开 Apifox 后点击左侧菜单栏中的“自动化测试”,点击左上角 + 号,选择所归属的目录与设置优先级后完成创建

添加测试步骤

创建测试场景后可以在其中添加测试步骤。测试步骤中支持添加多条接口,并且还可以在步骤中设置测试条件等附加操作。

进入测试场景后,点击“添加步骤”并添加接口

添加测试流程控制条件

开发者可以在测试场景中新增流程控制条件(循环、判断、等待、分组)等。进一步满足了更复杂的测试场景/流程配置的使用,最终借助自动化测试功能解决复杂场景的测试工作。

分组

当测试流程中多个步骤存在相关联关系时,可以进行归类并放入到同一个分组中。通过对测试步骤的分组,让测试场景具备更好的可读性和操作性。

示例: 将查看详情宠物详情、修改宠物信息、再次查看详情等步骤归类成分组。

  • 点击底部的按钮「添加步骤」,并选择「分组」。
  • 将要归类的步骤,拖到分组步骤下或在分组中直接添加步骤。

 

循环

当测试步骤需要重复执行时,可以通过设置循环次数来解决。同时,循环的附加设置中,支持自定义设置「中断条件/遇到错误时」判断。

示例:宠物店店主在结束营业的晚上,登录宠物库存管理后台,将今日出售的 10 个宠物,分别进行详情查看并将它的在售状态变为已售出。

  • 点击底部的按钮「添加步骤」,并选择「循环」
  • 输入需要的循环次数 10 
  • 将该测试步骤拖入该条件下内框中(你也可在该条件下直接添加测试步骤)

 

判断

当测试流程中存在多条件判断时,可以通过添加判断条件( If )来区分流程执行的步骤。即当判断配置的条件满足时,该判断条件下的子步骤才会执行, 相反子步骤则会被跳过。

示例:宠物店店主根据昨日宠物出售情况,若判断为售出,将该宠物的出售状态设置为“已售出”。否则( else ),查询在售中列表。

  • 点击底部的按钮「添加步骤」,并选择「条件分支」。
  • 在 lf 条件后面的输入框填写请求接口得到的变量 saleStatus ,然后选择条件"等于",最后输入比较数值为 true。(当销售状态判断为 true 的时候,则更改宠物信息为「已售出」)
  • 将鼠标悬浮在该条件分支操作拦会出现「+ Else 」,点击并新增「出售中的宠物列表」步骤(否则,即查询在售中的宠物列表。)。
  • 将测试步骤拖入到相应的条件分支中。

 

等待

当测试流程中某个步骤需要执行后需要等待一段时间时,比如 A 步骤需要等待若干时间后再执行 B 步骤,可以通过新增等待条件来解决。

示例:模拟用户查看宠物详情,浏览 1000ms 后,将该宠物详情信息中的浏览状态进行更新。

  • 点击底部的按钮「添加步骤」,并选择「等待」。
  • 输入需要等待的时间 1000(单位毫秒)。

 

保存为场景实例

在实际的测试场景中会经常遇到这样的情况:

  • 两个测试场景使用相同的测试步骤与测试流程,但要求在不同的环境下运行测试;
  • 相同的测试场景要求在正式环境需引用正式数据,测试环境引用模拟数据;
  • VIP 用户和普通用户的测试场景与测试环境要求基本一致,但是针对 VIP 用户的测试步骤中需要使用独立的用户数据;

「保存为场景实例」功能支持快速将同一测试场景下不同的运行配置另存为独立的场景实例。

在测试场景中指定运行环境、引用测试数据和循环次数后,点击右下角的「保存为场景实例」按钮。

运行场景实例

你可以在测试场景-目录树中查看该场景已保存的场景实例。点击页面右侧的“运行”按钮,一键触发已保存的测试场景步骤和运行配置快速完成测试工作,不再需要在同一测试场景下反复调整运行配置。

导出配置文件

点击测试步骤页右上角的菜单按钮,选择需要导出的格式


 

运行测试

手动运行测试

设置测试步骤顺序

将鼠标移至任意一项接口,然后点击接口左侧出现的菜单按钮,拖拽调整测试步骤的顺序

设置运行配置

你可以额外调整以下设置:

  • 运行环境
  • 测试数据
  • 循环次数

高级设置

在高级设置中,你还可以调整:

  • 遇到错误时的策略
  • 接口间隔停顿时间
  • 保存请求 / 响应详情
  • 保存变量变化值
  • 使用全局 Cookie
  • 保存 Cokkie 到全局

性能测试

API 性能测试是指对针对接口模拟上万或百万的请求负荷下进行压力测试来检验其运行性能的过程。这种测试可以用来识别 API 的性能瓶颈或不足,并确保 API 在高负荷情况下能够稳定地运行和响应请求。

你可以通过以下三种方式开展接口性能测试

1.使用 Apifox 展开性能测试

线程数是同时并发运行的线程数,每个线程都会按顺序运行选中的所有步骤。在测试场景中设置线程数。将线程数调整为 > 1 后即可实现性能测试。

若需要进行高并发测试,建议以导出 JMeter 文件的方式进行测试

 

2. 使用 Apifox CLI 方式进行测试

Apifox CLI 是 Apifox 的命令行运行工具,主要用来做持续集成和压力测试

3. 导出 JMeter 测试

你可以将测试场景以 JMeter 格式导出,然后再导入至 JMeter 运行性能测试。

数据驱动测试

测试场景支持导入外部测试数据集。当测试场景运行时,系统会循环运行数据文件里所有的数据集,并且会将数据集里的数据赋值对应的变量。

  1. 每个数据集允许包含多个变量,接口运行时指定变量的地方会读取对应的值(变量优先级:临时变量 > 测试数据变量 > 环境变量 > 全局变量)。
  2. 可创建多个数据集,系统会遍历运行所有的数据集(每个数据集都会被运行一次)。
  3. 数据集云端同步,成员之间共享测试数据。
  4. 可根据不同环境设置不同的数据集。

一个测试场景内支持保存多套测试数据集,可在测试场景/场景实例的“测试数据”处,选择本次运行需要使用的测试数据。

编辑测试数据

一个测试场景下支持新增多套测试数据。打开测试场景详情页,切换至“测试数据” tab 页,你可以在此处查看或新建测试数据。

 你可以在测试数据中添加数据集、执行批量编辑操作、添加变量或自定义各个环境参数;支持导入本地 json 格式文件或 csv 文件中的数据

运行测试数据

运行测试数据前选择需要引用的测试数据集,然后再点击“运行”按钮。

使用测试数据

测试数据导入测试场景后,可以通过引用变量的方式调用测试数据


持续集成

略,详情参考官方文档

https://apifox.com/help/automated-testing/executing-test/ci/executing-test-case-by-cli


 

查看测试结果

测试运行完成后将输出一份测试报告,你可以在此处直观地看到哪些接口没有通过测试。

查看报告详情

点击“更多详情”可以查看该接口的运行结果,方便定位问题。

导出测试报告

测试报告支持以 HTML 格式进行导出。测试任务运行结束后,点击“导出报告”按钮即可。

 

本文档个人学习研究使用,详情请参考Apifox官方文档并上手操作