自动化测试基础篇--Selenium unittest生成测试报告(HTMLTestRunner)
如何生成HTMLTestRunner测试报告。接上篇文章,对于unittest框架,运行后,测试结果不便于查看,同时多个case存在的时候,可能会导致case result记录不正确的情况。
为此,引入了HTMLTestRunner.py,它是Python标准库unittest模块的一个扩展。它可以生成直观的HTML测试报告。
一、下载HTMLTestRuner
首先,下载HTMLTestRuner.py文件。
下载地址:Python2.7版本:http://tungwaiyip.info/software/HTMLTestRunner.html,
Python3.0版本:https://github.com/huilansame/HTMLTestRunner_PY3。
二、生成HTMLTestRuner报告

三、测试报告详情

四、参考代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : chen
# @File : run_main.py
# @Software: PyCharm
import os
import unittest
import time
import HTMLTestRunner
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart cur_path = os.path.dirname(os.path.realpath(__file__)) def add_case(caseName='case',rule='test*.py'):
case_path = os.path.join(cur_path, caseName)
if not os.path.exists(case_path):
os.mkdir(case_path)
print('test case path:%s' %case_path)
discover = unittest.defaultTestLoader.discover(case_path,
pattern=rule,
top_level_dir=None)
print(discover)
return discover def run_case(all_case,reportName='report'):
now = time.strftime('%Y_%m_%d_%H_%M_%S')
report_path = os.path.join(cur_path, reportName)
if not os.path.exists(report_path):
os.mkdir(report_path)
report_abspath = os.path.join(report_path, now + 'result.html')
print('test case path:%s' %report_abspath)
fp = open(report_abspath, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title='自动化测试报告:',
description='用例执行情况')
runner.run(all_case)
fp.close() def get_report_file(report_path):
lists = os.listdir(report_path)
lists.sort(key=lambda fn: os.path.getmtime(os.path.join(report_path, fn)))
print('最新测试生成报告:' + lists[-1])
report_file = os.path.join(report_path, lists[-1])
return report_file def send_mail(sender,password,receiver,smptserver,report_file,port):
with open(report_file, 'rb') as f:
mail_body = f.read() msg = MIMEMultipart()
body = MIMEText(mail_body,_subtype='html',_charset='utf-8')
msg["subject"] = "自动化测试报告"
msg["from"] = sender
msg["to"] = receiver
msg.attach(body) att = MIMEText(open(report_file,'rb').read(), 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment; filename="report.html"'
msg.attach(att)
try:
smtp = smtplib.SMTP_SSL(smptserver,port)
except:
smtp = smtplib.SMTP()
smtp.connect(smptserver,port) smtp.login(sender,password)
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()
print('test report email has send out !') if __name__ == "__main__":
all_case = add_case()
run_case(all_case)
report_path = os.path.join(cur_path,'report')
report_file = get_report_file(report_path) from jiekou_test.config import readConfig
sender = readConfig.sender
password = readConfig.password
smtp_server = readConfig.smtp_server
port = readConfig.port
receiver = readConfig.receiver
send_mail(sender,password,receiver,smtp_server,report_file,port)
自动化测试基础篇--Selenium unittest生成测试报告(HTMLTestRunner)的更多相关文章
- 自动化测试基础篇--Selenium unittest简介
一.什么是unittest unittest是Python单元测试框架,类似于JUnit框架. unittest中有4个重要的概念:test fixture, test case, test suit ...
- 3.5 unittest生成测试报告HTMLTestRunner
3.5 unittest生成测试报告HTMLTestRunner 前言批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的.unittest里面是不 ...
- python接口自动化测试(七)unittest 生成测试报告
用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...
- 自动化测试基础篇--Selenium发送测试报告邮件
来自:https://www.cnblogs.com/sanzangTst/p/8377870.html 发邮件需要用到python两个模块,smtplib和email,这俩模块是python自带的, ...
- 自动化测试基础篇--Selenium框架设计(POM)
一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...
- 自动化测试基础篇--Selenium简单的163邮箱登录实例
摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...
- 自动化测试基础篇--Selenium元素定位
摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...
- 自动化测试基础篇--Selenium文件上传send_keys
摘自https://www.cnblogs.com/sanzangTst/p/8358165.html 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一 ...
- 自动化测试基础篇--Selenium鼠标键盘事件
摘自https://www.cnblogs.com/sanzangTst/p/7477382.html 前面几篇文章我们学习了怎么定位元素,同时通过实例也展示了怎么切换到iframe,怎么输入用户名和 ...
随机推荐
- Java并发编程——阻塞队列BlockingQueue
Java 并发编程系列文章 Java 并发基础——线程安全性 Java 并发编程——Callable+Future+FutureTask java 并发编程——Thread 源码重新学习 java并发 ...
- Maven仓库汇总
来源:http://tianya23.blog.51cto.com/1081650/386908 1.maven 仓库地址: 共有的仓库http://repo1.maven.org/maven2/ht ...
- ubuntu 16.04安装好后没声音的解决方法
刚安装好Ubuntu16.04 后没声音,找了好多方法都不行,看到网上说通过安装pavucontrol和alsamixer调节解决,最后无意发现一个方法,总算是可以用了,在此记录一下.可能有的可以解决 ...
- 八个常用的js正则表达式
开篇:开发中如果有input输入框,难免就要写正则表达式,因此在这里总结了一些常见常用的正则表达式的书写方法,希望会大家有所帮助: 附图: 一.手机号码 $(document).ready(funct ...
- C#通过XML导出Excel
最近IOS项目中有手机生成Excel,让我想起了之前做C#时做的生成Excel的,之前都放在空间日志中,今天把它弄到博客中分享一下
- Idea软件Vim插件问题
人家说用webstorm是纯前端,用Idea是java+前端,好,那就用Idea,装上试试,全选所有插件安装,奇迹出现了,选中一行代码,backspace,删不了,我的天,好吧,复制粘贴的快捷键也不行 ...
- 第8章 scrapy进阶开发(1)
8-1 selenium动态网页请求与模拟登录知乎 Ⅰ.介绍selenium 1.什么是selenium:selenium百度百科 2.selenium的构架图: 如果要操作浏览器,还需要一个driv ...
- Win7系统下网站发布IIS配置
*本帖为个人收集贴,所有版权归:西门的后花园 http://ons.me* Technorati 标记: IIS,网站,发布,配置 一.首先是安装IIS.打开控制面板,找到“程序与功能”,点进去 二. ...
- 撩课-Web大前端每天5道面试题-Day8
1. 说说你对作用域链的理解? 作用域链的作用是保证执行环境里 有权访问的变量和函数是有序的, 作用域链的变量只能向上访问, 变量访问到window对象即被终止, 作用域链向下访问变量是不被允许的; ...
- 04-Tomcat体系结构与插件配置
一.发布程序详解 Context docBase:web应用的文件路径 path:URL入口 reloadable:字节码变化服务器是否重新加载web应用 二.tomcat服务器体系结构 1.Serv ...