一、知道测试报告的生成目录
1、如果知道测试报告路径,可以通过自定义路径的方式:file_dir=r'd: est'
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:PycharmProjectsAPPTESTappAutoTest eport201809291118result.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.htmlpython SMTP部分。