如何发送最新的测试报告到目标邮箱?

一、知道测试报告的生成目录

1、如果知道测试报告路径,可以通过自定义路径的方式:file_dir=r'd:\test'

2、通过os包中的函数获取目录路径再采取字符串路径相加的方式定义路径(一般采取这种方式),如:os.path.dirname()+'\\test'

二、测试报告目录中获取最新的测试报告

1、知道目录后,我们需要将目录中的文件通过修改时间进行排序,那么首先我们需要知道怎么来获取文件时间:有三种获取时间的方法,分别为:

os.path.getatime(file)   #输出最近访问时间1318921018.0
os.path.getctime(file)   #输出文件创建时间
os.path.getmtime(file)   #输出最近修改时间

2、我们选择最近修改时间的函数:os.path.getmtime(file) 

其它关于文件属性函数:
time.gmtime(os.path.getmtime(file))   #以struct_time形式输出最近修改时间
os.path.getsize(file)    #输出文件大小(字节为单位)
os.path.abspath(file)    #输出绝对路径
os.path.normpath(file)   #输出决定路径和文件名称,如:D:\PycharmProjects\APPTEST\appAutoTest\report\201809291118result.html

3、获取目录下最新的修改时间

按列表输出所有文件的最近修改时间并使用列表中的sort()函数进行排序。

file_dir=os.path.dirname(os.path.abspath('.'))+'\\report'#定义报告文件目录

lists=os.listdir(file_dir)#将报告目录下所有文件返回为一个列表。其中os.listdir()函数的作用是返回指定的文件夹包含的文件或文件夹的名字的列表

lists.sort(key=lambda fn:os.path.getatime(file_dir+"\\"+fn))#获取每个文件最新修改时间并排序

new_report=os.path.join(file_dir,lists[-1])#取排序后列表中最后的一个文件,即最新的报告文件

三、lambda:匿名函数lambda为python中匿名函数,提供了更为灵活的函数的表达方法。一般函数定义格式有函数名的定义,如:
   def add(x,y)

         return x+yadd(3,4)lambda的定义:lambda parameters:express

   add=lambda x,y :x+y #匿名函数定义加法功能

   add(3,4)  #匿名函数调用

   key=lambda fn:os.path.getatime(file_dir+"\\"+fn)  #“fn”为文件名称参数,“os.path.getatime(file_dir+"\\"+fn) ”输出文件的目录和名字

四、发送邮件
将第三步中找到的文件,当作邮件附件发送
见python怎么发送带附件的邮件方法,参考地址:http://www.runoob.com/python/python-tutorial.html
python SMTP部分。




猜你喜欢

转载自www.cnblogs.com/Ladylittleleaf/p/9753555.html