剧作家 OpenTeleometry 记录器
从 Playwright 测试运行中生成 OpenTelection 痕迹的简单记者. 然后导出这些痕迹到您的 选择的供应商.

安装
依赖关系
用您最喜欢的软件包管理器安装软件包 :
$ npm install @aergonaut/playwright-opentelemetry-reporter --save-dev
您还需要安装 OpenTeleometry 节点 SDK 以及您的供应商为导出痕迹而需要的任何其他软件包 .
$ npm install @opentelemetry/sdk-trace-node --save-dev
初始化 SDK
要收集痕迹,您必须在 Playwright 开始运行测试前初始化 OpenTelemotry SDK 。 最简单
这样做的方法是结束的 globalSetup。例如:
// global-setup.ts
const sdk = new NodeSDK({
traceExporter: new OTLPTraceExporter(),
metricReader: new PeriodicExportingMetricReader({
exporter: new ConsoleMetricExporter(),
}),
});
export default async function globalSetup(_config: FullConfig) {
sdk.start();
return async () => {
await sdk.shutdown();
};
}
注意确保您 globalSetup 函数返回调用函数 sdk.shutdown()这将确保追踪
在 Playwright 退出前导出 .
配置剧作家
配置使用您的播放机 global-setup.ts 和记者:
// playwright.config.ts
export default defineConfig({
globalSetup: require.resolve("./global-setup.ts"),
reporter: "@aergonaut/playwright-opentelemetry-reporter",
})
使用量
生成的 Spans
这个记者为每个测试案例和每个测试案例的每个测试步骤生成跨度. 步长相接 根据Playwright的内部组织. 实际上,这意味着在钩子前后的工作 以嵌入地段分类,以及建立固定物等的工作.
扩展状态
记者会根据每个测试或步骤的状态,设定测试跨度和跨度的状况.
对于步骤跨度,如果在步骤中发生出错(如定位出错或点击出错),则该跨度状态将
设置为 ERROR 而错误消息将被记录在跨度上.
对于测试跨度,该跨度只能被设定为 ERROR 如果测试失败 没想到。测试哪些被跳过或哪些
传球 UNSET。类似地,预期错误(例如,以 test.fail)也将是 UNSET。 。 。 .
附加扩展属性
您可以使用 Playwright 附加属性到测试跨度
测试说明。您的注释 type 必须从前缀开始
pw_otel_reporter. 以便附着在长度。 前缀后的任何内容都将被用作属性名,
,描述将用作属性值.
来建造 type 比较容易,你可以使用 annotationLabel 函数.
import { annotationLabel } from "@aergonaut/playwright-opentelemetry-reporter";
test("example test", async ({ page }) => {
// ...
test.info().annotations.push({
type: annotationLabel("my_annotation"),
description: "My custom annotation!",
});
});
许可证
麻省理工学院.