1、下载HTTPTestRunner
http://tungwaiyip.info/software/HTMLTestRunner.html
2、复制HTMLTestRunner.py至python安装目录的lib目录下,注意如果是用的anaconda中的python解释器,找到anaconda目录下的python解释器对应目录下

3、修改 HTMLTestRunner–>适应python3

# 第 94 行
import StringIO
修改为:
import io#第 539 行
self.outputBuffer = StringIO.StringIO()
修改为:
self.outputBuffer = io.StringIO()第 631 行
print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)
修改为:
print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))#第 642 行
if not rmap.has_key(cls):
修改为:
if not cls in rmap: 第 766 行
uo = o.decode('latin-1')
修改为:
uo = e 第 772 行
ue = e.decode('latin-1')
修改为:
ue = e

4、代码

test_baidu.py

from selenium import webdriver
import unittest
import timeclass MyTest(unittest.TestCase):"""阿彪的百度测试报告"""def setUp(self) -> None:self.driver = webdriver.Chrome(r'F:\QAGoGo\browserdriver\chromedriver_win32\chromedriver.exe')self.driver.maximize_window()self.driver.implicitly_wait(10)self.base_url = "https://www.baidu.com"def test_baidu(self):""" 百度搜索unittest """driver = self.driverdriver.get(self.base_url + "/")driver.find_element_by_id("kw").clear()driver.find_element_by_id("kw").send_keys("unittest")driver.find_element_by_id("su").click()time.sleep(3)def tearDown(self) -> None:self.driver.quit()if __name__ == "__main__":unittest.main()

test_youdao.py

from selenium import webdriver
import unittest
import timefrom selenium.webdriver.common.by import Byclass MyTest(unittest.TestCase):""" 阿彪的有道测试报告 """def setUp(self) -> None:self.driver = webdriver.Chrome(r'F:\QAGoGo\browserdriver\chromedriver_win32\chromedriver.exe')self.driver.maximize_window()self.driver.implicitly_wait(10)self.base_url = "https://www.youdao.com"def test_youdao(self):""" 有道搜索webdriver """driver = self.driverdriver.get(self.base_url + "/")driver.find_element_by_css_selector("#autosuggest input").send_keys("webdriver")driver.find_element(By.CSS_SELECTOR, "a.translate_btn").click()time.sleep(2)title = driver.titleprint(title)self.assertEqual(title, "webdriver")def tearDown(self) -> None:self.driver.quit()if __name__ == "__main__":unittest.main()

runtest.py

import unittest, time
from HTMLTestRunner import HTMLTestRunnertest_dir = "./test_case"
discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")if __name__ == "__main__":now = time.strftime("%Y-%m-%d %H-%M-%S")file = './report/' + now + ' result.html'fp = open(file, 'wb')runner = HTMLTestRunner(stream=fp, title="测试报告", description=" 用例执行情况:")runner.run(discover)fp.close()




5、整合邮件发送

import unittest, time, os, smtplib
from HTMLTestRunner import HTMLTestRunner
from email.header import Header
from email.mime.text import MIMEText#  ==============定义发送邮件==================
def send_email(file_new):f = open(file_new, 'rb')mail_body = f.read()f.close()msg = MIMEText(mail_body, 'html', 'utf-8')msg['Subject'] = Header("自动化测试报告", 'utf-8')smtp = smtplib.SMTP()smtp.connect("smtp.163.com")smtp.login("ty45b_15034553545@163.com", "KYIXTKSQSQSPBKIIOPPALXMSISJQO")smtp.sendmail("ty45b_15034553545@163.com", "tefeyb_17836545444915@163.com", msg.as_string())smtp.quit()print("email send successfully")# ======查找测试报告目录,找到最新生成的测试报告文件====
def latest_report(reportDir):lists = os.listdir(reportDir)lists.sort(key=lambda fn: os.path.getmtime(reportDir + "\\" + fn))print("最新的文件为:" + lists[-1])return os.path.join(reportDir, lists[-1])if __name__ == "__main__":test_dir = "./test_case"test_report = "./report"discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")now = time.strftime("%Y-%m-%d %H-%M-%S")file = './report/' + now + ' result.html'fp = open(file, 'wb')runner = HTMLTestRunner(stream=fp, title="测试报告", description=" 用例执行情况:")runner.run(discover)fp.close()new_report = latest_report(test_report)send_email(new_report)

