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

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

    • 简介
    • [1. 浏览器设置](#1. 浏览器设置)
    • [2. 环境与设备配置](#2. 环境与设备配置)
    • [3. 存储状态管理](#3. 存储状态管理)
    • [4. 测试用例筛选](#4. 测试用例筛选)
    • [5. 并行与重试控制](#5. 并行与重试控制)
    • [6. 报告生成与输出格式](#6. 报告生成与输出格式)
    • [7. 其他功能](#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

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

相关推荐
MichaelIp2 小时前
LLM大语言模型中RAG切片阶段改进策略
人工智能·python·语言模型·自然语言处理·chatgpt·embedding·word2vec
find_starshine3 小时前
xml-dota-yolo数据集格式转换
xml·python·yolo
nvvas4 小时前
Pytest安装Allure生成自动化测试报告
python·测试工具·pytest
Bruce-li__4 小时前
django解决跨域问题
后端·python·django
qq_273900235 小时前
pytorch torch.isclose函数介绍
人工智能·pytorch·python
生信与遗传解读5 小时前
XGBoost算法在自定义数据集中预测疾病风险
人工智能·python·算法·数据分析
人生无根蒂,飘如陌上尘7 小时前
网站自动签到
python·签到
深图智能7 小时前
OpenCV的双边滤波函数
python·opencv·计算机视觉
eybk7 小时前
采用pycorrector纠错word文件段落,并保存为word文件标红显示出来
python·word