Python+Selenium 自动化测试报告显示异常截图

  • 作者:lwj
  • 分类:Selenium
  • 发表日期:2020-09-23 21:06:14
  • 阅读(519)
  • 评论(0)

由于HTMLTestRunner没有展示截图的功能,在基于UI的自动化测试报告中不能展示截图就显得整个报告展示不直观

模板代码

代码仓库viewHtmlReport

selenium截图方法

1. 截​​​​​​取当前浏览器窗口并保存为img. 格式建议png

driver.get_screenshot_as_file(filename="testCase\home.png")
driver.save_screenshot(filename="testCase\work.png")

2. 截​​​​​​取当前浏览器窗口并保存为二进制

driver.get_screenshot_as_png()

3. 截​​​​​​取当前浏览器窗口并保存为base64格式

driver.get_screenshot_as_base64()

截图报告


项目结构

viewHtmlReport
|___common
|___|___globalparam.py        定义全局路径
|___|___HTMLReport.py         html测试模块
|___|___log.py                日志模块
|___report
|___|___img                   截图保存路径
|___|___logs                  日志文件保存路径
|___|___report                html测试报告保存路径
|___testCase
|___|___test_01.py            测试用例
|___run.py                    执行方法

原理

展示时通过捕获unittest - Log或print中查找字符串"异常截图名称:",  找到就说明有截图,  然后截取图片地址(索引位置7到28的图片名称并拼接出相对的图片路径) 写到html模版标签src中

截图名称与print(或print)规则如下:

timeStrmap = time.strftime('%Y%m%d_%H_%M_%S')
img_name = os.path.join(img_path, "%s.png" % str(timeStrmap))
self.driver.get_screenshot_as_file(img_name)
Log().info(message="异常截图名称:%s" % os.path.split(img_name)[1])

注: 图片名称命名规则按上面代码拼接的位数

或配合HTMLTestRunner.py文件同步修改

# 插入图片
unum = str(uo).rfind('异常截图名称:')
if ((uo or ue) and unum !=-1):
    hidde_status = ''
    # 获取"异常截图名称:"所在位置
    unum=str(uo).rfind('异常截图名称:')
    # 从uo中获取的unum位置开始,获取索引位置7到28的图片名称并拼接出相对位置的图片路径
    image_url = '../img/'+str(uo)[unum+7:unum+28].replace(' ', '')
else:
     hidde_status = '''hidden="hidden"'''
     image_url = ''

 

觉得不错,支持一下!

提交评论

您尚未登录,登录之后方可评论~ 登录 or 注册

评论列表

暂无评论
返回顶部

建议反馈

1. 可在博文底部留言评论

2. 发邮件到i_suichuan@163.com