• python发送测试报告邮件


       记录学习:

       python实现自动发送邮件功能,也是自动化测试的一个重要场景。想要在自动化测试结果出来后,邮箱可以立刻受到结果邮件。

       SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

       python的smtplib模块对SMTP协议进行了简单封装,实现了方便的途径来发送邮件,使用SMTP的sendmail方法来发送邮件。

       例1:发送HTML格式的邮件

        我用的是163邮箱发送的,Server就是smtp.163.com,其他邮箱的则换成别的,还要先到163邮箱中去开启SMTP服务

        

                  

        最后邮箱也成功接收到邮件:

            

      下面是发送自动化测试报告的邮件的,

      

       get_report()方法用于获取最新的测试报告,上面已经通过变量获取到了测试报告的目录,然后使用os.listdir()方法获取目录下的所有文件及文件夹,利用sort()方法对目录下的文件及文件夹按时间重新排序。list[-1]取到的就是最新生成的文件。

    图片接上:

        

      最后邮箱也是成功收到了测试报告邮件:

      

       附件通过浏览器打开;

    这次练习遇到的一些问题:

    ①要使用SMTP协议得先去邮箱设置中开启这个服务

    ②smtp.login(user,pwd)

    这里一开始输入的是邮箱地址和邮箱登录密码,结果在执行代码的时候报授权认证的错误

    raise SMTPAuthenticationError(code, resp)
    smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')

    后面百度后问题是因为开启服务的时候有一个【授权码】,所以在代码中那个填密码的变量应该使用邮箱开启SMTP服务后出现的授权码,这样就可以成功进行发送邮件。

    ③get_report()获取最新的测试报告的这个方法中,之前一开始只是单纯的使用dirs.sort(),结果执行代码的时候一直没能取到最新的测试报告,后面翻阅了工具书改了下代码才成功了的,key=lambda fn:os.path.getmtime(report_path+'/'+fn)

    dirs.sort(key=lambda fn:os.path.getmtime(report_path+'/'+fn))

      

      

         

  • 相关阅读:
    [hdu 2089] 不要62 数位dp|dfs 入门
    [poj 2456] Aggressive cows 二分
    NOIP 2016 DAY 1 爆炸记
    【模板】kmp
    【模板】LCA
    NOIP 之前的吐槽
    【模板】树状数组
    【模板】线段树
    【模板】高精度
    2016/11/15
  • 原文地址:https://www.cnblogs.com/kingxyt06/p/13796974.html
Copyright © 2020-2023  润新知