zoukankan      html  css  js  c++  java
  • web端自动化——selenium测试报告生成、找到测试报告路径、实现发邮件(整合)

    有这样的一个场景:

    假设生成的测试报告与多人相关,每个人都去测试服务器査看就会比较麻烦,如果把这种主动的且不及时的査看变成被动且及时的査收,就方便多了。

    整个程序的执行过程可以分为三个步骤:

    ①    通过unittest框架的discover()找到匹配测试用例,由HTMLTestRunner的run()方法执行测试用例并生成最新的测试报告。

    ②    调用new_report()函数找到测试报告目录(test_case)下最新生成的测试报告,返回测试报告的路径。

    ③    将得到的最新测试报告的完整路径传给send_mail()函数,实现发邮件功能。

     实例代码如下:

    import unittest
    import time
    import os
    import smtplib
    from HTMLTestRunner import HTMLTestRunner
    from email.mime.text import MIMEText
    from email.header import Header
    from email.mime.multipart import MIMEMultipart

    #定义发送邮件
    def send_mail(file_new):
    f=open(file_new,'rb')
    mail_body=f.read()
    f.close()
    #构造附件
    att = MIMEText(mail_body, 'base64', 'utf-8')
    att["Content-Type"] = 'application/octet-stream'
    att["Content-Disposition"] = 'attachment;filename="latestResult.html"'
    msg = MIMEMultipart('related')
    msg['subject'] = Header("自动化测试报告", 'utf-8')
    msg.attach(att)
    #加邮件头
    #加邮件头
    msg['From'] = 'lili1505115417@sina.com <lili1505115417@sina.com>'
    msg['To'] = 'lili1505115417@126.com'
    smtp=smtplib.SMTP()
    smtp.connect("smtp.sina.com",25)
    smtp.login("lili1505115417@sina.com","lili123456")
    smtp.sendmail('lili1505115417@sina.com','lili1505115417@126.com',msg.as_string())
    smtp.quit()
    print("email has send out!")

    #查找测试报告目录,找到最新生成的测试报告文件,并发送
    def new_report(test_report):
    lists=os.listdir(test_report)
    lists.sort(key=lambda fn :os.path.getmtime(test_report+'\'+fn))
    print(('最新的文件为:'+lists[-1]))
    file_new=os.path.join(test_report,lists[-1])
    print(file_new)
    return file_new
    if __name__=='__main__':
    test_dir = r'E:selenium+puthon+pycharm学习 est_project est_case'
    discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
    now = time.strftime("%Y-%m-%d %H-%M-%S")
    filename = test_dir + '//' + now + 'result.html'
    fp = open(filename, 'wb')
    runner = HTMLTestRunner(stream=fp, title='测试报告', description='用例测试执行情况:')
    runner.run(discover)
    fp.close()
    newReport = new_report(test_dir)
    send_mail(newReport)

    登录126邮件可以查看到:

    生成的测试报告通过邮件附件打开可以看到:

  • 相关阅读:
    SQL调用另一台服务器的表及存储过程(SQL函数openrowset()的使用以及相关问题处理)
    解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法
    sql server exec 参数的传递
    c#修改webservice 的地址和端口(修改配置文件)
    JS转换HTML转义符,编码及解码
    nginx使用ssl模块配置支持HTTPS访问,腾讯云申请免费证书
    thinkcmf 相关
    ThinkJS 开发node后端 使用 简介
    linux复制指定目录下的全部文件到另一个目录中
    谷歌地图,国内使用Google Maps JavaScript API,国外业务
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/9946903.html
Copyright © 2011-2022 走看看