本文中使用的HTMLTestRunner的模板为:HTMLTestRunnerCN
。
在模板上增加了截图功能,样例如下:
这里我将测试通过的以截图形式展示,测试失败则显示相应的错误异常。
具体相应的代码模块如下:
使用的POM设计模式,封装代码,测试需要截屏时直接调用即可
file_path:根据自己的需求填写
def get_windows_img(self):
self.logger = logging.getLogger(__name__)
file_path = 'D:/python/pom_adv/report/screenshots/'
rq = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
screen_name = file_path + rq + '.png'
print(screen_name)
try:
self.driver.get_screenshot_as_file(screen_name)
self.logger.info("Had take screenshot and save to folder : /screenshots")
except NameError as e:
self.logger.error("Failed to take screenshot! %s" % e)
self.get_windows_img()
- 修改HTMLTestRunner
def _generate_report_test(self, rows, cid, tid, n, t, o, e):
...
# 插入图片
po = str(uo).find('screenshots')
if (uo and po != -1):
hidde_status = ''
image_url = 'file:///'+uo
else:
hidde_status = '''hidden="hidden"'''
image_url = ''
script = self.REPORT_TEST_OUTPUT_TMPL % dict(
id = tid[2:],
output = saxutils.escape(ue),
hidde=hidde_status,
image=image_url,
)
...
REPORT_TEST_OUTPUT_TMPL = r"""
%(id)s: %(output)s
<img %(hidde)s src="%(image)s" alt="picture_shot" height="200" width="400"></img>
<a %(hidde)s href="%(image)s">screen_shot</a>
"""
源码地址:smarthaut