zoukankan      html  css  js  c++  java
  • 3行python代码帮你轻松实现”自动发送测试报告“到指定邮箱

    前言

    大多数情况下,跑完用例脚本之后,我们需要把测试报告打包,之后再发送给不同的同事查看。其实,python有很多好用的库和模块,可以帮助我们实现这个需求,解放我们的双手。

    所以今天的推文,我们主要来看一看如何 自动把导出的测试报告打包成zip压缩包之后,再发送到指定的邮箱 。

    1.在IDE中设置本地python环境

    因为在实现压缩文件和发送邮件的脚本中,我们会用到python的一些第三方库和模块,所以我们在IDE中需要先设置好本地的python环境,方便我们后续做一些安装第三方库的工作。

    设置的方法也很简单,在IDE的顶部菜单栏中,找到 选项--设置--自定义python.exe的路径 ,选择自己本地的python环境即可,另外python3.8不兼容 airtest ,请同学们选择3.8以下的版本。

    设置好本地python环境之后,可以在命令行中检查该环境是否已经安装了 airtest 和 pocoui库,如未安装,请使用下述命令把这两个做自动化测试的框架安装上:

    pip install airtest
    pip install pocoui

    2.用脚本导出运行报告

    在上周的推文 Airtest报告“全攻略”,看完直接用脚本生成、导出报告,真香! 中,我们有详细介绍如何用脚本生成/导出报告,编写完用例脚本后,我们可以使用 LogToHtml 类导出我们的测试报告,方便发送给其他同事查看:

    from airtest.report.report import LogToHtml
    
    h1 = LogToHtml(script_root=r'D:	est
    olog_test.air', log_root=r"D:	est
    olog_test.airlog", export_dir=r"D:	est
    eport02" ,logfile=r'D:	est
    olog_test.airloglog.txt', lang='zh', plugins=None)
    h1.report()

    注意不要忘记在脚本的开头导入 LogToHtml 类。各参数的详细含义我们也可以查看上周的推文,里面有详细的介绍。

    3.将导出的报告文件压缩成zip包

    在指定目录中导出的报告包含非常多的文件,比如脚本、图片、静态资源文件、log文件和html报告等等:

    而这些文件最终都将以邮件附件的形式发送出去,如果不对这个导出的报告进行压缩操作,我们将需要填写非常多的附件,为了简化操作,在导出报告之后,我们可以用 zipfile 模块将导出的报告压缩成1个zip包,这样我们只需要发送1个压缩包附件即可。

    zipfile 是python的一个内置模块,专门用于压缩文件和解压文件。这里我们仅需要用到模块里面压缩文件的内容。

    示例代码帮助我们在Airtest报告的相同路径下压缩出来了1个zip文档。其中, ZipFile() 用于创建1个 zip 文件对象,示例中的三个参数分别表示:

    • filename:压缩成的zip包的路径(含压缩包名称);例如:xxx.zip
    • mode:可选 r,w,a ,代表不同的打开文件的方式;r只读;w重写;a添加
    • compression:指出这个 zipfile 的压缩方法,默认是 ZIP_STORED ,另一种是 ZIP_DEFLATED

    ZipFile.write() 用于将指定文件添加到zip文档中,示例中的两个参数分别表示:

    • filename:需要压缩的文件名
    • arcname:添加到zip文档之后保存的名称

    4.将压缩好的报告自动发送到指定邮箱

    最后1步,将压缩好的报告以附件的形式发送到指定邮箱。我们先来了解下python对于发送邮件这件事的一些相关知识:

    SMTP是发送邮件的协议。Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

    Python对SMTP支持有 smtplib 和 email 两个模块,email 负责构造邮件,smtplib 负责发送邮件。

    但在实际编写脚本的过程中,小编发现这两个模块的使用起来比较繁琐,容易出错。经过一顿搜索之后,找到了 yagmail 库,可以用来替代上述两个模块自动发送邮件的功能。

    并且使用这个库的话,我们 只需要3行代码就能够简单地实现自动发送邮件的功能 :

    实现的效果如下:

    另外需要注意的是,使用该库之前,需要先在IDE指定的本地python环境中使用 pip install yagmail 安装好这个库。

    还有一点也需要注意下,yagmail.SMTP() 里面的 password 并不是指发送邮箱的密码,而是 发送邮箱的授权码 ,获取授权码的方式同学们可以自行到某度上面搜索,不同邮箱获取授权码的方式有略微的不同,同学们需要针对自己使用的邮箱去进行搜索。

    小结

    学会了如何使用python帮助我们自动发送邮件之后,我们还可以利用这个脚本自动帮我们发送别的东西,比如脚本文件等等。需要本文示例脚本的同学,在公众号回复“邮件”即可获得本文的完整示例代码。


    AirtestProject官方答疑Q群:1017250147

    Airtest官网:http://airtest.netease.com/
    Airtest教程官网:https://airtest.doc.io.netease.com/
    搭建企业私有云服务:https://airlab.163.com/b2b

  • 相关阅读:
    MySql(六)单表查询
    MySql(五)
    MySql(四)
    MySql(三)
    MySql(二)
    2016高管必看的五大互联网营销方法
    昨日股市暴跌熔断 赵薇亏3.3亿赔惨了(如何预测今年股市走向)
    何炅加入阿里音乐预示“互联网+”三大发展走向
    《老炮儿》的江湖道义就是互联网创业的规矩?
    世界互联网大会三大看点 传递什么信号?
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/13744901.html
Copyright © 2011-2022 走看看