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

守望@天空~ · September 06, 2017 · Last by 守望@天空~ replied at May 03, 2018 · 2590 hits

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 回复

感谢建议,加上了~

不错,有空我也看一下

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

终结者 回复

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

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

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

吴佳佳 回复

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

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

守望@天空~ 回复

哦 明白 谢谢楼主


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

JonnySen 回复

😅 描述不清,无法理解

守望@天空~ 回复

.😭 我的报告没有生成

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

dig下 回复

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

守望@天空~ 关闭了讨论 27 Sep 10:35
守望@天空~ 重新开启了讨论 27 Oct 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 回复

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

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

24Floor has been deleted
louzhu 回复

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

针对这种异常的处理

结果变这样

守望@天空~ 关闭了讨论 03 May 16:52
simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 13 Dec 20:49
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up