跳到主要内容

使用 API

@grafana/plugin-e2e 包使用 页面对象模型 (page object model) 模式来简化测试编写并减轻代码库的维护负担。在页面对象模型中,应用程序的每个网页都表示为一个类文件。

@grafana/plugin-e2e 包中,类表示 Grafana 中的页面或组件。它们的目的是将常见的 UI 操作封装到一个地方。它们还处理不同 Grafana 版本之间的 UI 差异。

该包导出类,但这些类也通过 Playwright API 以所谓的 fixtures 的形式暴露出来。

Fixtures

@grafana/plugin-e2e 包定义了一组 自定义 fixtures,用于简化 Grafana 插件的端到端测试。

以下部分解释了不同类型的页面 fixtures

页面

页面模型对象可以表示一个页面的新实例,或一个现有资源的页面。要查看 @grafana/plugin-e2e 暴露的完整页面列表,请参阅 Github 仓库

在测试中使用页面类型的新建空实例

要在某个类型的新建空页面中开始测试,请使用页面对象模型名称的驼峰命名法表示。

以下示例使用变量编辑页面。使用 variableEditPage fixture 时,测试将从一个新仪表盘中的空白变量编辑表单开始。

test('test variable edit page', async ({ variableEditPage }) => {
await variableEditPage.setVariableType('Query');
});

使用现有资源

要使用指向现有资源的页面对象模型开始测试,请使用任何以 goto 为前缀的 fixtures。

以下示例使用 gotoAnnotationEditPage fixture 来解析 AnnotationEditPage 模型。调用此 fixture 将导航到现有仪表盘中现有标注的编辑表单。

test('test annotation query', async ({ gotoAnnotationEditPage }) => {
const annotationEditPage = await gotoAnnotationEditPage({ dashboard: { uid: 'trlxrdZVk' }, id: '1' });
await expect(annotationEditPage.runQuery()).toBeOK();
});

要了解如何为 Grafana 实例配置所需资源,请参阅设置资源指南。

Expect matchers (期望匹配器)

Playwright API 允许通过提供自定义 matchers 来扩展默认断言。@grafana/plugin-e2e 定义了一组自定义 matchers,用于简化某些页面的断言。要查看完整的 matchers 列表,请参阅 Github 仓库