在实际的自动化测试之中,当testcase1执行成功是其他测试用例执行的前提时,需要获取testcase1的测试执行结果,根据该测试用例判断case2、case3等是否需要执行。比如登录功能,所有的测试都是在登录成功之后进行的,所有登录成功是其他所有用例执行的前提。之前经过各种查找,也尝试了pytest.mark.skipif方法,但是pytest.mark.skipif里面的condition不知道怎么获取,看到有些文章说是用hook方法可以实现,但是本人知识水平尚且不够,没有看懂。。。。。。按照别人的操作,在我的脚本上也运行不成功,所以,自己用了另一种方法来代替。本文中使用到的是pytest.skip方法,截图如下。
1、在conftest.py中定义一个类
2、在测试用例中引用该类,并且在test_1中使用setattr方法设置skip 的值,test_2和test_3需要根据test_1的执行结果决定是否跳过,所以在test_2和test_3使用getattr方法获取skip的值。
3、运行结果如下
PS:程序里的setattr(Failed, "skip", True)和f = getattr(Failed, "skip")换成Failed.skip = True 和f = Failed.skip也是可以的。切记Failed不要写成Failed()