是这样的,写了多个断言,检验新增记录的查看界面,个属性值是否正确,现在其中一个断言检查出错误,后面的代码就都不会执行了。
要求:每个断言都执行,断言不通过时,截图,测试用例不能pass,全部断言通过,不用截图,测试用例pass
放代码:
self.assertEqual(gfxxsz_page.ele_gfxx_check_buyerCode, "2018051101", msg="校验1未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_buyerName, "2018051101自动化测试客户11", msg="校验2未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_buyerShortName, "自动化测试客户1", msg="校验3未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_taxNum, "123456789012345", msg="校验4未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_address, "合肥市高新区", msg="校验5未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_bank, "农业银行783247982347", msg="校验6未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_phone, "18226926810", msg="校验7未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_email, "1838256559@qq.com", msg="校验8未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_notes, "测试备注信息", msg="校验9未通过")
self.assertEqual(gfxxsz_page.ele_gfxx_check_states, "无效1", msg="校验12未通过")
# 断言通不通过都截图,执行每个断言,其中一个不通过,剩下的也能继续执行,且用例能pass
def _assertFailedScreen(f):
def wrapper(self,*args,**kwargs):
try:
f(*args,**kwargs)
except Exception as e:
nowTime = time.strftime("%Y%m%d%H%M%S")
print(kwargs)
file = kwargs['msg'] + nowTime + '.jpg'
file_path = settings.ASSERT_SCREENSHOT_PATH
# 判断文件夹是否存在
if not os.path.exists(file_path):
os.mkdir(file_path)
file = os.path.join(file_path, file)
self.driver.get_screenshot_as_file(file)
return wrapper
## 断言不通过时截图,通过时不截图,但是其中一个断言不通过,后面的断言就无法继续执行了
def _assertFailedScreen(function):
def wrapper(self,*args,**kwargs):
try:
result = function(self,*args, **kwargs)
except Exception as msg:
nowTime = time.strftime("%Y%m%d%H%M%S")
print(kwargs)
file = kwargs['msg'] + nowTime + '.jpg'
file_path = settings.ASSERT_SCREENSHOT_PATH
# 判断文件夹是否存在
if not os.path.exists(file_path):
os.mkdir(file_path)
file = os.path.join(file_path, file)
self.driver.get_screenshot_as_file(file)
# 加上下面这句,断言不通过时,测试用例也不能通过
raise msg
else:
print("ok")
return wrapper
class MyTest(unittest.TestCase):
# 重写断言方法
@_assertFailedScreen
def assertEqual(self, first, second, msg=None):
super().assertEqual(first, second, msg=msg)
求助啊!!!