进入流程测试用例详情页,点击添加测试步骤,在下拉菜单中选择 添加API请求 ,系统会自动进入API测试步骤编辑页面,接下来你可以编辑API的请求参数、返回结果、校验规则等内容。
设置 API 测试步骤
API测试步骤设置分为以下几个部分:
-
测试步骤基本信息 :包括测试步骤名称、API请求地址、绑定的API文档等;
-
API 请求参数:包括请求头部、请求体等内容;
-
提取的返回结果 :可以将测试结果进行提取,并传递给后续测试步骤使用。比如将登录的token传递给后续测试步骤进行登录校验。
-
校验规则 :包括请求头部校验规则、请求体校验。只有设置了测试步骤的校验规则之后,系统才会判断测试步骤是否执行成功。
-
其他设置 :包括请求超时限制、测试异常处理等。
设置 API 测试步骤基本信息
测试步骤名称
建议为每一步测试步骤起一个清晰的名称,测试步骤名称会显示在测试步骤列表中,方便你对测试用例进行管理。
API 请求地址
设置 API 测试的地址,建议只输入 API 地址的 Path 部分,Host 部分通过项目环境管理来设置。
比如:在测试环境中有一个 API 的请求地址是:abc.com/user/login
你可以在测试步骤的 API Path 中填写 /user/login,然后把 abc.com 写在项目环境中,这样能够方便你在多个测试环境中切换而不需要修改 API 测试步骤。
绑定 API 文档
你可以将 API 测试步骤绑定某一个 API 文档,当 API 文档发生变化时,你可以一键将 API 文档变化的内容同步到测试步骤中,减少维护测试用例的工作量。
点击绑定按钮,在弹窗中选择需要绑定的 API 文档,点击确定即可。
当API文档发生变化时,你可以在测试步骤的编辑页面点击同步按钮更新当前API测试步骤;
或者是测试用例详情页通过批量操作来更新多个API测试步骤。
常见问题:为什么不自动将API文档的变更同步到测试步骤中?
API自动化测试一般用于对较稳定的API进行测试,这些API一般是已经可用的。
但是API文档的变化一般比较快,当API文档发生变化时,此时新版本的API不一定已经是可用的,文档只是记录了新版本的API应该是什么样的而已。
如果将 API 文档的变化自动同步到自动化测试中,很可能会导致你的测试用例执行失败,并且你无法了解到底同步了什么内容。何况还有可能同时存在多个版本的API。
设置请求参数
填写测试用例请求参数和普通的 API 测试操作一样。
设置需要传递给后续测试步骤的数据
如果希望在测试步骤之间传递数据,比如将用户注册 API 返回的数据传递给用户登录 API,需要先定义好用户注册 API 的预期返回结果的格式,才能够将数据正确地传递给后续的用户登录 API。
在提取返回参数一栏中,你可以选择需要提取的返回头部或者返回结果。
比如现有 json 返回结果:{“user_info”:{“user_name”:”eolinker”,”user_password”:”123456”,”user_type”:”normal”}}希望提取返回结果中user_info对象里的user_type字段的值,并且传递给后续测试步骤使用,那么在提取返回结果一栏中选择返回数据类型为 json,json最外层为对象,在表格中填写需要提取的字段在返回结果中的位置即可:
在后续的测试步骤中,将鼠标放在参数输入框上方会出现 绑定参数 的按钮,点击 绑定参数 按钮,在弹窗中选择需要关联的测试步骤的数据即可:
设置校验规则
校验返回头部
返回头部支持以下校验选项:
校验方式 | 描述 |
存在性校验 | 判断是否存在该字段,如不存在则提示测试失败 |
值校验 | 判断返回内容与预设值是否相等,如不相等则提示测试失败 |
校验返回结果
API测试用例支持5种校验方式:
校验方式 | 描述 |
不校验 | 无论返回结果是什么,均认为测试通过 |
校验状态码 | 判断响应头部中的HTTP Status Code |
校验 JSON | 判断响应结果的JSON结构和参数值,可以判断对象、数组、字段等信息 |
校验 XML | 判断响应结果的XML结构和参数值,可以判断对象、数组、字段等信息 |
完全匹配 | 判断响应结果是否等于预期结果 |
正则匹配 | 通过正则表达式去匹配响应结果,如果匹配的结果集不为空,则认为测试通过 |
存在性校验
当我们需要判断返回的头部/返回结果中的某个字段是否存在时,可以设置存在性校验来进行判断。
存在性校验 | 说明 |
是(默认) | 判断是否存在该字段,如不存在则提示测试失败 |
否 | 不判断是否存在该字段 |
类型与类型校验
设置对参数的类型进行校验,返回结果的参数类型必须要等于预设的参数类型,否则提示测试失败。
内容校验
设置对字段值的判断条件,不同类型的字段可能会有不同的判断条件。
校验规则 | 符号 | 说明 |
不校验 | [] | 不校验返回内容,任何值均判断为正确 |
值-等于 | [value = ] | 返回结果的 值 必须要 等于 预期结果,否则提示测试失败 |
值-不等于 | [value != ] | 返回结果的 值 必须要 不等于 预期结果,否则提示测试失败 |
值-大于 | [value > ] | 返回结果的 值 必须要 大于 预期结果,否则提示测试失败 |
值-小于 | [value < ] | 返回结果的 值 必须要 小于 预期结果,否则提示测试失败 |
值-包含 | [include = ] | 返回结果的 值 必须要 包含 预期结果,否则提示测试失败。比如预期结果为“hello”,实际返回结果为“hello world”,则测试结果正确。 |
值-不等于 | [value != ] | 返回结果的 值 必须要 不等于 预期结果,否则提示测试失败 |
正则 | [Reg = ] | 返回结果的 值 必须要 不等于 预期结果,否则提示测试失败 |
长度-等于 | [length = ] | 返回结果的 长度 必须要 等于 预期结果,否则提示测试失败 |
长度-不等于 | [length != ] | 返回结果的 长度 必须要 不等于 预期结果,否则提示测试失败 |
长度-大于 | [length > ] | 返回结果的 长度 必须要 大于 预期结果,否则提示测试失败 |
长度-小于 | [length < ] | 返回结果的 长度 必须要 小于 预期结果,否则提示测试失败 |
循环校验
对于数组类型(Array[])的返回参数,API 自动化测试平台 提供了循环校验的选项,开启该选项之后,API 自动化测试平台 会对数组内的所有元素进行校验,否则仅校验数组内的第一个元素。
例如:
有如下JSON数组,当a字段(红色部分)是一个数组类型的参数时,开启校验数组内元素后会对字段进行整体的循环校验。