设计模式

Page Object设计模式

自动化测试应用---HTML测试报告+邮件发送相关推荐

  1. Jenkins测试报告邮件发送

    Jenkins测试报告邮件发送 1.在Jenkins中安装Email Extension Plugin插件 2.系统设置配置 2.1.系统设置:配置Jenkins Location 2.2.系统设置: ...

  2. 无法用php smtp发送邮件. 您的服务器可能没有配置用此方法_Web自动化测试:邮件发送测试报告...

    在我们运行完整个项目后,已经生成了 测试报告,一般自动化会在本地或者公司服务器上运行,那如何获取自动化测试的运行结果呢,此时就需要把测试结果以邮件的形式发送到邮箱,这样就可以在测试完成的第一时间知道测 ...

  3. Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    目录 一.项目结构介绍 1.mztestpro测试项目 2.bbs目录 3.test_case 二.编写公共模块 三.编写Page Object 四.编写测试用例 五.执行测试用例 小结: 本人在网上 ...

  4. html项目_Python Selenium项目实战之添加发送HTML测试报告邮件!

    说明 继第一个实战项目的基础上添加自动发送报告邮件接口,代码有部分调整 变动 1.增加文本文档SendToUserinfo.txt 用来保存邮件接收者的信息 2.修改测试报告文件名称格式并添加repr ...

  5. Jenkins发送测试报告邮件

    2019独角兽企业重金招聘Python工程师标准>>> 简介:总结怎么使用Jenkins执行自动化测试后发送测试报告邮件 一.系统设置 1.在Jenkins安装Email Exten ...

  6. python如何批量下载邮箱全部附件_Python编写执行测试用例及定时自动发送最新测试报告邮件...

    环境准备: 操作系统:Windows7 集成开发环境:eclipse+pydev 一.编写测试用例 可以直接使用Python自带的单元测试框架unittest来编写自动化测试用例,利用其组织测试用例, ...

  7. python自动化通过邮件发送测试结果

    ################# #单人发送文本文件 ################# import smtplib from email.mime.text import MIMEText fr ...

  8. python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本.富文本.HTML 等格式的邮件 本文将聊聊利用 Python ...

  9. Python+request+ smtplib 测试结果html报告邮件发送(上)《五》

    此方法通用适合所有邮箱的使用,只需注意几个点,如下: QQ邮箱.其他非QQ邮箱的写法,区别点如下: #--------------------------使用腾讯企业邮箱作为发件人的操作如下----- ...

最新文章

  1. vscodemaven 配置_二、vscode搭建maven开发环境
  2. 搭建网络及服务器系统,网络服务器搭建与管理
  3. 网站的高性能架构--应用服务器优化
  4. C#线程同步(1)- 临界区&Lock
  5. 【数学基础】算法工程师必备的机器学习--线性模型(上)
  6. verilog实现汉明权重_(学习Verilog)6. FIR IP核的基础功能使用总结
  7. 【Python】setup-转载
  8. 【LeetCode题解】排序
  9. 安全清理大部分的C盘内存(一般10GB以上)
  10. c语言setw函数怎么用,C++中setw()的用法?
  11. push msg php_php进程通信-消息队列
  12. 纯音乐自制吉他及钢琴简谱合集
  13. 后端返回的类型都有哪些 如何处理这些数据类型?
  14. 西门子数控系统的机床数据采集
  15. python读取pdf内容转word_【python】python实现PDF转word
  16. 如何在 Mac 上强制退出应用
  17. ios11.2计算机更新,iOS11.2.2正式版怎么样、更新了什么?iOS11.2.2降频吗?
  18. Android渠道包测试方案
  19. R与Rtools版本不兼容问题
  20. 51系列—基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全)

热门文章

  1. CRISPR技术有效的防止脱靶现象方法
  2. 拓嘉启远电商:拼多多缺货会降权吗?如何处理
  3. 什么是combo复用口,光电类型如何转换?
  4. 何恺明团队新作ViTDet:用于目标检测的视觉Transformer主干网络
  5. c语言中字母与allse,几读音是什么
  6. 自动开机和自动关机设定方法(包括linux和windows)
  7. 一个老程序员的教诲(2)
  8. JS——数组中去除空空字符串
  9. 3D建模游戏动漫模型制作软件都有哪些?最全解析,工具免费领
  10. 用html和css制作日历,CSS3制作日历