做了一个appium的项目,集成了Pytest-report后,在跑完了会生成一个报告,不过需要手动去找然后去打开,不够优雅,所以研究了一会实现了这个小需求
首先我们观察生成报告的位置,标题:
标题是时间+自定义的文件名+html,经过测试,时间是跑完所有用例后的那个瞬间,不过秒数很难确定,所以只能模糊搜索了
为了自动打开该文件,首先我们要找到这个文件,可以使用os库寻找这个文件夹中所有符合文件名的文件,分析文件名中的三个元素:
时间:直接使用datetime的函数取到然后按格式存在字符串里去(因为秒太难确定,所以直接舍弃秒这个元素,待会模糊查询分钟即可)
now = datetime.datetime.now()
time_loc = now.strftime("%Y-%m-%d_%H_%M")
文件名: 首先用os库打开目的文件夹,取到所有文件名,然后通过for循环找时间符合的文件,得到文件名,再用字符串加法把它拼成合法的路径,路径也是用os库的getcwd()方法取的,这样项目环境更换也不会报错
path = './reports/'
files = os.listdir(path)
file_report = ''
# 查找报告文件
for f in files:
if time_loc in f and f.endswith('.html'):
print('Found it!' + f)
file_report = os.getcwd() + '/reports/' + f
最后通过webbrowser打开文件:
webbrowser.open(file_report)