selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)【转载】
优化html报告
为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化:
- 测试报告中文显示,优化一些断言失败正文乱码问题
- 新增错误和失败截图,展示到html报告里
- 优化点击截图放大不清晰问题
- 增加饼图统计
- 失败后重试功能
- 兼容python2.x 和3.x
报告效果
1.生成的测试报告效果如下图,默认展示报错和异常的用例,失败重试的用例结果也会统计进去。
2.点击显示截图,可以直接显示截取的图片,无需保存到本地
table表格
1.修改表格的td后面内容,可以自定义表格名称
2.drawCircle这个后面是生成饼图功能
<tr id='header_row'>
<td>测试组/测试用例</td>
<td>总数</td>
<td>通过</td>
<td>失败</td>
<td>错误</td>
<td>视图</td>
<td>错误截图</td>
</tr>
%(test_list)s
<tr id='total_row'>
<td>统计</td>
<td>%(count)s</td>
<td>%(Pass)s</td>
<td>%(fail)s</td>
<td>%(error)s</td>
<td> </td>
<td> </td>
</tr>
</table>
<script>
drawCircle(%(Pass)s, %(fail)s, %(error)s)
</script>
异常截图
1.这个是用例跑失败后,会自动截图的,图片以base64方式存储到html报告里面,无需保存到本地
driver.get_screenshot_as_base64()
def addError(self, test, err):
self.error_count += 1
self.status = 1
TestResult.addError(self, test, err)
_, _exc_str = self.errors[-1]
output = self.complete_output()
self.result.append((2, test, output, _exc_str))
try:
driver = getattr(test, "driver")
test.img = driver.get_screenshot_as_base64()
except AttributeError:
test.img = ""
if self.verbosity > 1:
sys.stderr.write('E ')
sys.stderr.write(str(test))
sys.stderr.write('\n')
else:
sys.stderr.write('E')
2.测试用例一定要定义driver参数,如:
driver = webdriver.Firefox()
失败重试
1.生成报告的参数里面加了一个参数retry=1,这个表示用例失败后,会重新跑一次。
# coding:utf-8
import HTMLTestRunner_jpg
import unittest
if __name__ == "__main__":
discover = unittest.defaultTestLoader.discover("case","test*.py")
print(discover)
run = HTMLTestRunner_jpg.HTMLTestRunner(title="可以装逼的测试报告",
description="测试结果",
stream=open("result.html","wb"),
verbosity=2,
retry=1)
run.run(discover)
2.verbosity=2这个参数是控制台显示测试结果风格,如下这种:
E test_01 (pject.test_jpg.Test1)
retesting... 1
E test_01 (pject.test_jpg.Test1)
F test_02 (pject.test_jpg.Test1)
retesting... 1
F test_02 (pject.test_jpg.Test1)
ok test_03 (pject.test_jpg.Test1)
ok test_01 (pject.test_xxx.Test1)
ok test_02 (pject.test_xxx.Test1)
Time Elapsed: 0:00:17.892222
执行用例
1.这是参考的测试用例,我没在用例里面生成测试报告,生成测试报告采用的是上面的批量执行,单独建个脚本执行
# coding:utf-8
from selenium import webdriver
import unittest
class Test1(unittest.TestCase):
u'''博客园测试'''
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Firefox()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_01(self):
u"""定位失败截图案例"""
self.driver.get("https://www.baidu.com")
self.driver.find_element_by_id('xxxxx').send_keys(u'百度一下')
self.driver.find_element_by_id('su').click()
self.assertTrue(True)
def test_02(self):
u'''失败用例'''
self.driver.get("http://www.cnblogs.com/yoyoketang/")
t = self.driver.title
self.assertIn(u"失败用例",t)
def test_03(self):
u'''通过用例'''
self.driver.get("http://www.cnblogs.com/yoyoketang/")
self.assertIn(u"上海",self.driver.title)
if __name__ == "__main__":
unittest.main()
参考大神github
优化后源码
1.这个是在大神的基础上稍微做了一点点图片显示的优化,之前的图片太小,显示模糊,放大了下
2.然后重新整理了下,采用批量执行用例的方式
3.参考代码从github下载吧
https://github.com/yoyoketang/selenium_report/
selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)【转载】的更多相关文章
- selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)
优化html报告 为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化: 测试报告中文显示,优化一些断言失败正文乱码问题 新增错误和失败截图,展示到html报告里 ...
- testng优化:失败重跑,extentReport+appium用例失败截图,测试报告发邮件
生成的单html方便jenkins集成发邮件,= = 构建失败发邮件 参考:https://blog.csdn.net/galen2016/article/details/77975965 步骤: 1 ...
- selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...
- selenium+python自动化79-文件下载(SendKeys)
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...
- pytest文档8-html报告报错截图+失败重跑
前言 做web自动化的小伙伴应该都希望在html报告中展示失败后的截图,提升报告的档次,pytest-html也可以生成带截图的报告. conftest.py 1.失败截图可以写到conftest.p ...
- RF实现多次失败重跑结果合并的基础方法和优化方法
实现思路:通过分次执行失败案例重跑,然后通过结果文件合并命令实现多次失败重跑结果文件的合并,并输出合并后的log和report文件: 说明:具体失败案例重跑命令和结果文件合并命令请参考本博客其他相关章 ...
- selenium+python自动化登录脚本
利用selenium+python写的一个关于登录的自动化脚本
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- selenium+python自动化102-登录页面滑动解锁(ActionChains)
前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 seleniu ...
随机推荐
- PokeCats开发者日志(七)
现在是PokeCats游戏开发的第十二天的晚上,很不幸提交到的三个平台(360开放平台,腾讯开放平台,华为应用市场)都没通过,著作权申请也被打回来了. 心中一万只草泥马在奔腾. 得了,看来 ...
- 【转】配置Tomcat使用https协议(配置SSL协议)
转载地址:http://ln-ydc.iteye.com/blog/1330674 内容概览: 如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 协议 1.生成安全证书 2.配置to ...
- 二分查找 Binaryserach
二分查找: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中元素是按升 ...
- 深入了解一下Redis的内存模型!
一.前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字 ...
- 洛谷 P2218 [HAOI2007]覆盖问题 解题报告
P2218 [HAOI2007]覆盖问题 题目描述 某人在山上种了\(N\)棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他 ...
- 关于Maven项目install时出现No compiler is provided in this environment的处理
关于Maven项目build时出现No compiler is provided in this environment的处理 新配置的Eclipse环境,运行现有项目没问题,一日,从svn上检出了一 ...
- Palindrome [Manecher]
Palindrome Time Limit: 15000MS Memory Limit: 65536K Total Submissions: 12214 Accepted: 4583 Descript ...
- JSOI2004 平衡点 / 吊打XXX [模拟退火]
题目描述 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到 ...
- ZooKeeper Watcher注意事项
zookeeper watch的定义如下:watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher. 需要注意三点: 1.一次性触发器 c ...
- __cdecl,__stdcall,__fastcall,__pascal,__thiscall 的区别
关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解. microsoft的vc默认的是__cdecl方式,而windo ...