前言
相信大家对于pytest 框架官方介绍的那几种跳过用例执行的方法都熟悉并且能够运用在自己的项目中了。但是设想有下面一种场景:使用pytest 框架编写了一个接口的自动化测试,请求体使用了
@pytest.mark.parametrize进行参数化,但突然有一天这个参数化的文件有几条用例需要暂停执行,即在执行这个接口自动化测试的时候需要跳过这几条用例执行,此时该怎么跳过呢?
笔者在官方介绍的几种skip方法里好像都没有找到适合咱们以上场景的,后来想到了一种方法并进行了尝试,结果也行的通。下面就介绍一下,给大家一个参考的方式,当然如果大家还有其他好的方法,欢迎下方评论区留言交流~~
解决
笔者在参数化文件(Excel表格)加了一列表头,status,用来标记用例的状态。如果该条用例的status填的是“禁用”关键字,那么我就跳过该条用例,这样就完美解决上面的问题啦!相应的在自动化脚本里这样修改:如果该条用例的状态不为“禁用”时,就正常执行啦~
data = read_data(base_path + "/testcases/APP/data/app_pay_order.xlsx", ["data"])
@pytest.mark.parametrize("case_name,file_path,params,except_status,except_data,status", data)
def test_APP_pay_order(case_name, file_path, params, except_status, except_data, status):
if status == "禁用":
pytest.skip(reason="银商参数用例跳过执行")
else:
test_url = base.prod_url
params1 = json.loads(params)
pass