1. 模块介绍

DataValidator 是一个用于数据校验的模块,可以用于验证数据是否符合期望值。该模块通过配置文件 XXX.yml 中的模块配置项进行初始化。
  1. 初始化模块

在 XXX.yml 文件中,配置项如下:
value_validation:
  class_path: "src.modules.data.data_validation.DataValidator"
  1. 核心方法

Action 配置为 ”validate_data”,用于校验单个数据字段, 参数名params
validate_data 方法的参数是一个字典params,包含以下键:
  • field_name:需要校验的字段名称, 用于打印日志,可以自定义, 清晰易懂即可。
  • actual_value:实际值,可以是动态获取的值(如@response.json:data.code)。
  • expect_value:期望的值,也可以用动态生成的值,或者某种格式
  • operator:校验操作符,支持以下几种:
    • equal/equals/==: 验证两个值是否相等。
    • not_equal/not_equals/!=: 验证两个值是否不相等。
    • contains/in: 验证一个值是否包含另一个值。
    • not_contains/not_in: 验证一个值是否不包含另一个值。
    • startswith: 验证一个值是否以另一个值开头。
    • endswith: 验证一个值是否以另一个值结尾。
    • greater/greater_than/>: 验证一个值是否大于另一个值。
    • less/less_than/<: 验证一个值是否小于另一个值。
    • greater_equal/>=: 验证一个值是否大于或等于另一个值。
    • less_equal/<=: 验证一个值是否小于或等于另一个值。
    • matches/regex: 验证一个值是否匹配正则表达式。
    • length_equal: 验证一个值的长度是否等于指定长度。
    • length_greater: 验证一个值的长度是否大于指定长度。
    • length_less: 验证一个值的长度是否小于指定长度。
    • is_empty: 验证一个值是否为空。
    • is_not_empty: 验证一个值是否不为空。
    • is_null: 验证一个值是否为 None。
    • is_not_null: 验证一个值是否不为 None。
    • is_true: 验证一个值是否为 True。
    • is_false: 验证一个值是否为 False。
  1. Excel中的使用

在测试用例表中:
Module:使用的模块名称,这里是 value_validation, 在yml中已配置。
Action:模块中的具体操作, validate_data是值校验的核心方法。
Tag:可选的标签,用于分类或标识。
Description:描述当前操作,例如 validate 200 表示校验状态码为 2
Params: validate_data需要的参数。 也可以配置ParamsSetID 从测试数据表获取
 
Description Module Action Tag Params ParamsSetID
validate 200 value_validation validate_data   {
"field_name": "status_code",
"actual_value": "@response.json:data.code",
"operator": "equal",
"expect_value": "200"
}
 
validate msg value_validation validate_data   {
"field_name": "msg",
"actual_value": "@response.json:data.msg",
"operator": "equal",
"expect_value": "操作成功"
}
 
说明:validate_data的参数params 也可从测试数据表, 则需要配置ParamsSetID。
ParamsSetID ParamID Name Value DataGroup
code校验 P1 params {
"field_name": "status_code",
"actual_value": "@response.json:data.code",
"operator": "equal",
"expect_value": "200"
}
1
租户名校验 P1 params {
"field_name": "tenantName",
"actual_value": "@response.json:data.data.tenantName",
"operator": "equal",
"expect_value": "马上消费租户-勿动"
}
1
 
posted on 2026-03-09 10:51  小海海宁宁  阅读(22)  评论(0)    收藏  举报