解决用try except 捕获assert函数产生的AssertionError异常时,导致断言失败的用例在测试报告中通过的问题

时间:2021-02-07 15:55:30

  在使用Python3做自动化测试过程中可能会遇到,assert函数不加try  except,就可以正常在报告里体现用例不通过,加上变成通过。

这是因为在使用try except 时,捕获了assert函数产生的AssertionError异常,导致异常没有上抛,这时只需要在后面加上 raise 就可以再次把它抛出。

        try:# 找到输入框并输入测试数据
self.driver.find_element_by_id("kw").send_keys(testdata)
# 找到搜索按钮,并单击
self.driver.find_element_by_id("su").click()
time.sleep(3)
# 断言期望结果中是否出现页面源代码中
self.assertIn(expectdata,self.driver.page_source)
time.sleep(3)
except AssertionError as e:
logger.info(u"搜索\"%s\",期望\"%s\"失败" % (testdata, expectdata))
raise
else:
logger.info(u"搜索\"%s\",期望\"%s\"通过"%(testdata,expectdata))