嗨,我是兰若,今天写完用例,在运行用例并且生成报告的时候,发现报告里面没有具体的操作步骤,这可不行,如果没有具体的操作步骤的话,用例运行失败了,要怎么知道问题是出现在哪一个步骤呢?并且最好把这个步骤能够体现在allure的报告里面,于是我开始检查我写的测试用例,结果发现代码如下,我所有的操作步骤都在test_func这个方法里面,
那么现在有两种方式可以解决我的问题:
第一种方法,把test_func方法所有的步骤,全部挪到当前这个测试case的py文件里面,类似下面的这种写法
import allure
class TestClass:
ky_ty = "//button[@id='ky_ty']"
quanbu = "//button[@id='quanbu']"
def perform_test_steps(self, locator):
with allure.step(“第一步:”):
self.click(self.ky_ty)
with allure.step("第二步:"):
self.click(locator)
with allure.step("第三步:"):
self.click(self.quanbu)
def click(self, locator):
# 实现点击操作的代码
def test_example(self):
with allure.step("执行测试步骤"):
self.perform_test_steps("//button[@id='gunball']")
可是这样会有两个弊端,第一,如果test_func封装的所有操作步骤可以共享,也就是说test_func方法是
一个公共的方法,不仅当前的测试用例可以使用,其他的测试用例也可以调用这个方法,那么如果我全部拆解,把步骤挪过来,这个方法就不复存在,其他的用例就没有办法调用这个方法了
第二个弊端,如果说走完这个用例的路径比较长,那么整个测试用例的代码篇幅将会很长,并且这个用例如此,其他的用例也会如此,如此一来,整个自动化用例框架就会出现很多重复的代码,造成代码冗余
那么有没有什么办法可以使那个方法不被拆解,但是呢,allure报告里面也可以把这个方法的操作步骤给记录进去,经常在网上查找资料,还真被我找到了解决方式
其实很简单,就在写了test_func这个方法的py文件,导入allure,然后调用他的api,就可以解决了
然后运行代码,查看报告,这个问题就完美解决了