跳至主要内容

包:@memlab/api

枚举

类型别名

RunOptions: Object

用于配置浏览器交互运行的选项,所有字段都是可选的

名称类型描述
chromiumBinary?string如果未指定,memlab 将使用 Puppeteer 安装的 Chromium 二进制文件。如果 Puppeteer 未正确安装 Chromium 二进制文件(例如,在 Docker 环境中)或您可能想要使用不同版本的 Chromium 二进制文件,请使用此选项指定不同的二进制文件。
consoleMode?ConsoleMode指定终端输出模式,默认为 default。有关更多详细信息。请查看 ConsoleMode
cookiesFile?stringcookie 文件的绝对路径
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 调用的结果。

名称类型描述
leaksISerializedInfo[]从浏览器交互中检测和聚类的泄漏跟踪
runResultBrowserInteractionResultReader一种实用程序,用于从磁盘读取浏览器交互结果

函数

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。这也等效于预热,并调用 takeSnapshotsfindLeaks

  • 参数:
  • 返回: 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

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

const {warmupAndTakeSnapshots} = require('@memlab/api');

(async function () {
const scenario = {
url: () => 'https://#',
};
const result = await warmupAndTakeSnapshots({scenario});
})();
  • 枚举
  • 类型别名
    • RunOptions: Object
    • RunResult: Object
  • 函数
    • analyze(runResult, heapAnalyzer, args?)
    • findLeaks(runResult, options?)
    • findLeaksBySnapshotFilePaths(baselineSnapshot, targetSnapshot, finalSnapshot, options?)
    • run(options?)
    • takeSnapshots(options?)
    • warmupAndTakeSnapshots(options?)