惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - 小海海宁宁

从0到1:使用Schemathesis搭建API自动化测试框架实战 OpenAPI规范及自动化用例生成 playwright & selenium对Shadow DOM的处理 自动化平台质量体系建设(草稿) 【模板】邮件提测模板 研发测试质量规范(草稿) 自动化框架 - Q&A 自动化框架 - 核心模块使用指南 - Kafka 自动化框架 - 核心模块使用指南 - Kibana 自动化框架 - 核心模块使用指南 - Playwright 自动化框架 - 核心模块使用指南 - API 自动化框架 - 核心功能使用指南 - 动态值生成 自动化框架 - 核心功能使用指南 - 数据处理模块 自动化框架 - 核心功能使用指南 - 上下文值传递 自动化框架 - 核心功能使用指南 - 用例过滤Tag使用 自动化框架 - 核心功能使用指南 - Excel测试用例编写 自动化框架 - 核心功能使用指南 - 配置文件使用指南 自动化框架使用说明 - 快速开始 Kibana如何添加可视化看板
自动化框架 - 核心功能使用指南 - 数据校验模块
小海海宁宁 · 2026-03-09 · via 博客园 - 小海海宁宁
  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