























在自动化测试中,上下文值的管理和传递是非常重要的功能。上下文值可以帮助我们在不同的测试步骤中共享数据,提高测试的灵活性和复用性。
在测试用例中,用DataProcessor通过 Action "data_process" 操作中set_variable将 Params 中的值存储为变量,并在后续步骤中引用。
模块配置data_process, 在yml中如下
data_process:
class_path: "src.modules.data.data_process.DataProcessor"
举例,将下列json设置为变量,存入变量var中
{
"tenantId": "TE17831554453625869",
"explicitIvrStatus": "false",
"explicitIvrMode": 1,
"encryptionType": 3,
"secretKey": "123456",
"cipherPrefix": "enc1_",
"initializationVector": "789123"
}
在测试用例表中,可以写如下步骤
| Description | Module | Action | Tag | Params | ParamsSetID |
| 设置变量 | data_process | data_process | regression, api,oah | oah_body |
测试数据表中的“oah_body” 变量
| ParamsSetID | ParamID | Name | Value | DataGroup | TestCaseID |
| oah_body | P1 | params | { "operation": "set_variable", "data": { "tenantId": "TE17831554453625869", "explicitIvrStatus": "false", "explicitIvrMode": 1, "encryptionType": 3, "secretKey": "123456", "cipherPrefix": "enc1_", "initializationVector": "789123" }, "saveAsVariable": "body" } |
1 | TC_OAH_API_Tenant_Base_Config_Edit |
在后续步骤中,可以通过 @body.string:value 引用存储的变量值。
和上述一致,区别是在operation中使用save_as_global
在一个测试步骤执行完成后, 如果有返回值,可以存储在变量中,供给下一步使用
举例:
| Description | Module | Action | Tag | Params | ParamsSetID |
| get sign | oah_api | generate_sign | oah_sign |
测试数据表中的“oah_sign” 变量
以上例子为oah_api 调用generate_sign方法,generate_sign有参数 body,同时存储返回值到sign变量中
| ParamsSetID | ParamID | Name | Value | DataGroup | TestCaseID | |
| oah_sign | P1 | params | { "body": "@body.string:value", "saveAsVariable": "sign" } |
1 | TC_OAH_API_Tenant_Base_Config_Edit | |
调用Action 方法时候,如果传递的参数有“saveAsVariable”将会存储结果的返回值到变量中。
变量路径格式如下:
@变量名.类型:路径或操作方式
例子:
@result.json: data.data.msg
其中:
@result:变量名,以 @ 开头。
上述例子, result为一个json类型的变量(比如存了API响应结果),希望取值data中的msg字段
注意:路径和操作方式,尽量避免使用$ @ 和%%
如果是String类型, 格式为
@变量.string:转换操作
转换操作:对字符串值进行的转换操作,如 upper、lower 等。
举例将一个string的返回值存入变量@value中,期望取以下类型的值为:
upper:将字符串转换为大写。
lower:将字符串转换为小写。
value:保持原样。
title:将字符串转换为标题格式(每个单词首字母大写)。
capitalize:将字符串转换为首字母大写。
strip:去除字符串首尾的空白字符。
substr:start,end:截取子字符串,从 start 到 end。
regex:pattern:使用正则表达式匹配字符串。
split:delimiter:index:使用分隔符分割字符串,并获取指定索引的子字符串。
replace:old:new:将字符串中的 old 替换为 new。
length:获取字符串的长度。
变量路径格式如下:
@变量名.json:路径
说明:
@变量名:变量名,以 @ 开头。
类型:变量类型, json。
路径:用于逐级访问嵌套的字典。
解析变量路径:使用正则表达式 re.match 来解析变量路径,提取变量名、类型和路径。
获取变量值:从上下文中获取变量值。
路径示例
单级路径
多级路径
多级路径,包含数组索引
多级路径,包含多个数组索引
多级路径,包含嵌套对象
多级路径,包含特殊字符
- 单个单元格: @var.table:row=X,col=Y - 整行: @var.table:row=X - 整列: @var.table:col=Y - 行范围: @var.table:row=[X-Y] - 列范围: @var.table:col=[X-Y] - 多列: @var.table:col=[col1,col2,...]
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。