refactor(files): 优化项目

- 重构files
- 新增yaml_processor(优化读取文件逻辑)
- 修复bug
This commit is contained in:
2025-03-05 18:11:28 +08:00
parent 698a95ac83
commit b8903798b8
11 changed files with 370 additions and 45 deletions

68
utils/data_driver.py Normal file
View File

@@ -0,0 +1,68 @@
#!/usr/bin/env python
# coding=utf-8
"""
@author: CNWei
@Software: PyCharm
@contact: t6i888@163.com
@file: data_driver
@date: 2025/3/3 10:56
@desc:
"""
from commons.models import CaseInfo
from commons.templates import Template
class DataDriver:
@staticmethod
def generate_cases(case_info) -> list:
if not case_info.get("parametrize"):
return [case_info]
cases = []
args_names = case_info.get("parametrize")[0]
for args_values in case_info.get("parametrize")[1:]:
print(args_values)
context = dict(zip(args_names, args_values))
print(context)
rendered = Template(CaseInfo(**case_info).to_yaml()).render(context)
cases.append({args_names[0]:CaseInfo(**case_info).by_yaml(rendered)})
return cases
if __name__ == '__main__':
mock_case_info = {
"case_info0": {
"feature": "页面状态",
"story": "状态",
"title": "查询状态信息",
"request": "",
"extract": "",
"validate": "",
"parametrize": [[ "title","username","password","msg" ] ,[ "测试1","user1","pass1","200" ] ,[ "测试2","user2","pass2","300" ]]
},
"case_info1": {
"feature": "页面状态",
"story": "状态",
"title": "查询状态信息",
"request": "",
"extract": "",
"validate": "",
"parametrize": [1,2,3]
},
"case_info2": {
"feature": "页面状态",
"story": "状态",
"title": "查询状态信息",
"request": "",
"extract": "",
"validate": "",
"parametrize": [1,2,3]
}
}
dd = DataDriver()
cases = dd.generate_cases(mock_case_info.get("case_info0"))
print(cases)