pytest框架优化——清理历史截图图片和allure报告文件
痛点分析:
当我们每次执行完用例的时候,如果出现bug或者是测试脚本出了问题,一般会通过测试报告、异常截图、日志来定位分析,但是我们发现运行次数多了之后,异常截图和测试报告会不停地增多,对我们定位分析问题时造成了一定的困扰,因此我们希望每次执行用例前都提前清理掉对应目录下的文件


解决方法:
1.对于allure目录下的文件,因为名称和文件格式都不同,所以不能进行分类删除,因此我们要引入shutil模块
import shutil
使用shutil.rmtree(path)方法删除path下的所有文件内容(包括目录、递归目录、文件),该方法请谨慎使用!
2.对于OutPuts下的异常截图图片,建议不要使用上面的方法,因为牵扯到很多目录及其它文件,异常截图图片都是.png格式,所以可以分类筛选删除,引入os模块
import os
使用os.unlink(path)方法删除path下的文件
具体实现方法见如下代码:
import os
import shutil # 用例执行前清除OutPuts目录的异常截图图片
MAIN_DIR = os.path.dirname(os.path.abspath(__file__)) # 项目根目录
OUTPUTS_DIR = os.path.join(MAIN_DIR, 'OutPuts') # OutPuts目录 os.chdir(OUTPUTS_DIR) # 切换到OutPuts目录 try:
shutil.rmtree('allure') # 清空allure目录下的文件
except FileNotFoundError as e:
print(f'reports目录不存在,详细信息如下:\n{e}')
for i in os.listdir(OUTPUTS_DIR):
if 'png' in i:
os.unlink(i) os.chdir(MAIN_DIR) # 切换到项目根目录
pytest框架优化——清理历史截图图片和allure报告文件的更多相关文章
- pytest框架优化——将异常截屏图片加入到allure报告中
痛点分析: 在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现 allure.attach(file, '图片描述', allu ...
- 框架优化系列文档:SVN中非版本控制文件忽略上传的设置
对于SVN代码库,只应该上传源代码.资源文件等内容进行版本管理,通常编译后的二进制文件.程序包等生成产物是不应该放到SVN上做版本管理的.因此在svn的客户端工具中设置svn的属性:svn:ignor ...
- pytest框架之allure报告生成
一.关于安装 allure是跟pytest一起集成使用的,所以需要同时安装pytest以及allure-pytest插件: pip install pytest pip install allure- ...
- 严选 Android 路由框架优化(上篇)
0 背景 早前严选 Android 工程,使用原生 Intent 方式做页面跳转,为规范参数传递,做了编码规范,使用静态方法的方式唤起 Activity public static void star ...
- 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片
在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...
- 【Pytest01】全网最全最新的Pytest框架快速入门
一.Pytest简介pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做seleni ...
- pytest框架使用教程
Pytest框架 一.简介 pytest:基于unittest之上的单元测试框架 有什么特点? 自动发现测试模块和测试方法 断言更加方便,assert + 表达式,例如 assert 1 == 1 灵 ...
- 『德不孤』Pytest框架 — 9、Pytest测试报告
目录 1.pytest-html插件 2.Allure测试报告 (1)Allure框架说明 (2)Allure框架的使用 1.pytest-html插件 Pytest可以通过命令行方式,生成xml/h ...
- 『德不孤』Pytest框架 — 11、Pytest中Fixture装饰器(一)
目录 1.Fixture装饰器的用途 2.Fixture参数说明 3.Fixture装饰器简单应用 4.yield执行后置函数 1.Fixture装饰器的用途 做测试前后的初始化设置,如测试数据准备, ...
随机推荐
- Red Hat Enterprise Linux 官方正式版镜像下载
Red Hat Enterprise Linux是美国红帽公司开发的商业市场导向的Linux发行版,为方便大家学习研究,整理分享历代红帽官方正式版镜像给有需要的朋友们. 下载地址:https://ww ...
- make:yacc/lex:command not be found
1.使用./build编译boa-0.94.13时出现make:yacc:command not be found 解决方法:apt-get install -y byacc 2.出现make:lex ...
- 洛谷 SP263 Period
洛谷 SP263 Period 题目描述 For each prefix of a given string S* with N* characters (each character has an ...
- Python Django 支付宝 扫码支付
安装python-alipay-sdk pip install python-alipay-sdk --upgradepip install crypto 如果是python 2.7安装0.6.4这个 ...
- SpringBoot:@Scope注解学习
概述 先通过注解的javadoc,可以了解到,@Scope在和@Component注解一起修饰在类上,作为类级别注解时,@Scope表示该类实例的范围,在和@Bean一起修饰在方法上,作为方法级别注解 ...
- #w29 2019年大前端技术周刊
本周是2019年第29周 移动端 移动开发十周年总结 相对于持续几百年工业革命,移动互联网的发展是短暂的.在这十几年的发展中,为了满足开源和节流的涌现出很多技术.接下来我们将会以开发方式的演进.基建与 ...
- 双链表算法原理【Java实现】(八)
前言 前面两节内容我们详细介绍了ArrayList,一是手写实现ArrayList数据结构,而是通过分析ArrayList源码看看内置实现,关于集合内容一如既往,本节课我们继续学习集合LinkedLi ...
- (三十六)c#Winform自定义控件-步骤控件-HZHControls
官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...
- Python 類和對象 Class vs Object
類別定義 class 類別名: 例如: >>> class Point:... x = 0.0... y = 0.0 1. 宣告 >>> p1 = ...
- 应用Tomcat进行多端口域名访问,并配置开启gzip压缩方法
1.除了默认的8080端口以外,我们尝试应用9090端口进行域名访问,打开server.xml 如图: 2.在代码里面进行添加如下9090下面的代码: 如图: 3.用9090端口进行访问 如图: 4. ...