浏览器选项
要在 Scenario options 中启用浏览器测试,请在 options
属性中添加 browser
配置。
export const options = {
scenarios: {
foo: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
脚本选项
选项 | 描述 |
---|---|
type(必填) | 运行测试的浏览器名称。选项包括 'chromium' 。 |
环境变量选项
您可以通过传递环境变量来自定义浏览器模块的行为。
注意
在 Grafana Cloud k6 中运行浏览器测试时,通过环境变量自定义浏览器选项不受支持。
环境变量 | 描述 |
---|---|
K6_BROWSER_ARGS | 启动浏览器进程时要包含的额外命令行参数。请参阅此链接获取 Chromium 参数列表。请注意,参数不应以 -- 开头(参见下面的命令示例)。 |
K6_BROWSER_DEBUG | 如果设置为 true ,将记录所有 CDP 消息和内部精细日志。 |
K6_BROWSER_EXECUTABLE_PATH | 忽略搜索浏览器可执行文件,优先使用指定的绝对路径。 |
K6_BROWSER_HEADLESS | 是否显示浏览器 GUI。默认为 true 。 |
K6_BROWSER_IGNORE_DEFAULT_ARGS | 忽略启动浏览器进程时包含的任何默认参数。 |
K6_BROWSER_TIMEOUT | 初始化与浏览器实例连接的默认超时时间。如果未设置,默认为 '30s' 。 |
K6_BROWSER_TRACES_METADATA | 设置额外的键值元数据,这些元数据将作为属性包含在浏览器模块链路追踪生成的每个 Span 中。示例:K6_BROWSER_TRACES_METADATA=attr1=val1,attr2=val2 。这仅在链路追踪生成启用时适用,更多详情请参阅链路追踪输出。 |
以下命令将浏览器选项作为环境变量传递,以启动带有自定义参数的非无头浏览器。
K6_BROWSER_HEADLESS=false K6_BROWSER_ARGS='show-property-changed-rects' k6 run script.js
# WARNING!
# The grafana/k6:master-with-browser image launches a Chrome browser by setting the
# 'no-sandbox' argument. Only use it with trustworthy websites.
#
# As an alternative, you can use a Docker SECCOMP profile instead, and overwrite the
# Chrome arguments to not use 'no-sandbox' such as:
# docker container run --rm -i -e K6_BROWSER_ARGS='' --security-opt seccomp=$(pwd)/chrome.json grafana/k6:master-with-browser run - <script.js
#
# You can find an example of a hardened SECCOMP profile in:
# https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json.
docker run --rm -i -e K6_BROWSER_HEADLESS=false -e K6_BROWSER_ARGS='show-property-changed-rects' grafana/k6:master-with-browser run - <script.js
set "K6_BROWSER_HEADLESS=false" && set "K6_BROWSER_ARGS='show-property-changed-rects' " && k6 run script.js
$env:K6_BROWSER_HEADLESS="false" ; $env:K6_BROWSER_ARGS='show-property-changed-rects' ; k6 run script.js
默认参数
启动浏览器进程时包含的默认参数列表。您可以在启动测试时将一个或多个参数传递给 K6_BROWSER_IGNORE_DEFAULT_ARGS
环境变量,以忽略您想忽略的参数。
注意
参数名称列表中已省略开头的 ‘–’。
参数 | 值 | 描述 |
---|---|---|
disable-background-networking | true | 禁用在后台运行网络请求的几个子系统。这用于网络性能测试期间,以避免测量噪声。 |
enable-features | NetworkService, NetworkServiceInProcess | 要启用的功能名称的逗号分隔列表。 |
disable-background-timer-throttling | true | 禁用后台页面计时器任务的任务节流。 |
disable-backgrounding-occluded-windows | true | 禁用被遮挡窗口的后台渲染。用于测试以避免不确定性行为。 |
disable-breakpad | true | 禁用崩溃报告。 |
disable-component-extensions -with-background-pages | true | 禁用带有后台页面的默认组件扩展。对于性能测试很有用,因为这些页面可能会干扰结果。 |
disable-default-apps | true | 禁用首次运行时的默认应用安装。这用于自动化测试期间。 |
disable-dev-shm-usage | true | 在某些 VM 环境中,`/dev/shm` 分区太小,导致 Chrome 失败或崩溃。此标志为此问题提供了解决方法(将始终使用临时目录创建匿名共享内存文件)。 |
disable-extensions | true | 禁用扩展。 |
disable-features | ImprovedCookieControls, LazyFrameLoading, GlobalMediaControls, DestroyProfileOnBrowserClose, MediaRouter, AcceptCHFrame | 要禁用的功能名称的逗号分隔列表。 |
disable-hang-monitor | true | 抑制渲染器进程中的挂起监视器对话框。这可能导致页面上的慢速卸载处理程序阻止选项卡关闭,但在这种情况下可以使用任务管理器终止有问题的进程。 |
disable-ipc-flooding-protection | true | 禁用 IPC 洪水保护。它默认是激活的。一些 javascript 函数可用于向浏览器进程发送 IPC 洪水。这种保护限制了它们的使用速率。 |
disable-popup-blocking | true | 禁用弹窗阻止。 |
disable-prompt-on-repost | true | 通常,当用户尝试导航到 POST 请求的结果页面时,浏览器会提示以确认用户的意图。此开关可用于在自动化测试期间禁用该检查。 |
disable-renderer-backgrounding | true | 设置后,阻止渲染器进程后台化。 |
force-color-profile | srgb | 强制将所有显示器视为具有指定的颜色配置文件。接受的值有 “srgb” 和 “generic-rgb”(目前用于 Mac 布局测试)以及 “color-spin-gamma24”(用于布局测试)。 |
metrics-recording-only | true | 启用指标报告的记录,但禁用报告。这会执行正常客户端用于报告的所有代码,但报告会被丢弃而不是发送到服务器。这对于在 UI 和性能测试期间查找指标代码中的问题很有用。 |
no-first-run | true | 跳过“首次运行”任务,无论是否是首次运行,以及“新特性”页面。这不会丢弃“首次运行”标记,因此不会阻止下次在没有此标志的情况下启动 Chromium 时发生“首次运行”。它也不会更新上一个“新特性”里程碑,因此不会阻止下次在没有此标志的情况下启动 Chromium 时发生“新特性”。 |
enable-automation | true | 启用指示浏览器由自动化控制。 |
password-store | basic | 指定要使用的加密存储后端。可能的值有 kwallet、kwallet5、gnome、gnome-keyring、gnome-libsecret 和 basic。任何其他值都将导致 Chromium 自动检测最佳后端。 |
use-mock-keychain | true | 在 Mac 上使用 mock keychain 防止出现关于“Chrome 想要使用您存储在 keychain 中的机密信息”的阻止权限对话框。 |
no-service-autorun | true | 禁用服务进程将自身添加为自启动进程。这不会删除现有的自启动注册,只是阻止服务注册新的。 |
no-startup-window | true | 启动时不自动打开浏览器窗口(用于启动 Chrome 以托管后台应用)。 |
no-default-browser-check | true | 禁用默认浏览器检查。对于 UI/浏览器测试很有用,因为我们希望避免显示默认浏览器信息栏。 |
headless | true/false | 在无头模式下运行,即没有 UI 或显示服务器依赖。由 K6_BROWSER_HEADLESS 环境变量设置(默认为 true)。 |
window-size | 800,600 | 设置初始窗口大小。以“800,600”格式的字符串提供。 |
此外,在无头模式下(当 K6_BROWSER_HEADLESS
为 true
时,这是默认选项)设置以下参数
参数 | 值 | 描述 |
---|---|---|
hide-scrollbars | true | 阻止为 Web 内容创建滚动条。对于获取一致的屏幕截图很有用。 |
mute-audio | true | 静音发送到音频设备的音频,以便在自动化测试期间听不到声音。 |
blink-settings | primaryHoverType=2,availableHoverTypes=2, primaryPointerType=4,availablePointerTypes=4 | 设置 blink 设置。格式为 <name>[=<value>],<name>[=<value>],… 名称在 chromium 项目的 settings.json5 中声明。对于布尔类型,使用“true”、“false”,或省略“=<value>”部分以设置为 true。对于枚举类型,使用枚举值的整数值。 |