Pytest-Bdd-Playwright 系列教程(完结篇):本框架的功能参数说明
简介
本框架支持多种浏览器和设备类型的测试,并具备存储状态管理、测试用例筛选、并行执行、失败重试、报告生成等功能。下面,我将对各个功能参数进行详细阐述。
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 |
注: 本框架具体的完整代码需要联系我获取,你可以通过留言或私信方式与我取得联系。