自动化工具 [分享] HtmlTestRunner 汉化版,支持截图,兼容 py2&py3

守望@天空~ · 2017年09月06日 · 最后由 守望@天空~ 回复于 2018年05月03日 · 4497 次阅读

HTMLTestRunner 汉化版

在原作者的基础上对整个测试报告进行了汉化处理
此版本增加了如下功能

  • 测试报告完全汉化,包括错误日志的中文处理
  • 针对 selenium UI 测试增加失败自动截图功能
  • 增加失败自动重试功能
  • 增加饼图统计
  • 同时兼容 python2.x 和 3.x

报告汉化

selenium 截图

截图功能根据测试结果,当结果为 fail 或 error 时自动截图
截图方法在_TestResult 的测试结果收集中,可以根据自己使用的框架不同自行调整,selenium 使用的是 get_screenshot_as_base64 获取页面截图的 base64 编码,避免了图片文件存储的尴尬


因此要提取用例中的 driver 变量获取 webdriver 对象,所以要实现截图功能必须定义在用例中定义 webdriver 为 driver

def setUp(self):
    self.driver = webdriver.Chrome()

效果

用例失败重试

在实例化 HTMLTestRunner 对象时追加参数 retry,指定失败重试次数,重试的测试也会收集到测试报告中。
HTMLTestRunner(title="带截图的测试报告",description="小试牛刀",stream=open("test1.html","wb"),verbosity=2,retry=1)

Github 地址:https://github.com/GoverSky/HTMLTestRunner
如果有什么好的建议,欢迎交流

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 21 条回复 时间 点赞

换个名字

总的看了下还不错,最好能说明下用的什么截图函数,这样别的测试框架也能用起来

codeskyblue #2 回复

感谢建议,加上了~

不错,有空我也看一下

学习了,既然是改进版,饼图怎么实现的最好也说明下、这样别的测试报告也能用起来

终结者 #5 回复

关于饼图,因为表格本身就有现成的统计数据,所以需要做的就是用 js 写个生成饼图的方法,页面最后调用就 OK 了

😅
看来还是要多学习 js 啊~
我是用 echart 画的饼图···

请问,截出的图片应存放在哪里,html 可以读出显示,主要我用是其他测试框架截图后发现 html 显示异常

吴佳佳 #2 回复

图片转码 base64 存储在页面里咯

支持一下,正好需要,准备试试使用

哦 明白 谢谢楼主


楼主 你好 为什么我的 open 这个 html 后 还是原来的初始数据呢

JonnySen #12 回复

😅 描述不清,无法理解

.😭 我的报告没有生成

谢谢楼主,蛮好用。就是如 retry=2,在第一次重试成功后还回重跑一次,需要在 addsuccess 那个方法里重置下 status

dig下 #15 回复

嗯,忘记这块了😀 谢谢指出

守望@天空~ 关闭了讨论 09月27日 10:35
守望@天空~ 重新开启了讨论 10月27日 09:49

楼主,我将 retry=1,失败重试时报如下错,什么原因啊:
runner=HTMLTestRunner(title="后台 Web 自动化测试报告", description="", stream=fp, verbosity=2, retry=1, save_last_try=False)


Python 3.6-32 使用工具打开文件 test_screenshot_selenium.py 并执行报错,理解不深,无法解决


louzhu #21 回复

这个是初始化 driver 时候就失败了

这个代码不是已近兼容 3.X 了?怎么还存在初始化失败问题?其实就是不懂,driver 已近跑起来了,就是找不到 imgs 这个属性

17楼 已删除
louzhu #12 回复

setUpClass 这步异常了,就没法接着进行后面的测试了,不是兼容性的问题,有异常测试本身就没法继续了


针对这种异常的处理

结果变这样

守望@天空~ 关闭了讨论 05月03日 16:52
simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 20:49
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册