APIfox编排自动化测试场景(一)

测试场景用于将多个接口请求与实际可能发生的一些特殊情况(如条件判断、循环)有序的组合在一起,来模拟一个真实业务流程,组成自动化测试单元。

新建目录 / 测试场景​

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

APIfox编排自动化测试场景(一)_第1张图片

若希望调整测试场景的所在目录,可以在创建测试场景时点击“目录”中的“新建目录”按钮或选择已有目录并进行调整。

APIfox编排自动化测试场景(一)_第2张图片

在测试场景中添加测试步骤​

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

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

APIfox编排自动化测试场景(一)_第3张图片

你可以选择「从接口导入」和「从接口用例导入」。

从接口导入​

你可以从当前项目导入接口作为测试场景中的步骤。导入接口时存在两种模式:分别是”手动同步“”自动同步“模式,详细说明请参考《从接口文档/用例同步数据》。

  • 手动同步

    在该模式下,当项目内的接口文档有数据变化时,并不会影响测试步骤内的接口。测试人员点击“手动同步”按钮后,测试步骤内的接口数据才会与接口文档数据同步。当测试步骤内的接口数据有变化时,即使点击了“手动同步”按钮,测试步骤内的数据也并不会同步至接口文档,反而会再次抓取接口文档内的数据并与之同步。

  • 自动同步

    在该模式下,当项目内的接口文档有数据变化时,测试步骤内的接口也会同步更新。

APIfox编排自动化测试场景(一)_第4张图片

如果你需要在一个测试场景中测试其它项目的接口,可以参考《从其它项目导入接口/用例至测试步骤》。

从接口用例导入​

你可以选择从当前项目或其它项目导入接口用例。导入接口用例时存在两种模式:分别是”复制“”引用“模式。

  • 复制

    将接口用例以“复制”方式导入,接口用例里的参数也会一同复制至测试步骤中,并且和原项目内的接口用例数据相互独立,各自改动后互不影响,可选择手动同步。

  • 引用

    将接口用例以“引用”方式导入,那么会直接使用原项目内的接口用例进行请求。

APIfox编排自动化测试场景(一)_第5张图片

添加自定义请求​

在一个业务流程中,可能存在需要调项目之外的接口的情况,例如需要调用第三方的支付接口。你可以在测试步骤中添加自定义请求,自定义请求可以是任何 HTTP 请求,包括常见的 GETPOSTPUTDELETE 等请求。

APIfox编排自动化测试场景(一)_第6张图片

流程控制条件​

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

APIfox编排自动化测试场景(一)_第7张图片

从其它测试场景导入​

你可以将当前项目内的其它测试场景中的测试步骤或流程控制条件复制导入到当前测试场景中。

APIfox编排自动化测试场景(一)_第8张图片

引用其它测试场景​

你可以在测试场景中引用其它测试场景,将其作为一个测试步骤。以下是该功能的使用场景:

  1. 如果你的业务流程中有一些公共、可复用的步骤,你可以将这些公共的可复用步骤组成一个小的测试场景,然后在其它大的测试场景中直接引用;
  2. 如果你需要做全产品的主流程回归,那么可以在一个测试场景中引用各个子测试场景进行组装,即可一键测试全部主流程,完成回归工作。

警告

为了防止无限循环和出现不能正常停止运行测试场景的情况,引用其它测试场景功能不可引用原测试场景本身。

APIfox编排自动化测试场景(一)_第9张图片

 

 

测试步骤间传递数据

现假设在一个自动化测试计划中,需提取 A 接口返回数据中的 petid 值并作为 B 接口的请求参数。下文将通过两个方法,分别演示如何完成接口间的参数传递和连接过程。

  1. 页面可视化操作
  2. 根据语法规则操作

页面可视化操作​

查看待提取参数​

在 B 接口 中定义参数值时点击“魔法棒” icon,选择“读取前置步骤的运行结果”选项。

APIfox编排自动化测试场景(一)_第10张图片

选择从 A 接口 的响应数据 Body 中提取信息,指定“提取部分”数据。可以在 A 接口的请求响应中看到目标 petid 参数值位于 data 列中。

APIfox编排自动化测试场景(一)_第11张图片

填写参数名 / 路径​

在 B 接口 的 JSONPath 表达式中填写 data.petid 后点击“插入”。你可以查看 JSONPath 语法了解更多复杂的数据提取方法。

APIfox编排自动化测试场景(一)_第12张图片

为了确保能够正确提取到对应的参数,你可以点击“跳转” icon 预览前置步骤中的预期返回以及是否提取到了正确的数据。

APIfox编排自动化测试场景(一)_第13张图片

验证参数传递​

点击“运行”测试场景。

APIfox编排自动化测试场景(一)_第14张图片

你可以在测试报告中查看参数的传递情况。可以看到 A 接口 输出的 petid 参数值为 24,而 B 接口 的实际请求值同样为 24,参数传递成功。

APIfox编排自动化测试场景(一)_第15张图片

提示

实际运行测试场景后,A 接口才能生成数据,B 接口才能真正地得到返回后的数据。在单独调试测试步骤的过程中后置步骤中的接口无法取得前置步骤所生成的返回值。

根据语法规则操作​

你也可以在遵循语法规则的前提下,直接填写指令来引用前置步骤的返回数据。

例如现在需要提取 A 接口返回数据中的 petid 值:

APIfox编排自动化测试场景(一)_第16张图片

那么可以在 B 接口中的参数值中填写 {{$.10.response.body.data.petid}} 指令。关于该指令的对照可参考下图:

信息

数字 10 指的是测试步骤 ID。

response.body 指的是从响应 Body 中获取数据。

data.petid 指的是从返回 JSON 文件中提取 data 列中的 petid。

如果指令无误,填写后将会出现“前置步骤”的预览情况。

APIfox编排自动化测试场景(一)_第17张图片

语法规则表​

分类 功能点 语法示例

请求

URL

{{$.<步骤 id>.request.url}}

path 参数

{{$.<步骤 id>.request.pathParam.<字段名>}}

query

{{$.<步骤 id>.request.query.<字段名>}}

header

{{$.<步骤 id>.request.header.<字段名>}}

body(form)

{{$.<步骤 id>.request.body.<字段名>}}

body(json)

{{$.<步骤 id>.request.body.<字段路径>}}

响应

body

{{$.<步骤 id>.response.body.<字段路径>}}

header

{{$.<步骤 id>.response.header.< 字段名>}}

cookie

{{$.<步骤 id>.response.cookie.< 字段名>}}

循环

element(ForEach 循环中的数组内元素)

{{$.<循环步骤 id>.element.<字段路径>}}

index

{{$.<循环步骤 id>.index}}

 

 APIfox编排自动化测试场景(一)_第18张图片

你可能感兴趣的:(apifox自动化)