Pytest-Bdd-Playwright 系列教程(完结篇):本框架的功能参数说明

devtools/2025/1/13 12:59:08/

Pytest-Bdd-Playwright 系列教程(完结篇):本框架的功能参数说明

    • 简介
    • 1. 浏览器设置
    • 2. 环境与设备配置
    • 3. 存储状态管理
    • 4. 测试用例筛选
    • 5. 并行与重试控制
    • 6. 报告生成与输出格式
    • 7. 其他功能
    • 附录:参数说明表

简介

本框架支持多种浏览器和设备类型的测试,并具备存储状态管理、测试用例筛选、并行执行、失败重试、报告生成等功能。下面,我将对各个功能参数进行详细阐述。
在这里插入图片描述

1. 浏览器设置

  • –browser:指定浏览器类型
    默认值:chromium
    示例:--browser=chromium --browser=firefox --browser=webkit
    这个参数允许指定需要使用的浏览器类型。支持的浏览器类型有 Chromium、Firefox 和 Webkit,用户可以根据需求选择适合的浏览器进行测试。

  • –browser-channel:指定浏览器版本
    默认值:无
    示例:--browser-channel=chrome
    如果需要指定某个浏览器的特定版本,可以使用该参数。例如,指定使用 Chrome 的某个版本进行测试。

  • –headless:启用无头模式
    默认值:False
    示例:--headless
    该参数启用无头模式运行浏览器,不打开图形界面进行显示。适用于不需要查看浏览器界面的自动化测试


2. 环境与设备配置

  • –env:指定测试环境
    默认值:无
    示例:--env=uat
    使用此参数可以选择不同的测试环境,例如 uat(用户验收测试环境)、staging(预生产环境)等。

  • –viewport:指定浏览器视窗大小
    默认值:系统默认设置
    示例:--viewport=1920x1080
    配置浏览器的显示分辨率,通常用于模拟不同的设备屏幕尺寸。

  • –device:指定模拟设备
    默认值:pc
    示例:--device="iPhone 12"
    模拟指定的设备进行测试,支持的设备包括多种手机、平板和PC。


3. 存储状态管理

  • –save-storage:保存存储状态
    默认值:无
    示例:--save-storage
    用于保存浏览器的存储状态,以便在之后的测试中恢复。常用于模拟登录状态或用户操作历史。

  • –load-storage:加载存储状态
    默认值:无
    示例:--load-storage
    从指定文件加载存储状态。与 --save-storage 配合使用,实现会话恢复。


4. 测试用例筛选

  • -m:根据 pytest.mark 筛选测试用例
    默认值:无
    示例:-m="smoke"
    该参数根据标记筛选测试用例。通过给测试用例打上标记,可以选择性地运行特定的测试集。

  • -k:根据名称筛选测试用例
    默认值:无
    示例:-k="test_login"
    按照测试用例名称匹配筛选需要运行的用例。例如,-k="test_login" 只会运行包含 test_login 的测试函数。


5. 并行与重试控制

  • -n:指定并行执行的进程数
    默认值:无
    示例:-n=3
    此参数用于指定同时运行的进程数,适用于提高测试执行速度,特别是在大规模测试时。

  • –reruns:失败用例重试次数
    默认值:无
    示例:--reruns=3
    设置失败的测试用例重试次数,适用于需要容忍偶尔失败的测试场景。

  • –reruns-delay:失败用例重试间隔时间(秒),配合 --reruns 使用
    默认值:无
    示例:--reruns-delay=1
    通过设置重试间隔时间,可以控制重试的频率,避免测试在高并发场景下过于密集。

  • –count:同一条用例重复运行的次数
    默认值:无
    示例:--count=3
    用于多次重复运行某个测试用例,适用于验证用例的稳定性。


