场景/原因
使用pytest做UI自动化,driver和case_data写在了conftest中,测用例直接调用
另外写了一个装饰器,在测试用例运行完成后/报错后截图
代码如下
测试用例代码如下
from common.step_method import StepMethod
from common.public import *
class TestCases():
@get_screen_in_case_end_or_error
def test_001(self,driver,case_data):
'''
根据传进来的参数,执行测试用例
:param driver: 浏览器驱动
:param case_data: 测试用例数据
:return:
'''
allure.dynamic.feature(case_data["feature"])
allure.dynamic.story(case_data["story"])
allure.dynamic.title(case_data["case_name"])
step_method=StepMethod(driver=driver)
for step in case_data["case_steps"]:
with allure.step(step["case_step"]):
if hasattr(step_method, step["method"]):
func=getattr(step_method, step["method"])
func(**step)
else:
raise Exception(f'传入的方法:{
step["method"]}不正确,请检查')
装饰器代码如下
def