包:@memlab/api
枚举
类
类型别名
RunOptions: Object
用于配置浏览器交互运行的选项,所有字段都是可选的
名称 | 类型 | 描述 |
---|---|---|
chromiumBinary? | string | 如果未指定,memlab 将使用 Puppeteer 安装的 Chromium 二进制文件。如果 Puppeteer 未正确安装 Chromium 二进制文件(例如,在 Docker 环境中)或您可能想要使用不同版本的 Chromium 二进制文件,请使用此选项指定不同的二进制文件。 |
consoleMode? | ConsoleMode | 指定终端输出模式,默认为 default 。有关更多详细信息。请查看 ConsoleMode |
cookiesFile? | string | cookie 文件的绝对路径 |
evalInBrowserAfterInitLoad? | AnyFunction | 在网页初始加载后在浏览器上下文中评估的函数。请注意,此函数在 node.js 上下文中定义,但它将在浏览器上下文中评估,因此该函数不应使用浏览器上下文之外的任何闭包变量。 |
scenario? | IScenario | 测试场景,指定如何与浏览器交互(有关更多详细信息,请查看 IScenario) |
skipWarmup? | boolean | 跳过被测 Web 应用程序的初始页面加载预热 |
snapshotForEachStep? | boolean | 如果为 true,则为每个交互步骤拍摄堆快照,默认情况下为 false,这意味着 memlab 将决定它将拍摄堆快照的步骤 |
webWorker? | Optional <string > | 如果提供此字段,则它指定 Web Worker 作为堆分析的目标。例如,{webWorker: null} 表示分析找到的第一个 Web Worker 的堆。 {webWorker: 'workerTitle'} 表示分析名称为 'workerTitle' 的 Web Worker 的堆。 |
workDir? | string | 指定您希望 memlab 转储堆快照和测试运行的其他元数据的工作目录。如果未提供工作目录,memlab 将在操作系统的临时文件的默认目录下生成一个随机临时目录。注意:调用者有责任确保指定的工作目录存在。 |
RunResult: Object
一种数据结构,包含 run API 调用的结果。
名称 | 类型 | 描述 |
---|---|---|
leaks | ISerializedInfo [] | 从浏览器交互中检测和聚类的泄漏跟踪 |
runResult | BrowserInteractionResultReader | 一种实用程序,用于从磁盘读取浏览器交互结果 |
函数
analyze(runResult
, heapAnalyzer
, args?
)
此 API 使用指定的堆分析来分析堆快照。这等效于 CLI 中的 memlab analyze
。
- 参数:
runResult
:default
| 浏览器交互运行的返回值heapAnalyzer
:BaseAnalysis
| 堆分析的实例args
:ParsedArgs
| 需要传递给堆分析的其他 CLI 参数
- 返回:
Promise
<void
>| 每个分析可能具有不同的返回类型,请查看您用于heapAnalyzer
的分析类的process
方法的类型定义或文档。 - 示例:
const {analyze, takeSnapshots, StringAnalysis} = require('@memlab/api');
(async function () {
const scenario = {
url: () => 'https://#',
};
const result = await takeSnapshots({scenario});
const analysis = new StringAnalysis();
await analyze(result, analysis);
})();
findLeaks(runResult
, options?
)
此 API 通过分析堆快照来查找内存泄漏。这等效于 CLI 中的 memlab find-leaks
。
- 参数:
runResult
:default
| 浏览器交互运行的返回值options
:Object
| 配置内存泄漏检测运行options.consoleMode?
:ConsoleMode
| 指定终端输出模式(请参阅 ConsoleMode)
- 返回:
Promise
<ISerializedInfo
[]>| 从浏览器交互中检测和聚类的泄漏跟踪 - 示例:
const {findLeaks, takeSnapshots} = require('@memlab/api');
(async function () {
const scenario = {
url: () => 'https://#',
};
const result = await takeSnapshots({scenario, consoleMode: 'SILENT'});
const leaks = findLeaks(result, {consoleMode: 'CONTINUOUS_TEST'});
})();
findLeaksBySnapshotFilePaths(baselineSnapshot
, targetSnapshot
, finalSnapshot
, options?
)
此 API 通过分析指定的堆快照来查找内存泄漏。这等效于 CLI 中带有 --baseline
、--target
和 --final
标志的 memlab find-leaks
。
参数:
baselineSnapshot
:string
| 基准堆快照的文件路径targetSnapshot
:string
| 目标堆快照的文件路径finalSnapshot
:string
| 最终堆快照的文件路径options
:Object
| (可选)您可以指定堆分析的模式options.consoleMode?
:ConsoleMode
| 指定终端输出模式(请参阅 ConsoleMode)options.workDir?
:string
| 指定一个工作目录(而不是默认目录)
返回:
Promise
<ISerializedInfo
[]>| 从浏览器交互中检测和聚类的泄漏跟踪来源:
run(options?
)
此 API 运行浏览器交互并查找在浏览器中触发的内存泄漏。这等效于在 CLI 中运行 memlab run
。这也等效于预热,并调用 takeSnapshots 和 findLeaks。
- 参数:
options
:RunOptions
- 返回:
Promise
<RunResult
>| 检测到的内存泄漏以及用于从磁盘读取浏览器交互结果的实用程序 - 示例:
const {run} = require('@memlab/api');
(async function () {
const scenario = {
url: () => 'https://#',
};
const {leaks} = await run({scenario});
})();
takeSnapshots(options?
)
此 API 运行 E2E 交互并拍摄堆快照。这等效于在 CLI 中运行 memlab snapshot
。
- 参数:
options
:RunOptions
| 配置浏览器交互运行
- 返回:
Promise
<BrowserInteractionResultReader
>| 用于从磁盘读取浏览器交互结果的实用程序 - 示例:
const {takeSnapshots} = require('@memlab/api');
(async function () {
const scenario = {
url: () => 'https://#',
};
const result = await takeSnapshots({scenario});
})();
warmupAndTakeSnapshots(options?
)
此 API 预热 Web 服务器,运行 E2E 交互并拍摄堆快照。这等效于在 CLI 中运行 memlab warmup-and-snapshot
。这也等效于预热并调用 takeSnapshots。
- 参数:
options
:RunOptions
| 配置浏览器交互运行
- 返回:
Promise
<BrowserInteractionResultReader
>| 浏览器交互结果 - 示例:
const {warmupAndTakeSnapshots} = require('@memlab/api');
(async function () {
const scenario = {
url: () => 'https://#',
};
const result = await warmupAndTakeSnapshots({scenario});
})();