菜单
开源

浏览器选项

要在 Scenario options 中启用浏览器测试,请在 options 属性中添加 browser 配置。

JavaScript
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。这仅在链路追踪生成启用时适用,更多详情请参阅链路追踪输出

以下命令将浏览器选项作为环境变量传递,以启动带有自定义参数的非无头浏览器。

bash
K6_BROWSER_HEADLESS=false K6_BROWSER_ARGS='show-property-changed-rects' k6 run script.js
docker
# 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
windows
set "K6_BROWSER_HEADLESS=false" && set "K6_BROWSER_ARGS='show-property-changed-rects' " && k6 run script.js
windows-powershell
$env:K6_BROWSER_HEADLESS="false" ; $env:K6_BROWSER_ARGS='show-property-changed-rects' ; k6 run script.js

默认参数

启动浏览器进程时包含的默认参数列表。您可以在启动测试时将一个或多个参数传递给 K6_BROWSER_IGNORE_DEFAULT_ARGS 环境变量,以忽略您想忽略的参数。

注意

参数名称列表中已省略开头的 ‘–’。

参数描述
disable-background-networkingtrue禁用在后台运行网络请求的几个子系统。这用于网络性能测试期间,以避免测量噪声。
enable-featuresNetworkService,
NetworkServiceInProcess
要启用的功能名称的逗号分隔列表。
disable-background-timer-throttlingtrue禁用后台页面计时器任务的任务节流。
disable-backgrounding-occluded-windowstrue禁用被遮挡窗口的后台渲染。用于测试以避免不确定性行为。
disable-breakpadtrue禁用崩溃报告。
disable-component-extensions
-with-background-pages
true禁用带有后台页面的默认组件扩展。对于性能测试很有用,因为这些页面可能会干扰结果。
disable-default-appstrue禁用首次运行时的默认应用安装。这用于自动化测试期间。
disable-dev-shm-usagetrue在某些 VM 环境中,`/dev/shm` 分区太小,导致 Chrome 失败或崩溃。此标志为此问题提供了解决方法(将始终使用临时目录创建匿名共享内存文件)。
disable-extensionstrue禁用扩展。
disable-featuresImprovedCookieControls,
LazyFrameLoading,
GlobalMediaControls,
DestroyProfileOnBrowserClose,
MediaRouter,
AcceptCHFrame
要禁用的功能名称的逗号分隔列表。
disable-hang-monitortrue抑制渲染器进程中的挂起监视器对话框。这可能导致页面上的慢速卸载处理程序阻止选项卡关闭,但在这种情况下可以使用任务管理器终止有问题的进程。
disable-ipc-flooding-protectiontrue禁用 IPC 洪水保护。它默认是激活的。一些 javascript 函数可用于向浏览器进程发送 IPC 洪水。这种保护限制了它们的使用速率。
disable-popup-blockingtrue禁用弹窗阻止。
disable-prompt-on-reposttrue通常,当用户尝试导航到 POST 请求的结果页面时,浏览器会提示以确认用户的意图。此开关可用于在自动化测试期间禁用该检查。
disable-renderer-backgroundingtrue设置后,阻止渲染器进程后台化。
force-color-profilesrgb强制将所有显示器视为具有指定的颜色配置文件。接受的值有 “srgb” 和 “generic-rgb”(目前用于 Mac 布局测试)以及 “color-spin-gamma24”(用于布局测试)。
metrics-recording-onlytrue启用指标报告的记录,但禁用报告。这会执行正常客户端用于报告的所有代码,但报告会被丢弃而不是发送到服务器。这对于在 UI 和性能测试期间查找指标代码中的问题很有用。
no-first-runtrue跳过“首次运行”任务,无论是否是首次运行,以及“新特性”页面。这不会丢弃“首次运行”标记,因此不会阻止下次在没有此标志的情况下启动 Chromium 时发生“首次运行”。它也不会更新上一个“新特性”里程碑,因此不会阻止下次在没有此标志的情况下启动 Chromium 时发生“新特性”。
enable-automationtrue启用指示浏览器由自动化控制。
password-storebasic指定要使用的加密存储后端。可能的值有 kwallet、kwallet5、gnome、gnome-keyring、gnome-libsecret 和 basic。任何其他值都将导致 Chromium 自动检测最佳后端。
use-mock-keychaintrue在 Mac 上使用 mock keychain 防止出现关于“Chrome 想要使用您存储在 keychain 中的机密信息”的阻止权限对话框。
no-service-autoruntrue禁用服务进程将自身添加为自启动进程。这不会删除现有的自启动注册,只是阻止服务注册新的。
no-startup-windowtrue启动时不自动打开浏览器窗口(用于启动 Chrome 以托管后台应用)。
no-default-browser-checktrue禁用默认浏览器检查。对于 UI/浏览器测试很有用,因为我们希望避免显示默认浏览器信息栏。
headlesstrue/false在无头模式下运行,即没有 UI 或显示服务器依赖。由 K6_BROWSER_HEADLESS 环境变量设置(默认为 true)。
window-size800,600设置初始窗口大小。以“800,600”格式的字符串提供。

此外,在无头模式下(当 K6_BROWSER_HEADLESStrue 时,这是默认选项)设置以下参数

参数描述
hide-scrollbarstrue阻止为 Web 内容创建滚动条。对于获取一致的屏幕截图很有用。
mute-audiotrue静音发送到音频设备的音频,以便在自动化测试期间听不到声音。
blink-settingsprimaryHoverType=2,availableHoverTypes=2,
primaryPointerType=4,availablePointerTypes=4
设置 blink 设置。格式为 <name>[=<value>],<name>[=<value>],… 名称在 chromium 项目的 settings.json5 中声明。对于布尔类型,使用“true”、“false”,或省略“=<value>”部分以设置为 true。对于枚举类型,使用枚举值的整数值。