6. 报告生成与输出格式

  • –gherkin-terminal-reporter:启用 Gherkin 格式的终端输出
    默认值:无
    示例:--gherkin-terminal-reporter
    启用 Gherkin 格式输出,适用于行为驱动开发(BDD)测试报告,直观展示测试结果。

  • –cucumberjson:生成 Cucumber JSON 格式的测试报告
    默认值:无
    示例:--cucumberjson=./reports/test_report.json
    该参数用于生成 Cucumber 格式的 JSON 测试报告,方便与其他工具(如 Jenkins)集成。

  • –alluredir:指定Allure测试报告的输出路径
    默认值:无
    示例:--alluredir=./reports
    用于生成 Allure 格式的测试报告,并指定报告存放路径。

  • –report:生成HTML格式的pytest-testreport报告
    默认值:无
    示例:--report=_report.html
    该参数生成 HTML 格式的测试报告,便于浏览器查看测试结果。

  • –junit-xml:生成JUnit XML格式的测试报告
    默认值:无
    示例:--junit-xml=./reports/test_report.xml
    适用于生成 JUnit XML 格式的测试报告,方便与持续集成(CI)工具兼容。


7. 其他功能

  • –slow-mode:启用慢速模式
    默认值:0
    示例:--slow-mode=1000
    用于控制测试运行的速度,可以增加每个测试的延迟,便于调试或减少资源消耗。

  • –dev-tools:启用开发者工具模式
    默认值:False
    示例:--dev-tools
    启用浏览器开发者工具,适合调试和查看浏览器的内部信息。

  • –random-order:随机执行测试用例
    默认值:按文件名排序
    示例:--random-order
    用于随机化测试执行顺序,避免测试间存在依赖关系导致的顺序问题。

  • –resource-intercept:拦截指定类型的资源,可配合 --block-resource 使用
    默认值:无
    示例:--resource-intercept=image
    拦截并阻止加载指定类型的资源,适用于测试中需要忽略某些资源的场景。

  • –url-intercept:拦截指定 URL 的资源,可配合 --block-resource 使用
    默认值:无
    示例:--url-intercept=https://www.baidu.com/
    通过拦截特定 URL 的请求,可以更灵活地控制测试的网络环境。

  • –block-resource:阻止指定类型的资源
    默认值:无
    示例:--block-resource
    通过此参数阻止加载某些不必要的资源,例如广告或无关的图像文件。

  • –page-on:开启页面事件监听
    默认值:无
    示例:--page-on=request
    监听浏览器页面事件,可以在特定的页面事件发生时触发某些操作,适用于需要细粒度控制的场景。

  • –init-script:页面加载之前添加初始化脚本
    默认值:无
    示例:--init-script
    在页面加载之前执行自定义脚本,用于设置环境变量、模拟用户行为等。

  • –send-report:发送测试报告到邮箱、企微、钉钉
    默认值:无
    示例:–send-report
    该参数用于将测试报告通过指定渠道(如电子邮件、企业微信、钉钉等)发送给相关人员。常用于团队协作中,自动化测试完成后自动发送报告,便于团队成员及时获取测试结果并采取相应措施。


附录:参数说明表

