Selenium与流行框架集成:pytest与Allure报告

Selenium与流行框架集成:pytest与Allure报告

在现代软件开发中,自动化测试是确保产品质量和快速迭代的关键。Selenium作为业界领先的Web自动化测试工具,其灵活性和强大的功能受到广泛认可。为了进一步提升测试效率和报告质量,本文将探讨如何将Selenium与两个流行的测试框架——pytest和Allure集成,以及如何利用它们来增强测试流程。

1. pytest简介与安装

pytest 是Python世界中的一款极其灵活且强大的测试框架,它支持简单的单元测试到复杂的集成测试。通过其丰富的插件生态系统,pytest能够无缝集成其他工具和服务,极大提高测试效率。

安装步骤

pip install pytest

2. Selenium脚本改写为pytest风格</

### 如何在 Selenium Pytest Allure 框架中压缩 Allure 报告的截图 为了优化 Allure 报告的大小和加载速度,可以采取多种方法来处理报告中的截图。以下是实现这一目标的具体方式: #### 方法一:调整图片分辨率 通过降低截图的分辨率或质量,可以在不影响视觉效果的情况下显著减少文件大小。可以通过 Python 的 `Pillow` 库对图像进行预处理后再保存至 Allure 报告。 ```python from PIL import Image import io def compress_image(image_path, output_path, quality=85): img = Image.open(image_path) buffer = io.BytesIO() img.save(buffer, format='JPEG', quality=quality) # 调整 JPEG 质量参数 with open(output_path, 'wb') as f: f.write(buffer.getvalue()) ``` 此函数会读取原始图像并将其重新编码为指定的质量级别[^1]。之后,将压缩后的图像附加到 Allure 报告中。 --- #### 方法二:仅捕获失败时的截图 默认情况下,许多测试框架会在每次操作后都生成截图。然而,这通常没有必要。建议只在测试用例失败时才截取屏幕,并附带到 Allure 报告中。 ```python @pytest.hookimpl(tryfirst=True, hookwrapper=True) def pytest_runtest_makereport(item, call): outcome = yield rep = outcome.get_result() if rep.when == "call" and rep.failed: try: driver = item.funcargs['driver'] # 获取 WebDriver 实例 screenshot_path = "./screenshots/failure.png" driver.get_screenshot_as_file(screenshot_path) # 使用 Pillow 进行压缩 compress_image(screenshot_path, screenshot_path, quality=70) allure.attach.file( screenshot_path, name="Failure Screenshot", attachment_type=allure.attachment_type.PNG ) except Exception as e: pass # 处理异常情况 ``` 上述代码片段展示了如何结合 `pytest` 和 `allure` 来捕捉失败场景下的截图,并对其进行压缩再上传[^2]。 --- #### 方法三:裁剪不必要的区域 如果某些部分的画面对于调试无意义,则可以直接裁减掉这些冗余的内容。例如,移除固定的导航栏或其他无关紧要的部分。 ```python def crop_image(input_path, output_path, box=(0, 0, 1920, 1080)): img = Image.open(input_path) cropped_img = img.crop(box) cropped_img.save(output_path) ``` 调用该函数前需明确哪些像素范围需要保留下来作为最终附件的一部分[^3]。 --- #### 方法四:启用 Allure 压缩选项 尽管官方文档未提供直接支持压缩图片的功能,但可通过自定义插件或者修改 HTML 文件夹内的资源链接地址指向外部 CDN 存储服务从而间接达到目的。另外也可以尝试升级最新版本 allure-commandline 工具查看是否有新增特性满足需求[^4]。 --- ### 总结 以上四种策略均有助于改善因大量高清晰度图片而导致的大体积问题以及缓慢浏览体验现象的发生几率。实际应用过程中可根据具体业务场景灵活组合运用它们以获得最佳效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kingapex1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值