跳转到主要内容

使用API

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

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

该包导出类,但类也通过所谓的固定装置通过Playwright API公开。

固定装置

@grafana/plugin-e2e包定义了一套自定义固定装置,这些装置有助于简化Grafana插件的端到端测试。

以下部分解释了不同类型的页面固定装置。

页面

页面模型对象可以表示一个新页面的实例或已存在资源的页面。要查看由@grafana/plugin-e2e公开的页面列表,请参阅Github 存储库

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

要在一个新、空的特定类型的页面中启动测试,请使用页面对象模型名称的驼峰表示法。

以下示例使用变量编辑页面。当使用variableEditPage固定装置时,测试将从新仪表板中的空变量编辑表单开始。

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

使用现有资源

要使用指向已存在资源的页面对象模型启动测试,请使用以goto为前缀的任何固定装置。

以下示例使用gotoAnnotationEditPage固定装置解析AnnotationEditPage模型。调用此固定装置将导航到现有仪表板中现有注释的编辑表单。

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

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

期望匹配器

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