参数名用途默认值示例
--browser指定浏览器类型chromium一个或多个浏览器类型,例如:--browser=chromium --browser=firefox --browser=webkit
--browser-channel指定浏览器版本无默认值--browser-channel=chrome
--headless启用无头模式False--headless
--env指定测试环境无默认值--env=uat
--viewport指定浏览器视窗大小默认系统设定--viewport=1920x1080
--device指定模拟设备pc--device="iPhone 12"
--save-storage保存存储状态无默认值--save-storage
--load-storage加载存储状态无默认值--load-storage
-m根据 pytest.mark 筛选测试用例无默认值-m="smoke"
-k根据名称筛选测试用例无默认值-k="test_login"
-n指定并行执行的进程数无默认值-n=3
--reruns失败用例重试次数无默认值--reruns=3
--reruns-delay失败用例重试间隔时间(秒),配合 --reruns 使用无默认值--reruns-delay=1
--count同一条用例重复运行的次数无默认值--count=3
--gherkin-terminal-reporter启用 Gherkin 格式的终端输出无默认值--gherkin-terminal-reporter
--cucumberjson生成 Cucumber JSON 格式的测试报告无默认值--cucumberjson=./reports/test_report.json
--alluredir指定allure测试报告的输出路径无默认值--alluredir=./reports
--clean-alluredir清理上次生成的allure测试报告,配合 --alluredir 使用无默认值--clean-alluredir
--report生成HTML格式的pytest-testreport报告无默认值--report=_report.html
--template指定pytest-testreport测试报告的模板,配合 --report 使用无默认值--template=2
--collect-only只收集测试用例,不执行测试用例无默认值--collect-only
--junit-xml生成JUnit XML格式的测试报告无默认值--junit-xml=./reports/test_report.xml
--slow-mode启用慢速模式0--slow-mode=1000
--dev-tools启用开发者工具模式False--dev-tools
--random-order随机执行测试用例默认按文件名排序--random-order
--resource-intercept拦截指定类型的资源,可配合 --block-resource 使用无默认值一个或多个指定类型,例如:--resource-intercept=image
--url-intercept拦截指定 URL 的资源,可配合 --block-resource 使用无默认值一个或多个指定 URL,例如:--url-intercept=https://www.baidu.com/
--block-resource阻止指定类型的资源无默认值--block-resource
--page-on开启页面事件监听无默认值一个或多个指定事件类型,例如:--page-on=request
--init-script页面加载之前添加初始化脚本无默认值--init-script
--send-report发送测试报告到邮箱、企微、钉钉无默认值--send-report

注: 本框架具体的完整代码需要联系我获取,你可以通过留言或私信方式与我取得联系。


http://www.ppmy.cn/devtools/150151.html

相关文章

从攻击视角探讨ChatGPT对网络安全的影响

ChatGPT是OpenAI 发布的基于人工智能的对话机器人,上线短短2个月活跃用户就突破了1亿,成为全球关注的焦点。ChatGPT可以自动化地处理对话,可以通过基于自然语言处理技术的模型、情景模型和语言模型来自动生成文章,甚至可以按照用户…

Kafka优势剖析-流处理集成

目录 1. Kafka Streams API 1.1 什么是 Kafka Streams API? 1.2 Kafka Streams 的工作原理 1.3 Kafka Streams 的优势 1.4 Kafka Streams 的典型应用场景 2. KSQL 2.1 什么是 KSQL? 2.2 KSQL 的工作原理 2.3 KSQL 的优势 Kafka 的流处理能力是其…

【数据库】四、数据库管理与维护

文章目录 四、数据库管理与维护1 安全性管理2 事务概述3 并发控制4 备份与恢复管理 四、数据库管理与维护 1 安全性管理 安全性管理是指保护数据库,以避免非法用户进行窃取数据、篡改数据、删除数据和破坏数据库结构等操作 三个级别认证: 服务器级别…

C# 继承(接口)

接口 如果一个类派生与一个接口,它就会执行某些函数。并不是所有的面向对象语言都支持接口。 熟悉COM的开发人员应注意,尽管在概念上C#接口类似于COM接口,但他们是不筒的,底层的结构不筒。比如,C#接口并不派生于IUnko…

安卓开发动画

1.gif图片动画 边缘会有锯齿 2.json动画 用lottie json文件动画 实现 Android Studio使用lottie,加载json文件,实现动画效果_android 加载json动画-CSDN博客 遇到的坑 1.不播放,可能因为设置了图片(跟动画一样的图片&#xf…

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(三)

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(三) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…

什么是“负载均衡”?在工作中如何应用?

你有没有遇到过访问一个网站时,速度慢得让人崩溃?甚至直接打不开?其实,这可能是服务器负载过重造成的,而“负载均衡”正是解决这一问题的关键技术。 那么,什么是负载均衡? 负载均衡&#xff0…

【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)

视频演示: 基于STM32与QT的智慧粮仓环境监测与管理系统设计 目录: 目录 视频演示: 目录: 前言: