使用 API
@grafana/plugin-e2e
包使用 页面对象模型 模式来简化测试的编写并简化代码库的维护。在页面对象模型中,应用程序的每个网页都表示为一个类文件。
类
在 @grafana/plugin-e2e
包中,类表示 Grafana 中的页面或组件。它们的目的在于将常见的 UI 操作封装在一个地方。它们还处理 Grafana 不同版本之间的 UI 偏差。
该包导出类,但这些类也通过 Playwright API 通过所谓的 fixture 公开。
Fixture
@grafana/plugin-e2e
包定义了一组 自定义 fixture,用于促进 Grafana 插件的端到端测试。
以下部分解释了不同类型的页面 fixture。
页面
页面模型对象可以表示页面的新实例或已存在资源的页面。要查看 @grafana/plugin-e2e
公开的页面完整列表,请参阅 Github 存储库。
在测试中使用页面类型的新空实例
要在特定类型的新的空页面中启动测试,请使用页面对象模型名称的驼峰式表示法。
以下示例使用变量 edit page
。使用 variableEditPage
fixture 时,测试将从新仪表板中的空变量编辑表单开始。
test('test variable edit page', async ({ variableEditPage }) => {
await variableEditPage.setVariableType('Query');
});
使用现有资源
要使用指向已存在资源的页面对象模型启动测试,请使用以 goto
为前缀的任何 fixture。
以下示例使用 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 实例,请参阅 设置资源 指南。
预期匹配器
Playwright API 允许您通过提供自定义匹配器来扩展默认断言。@grafana/plugin-e2e
定义了一组自定义匹配器,用于简化某些页面的断言。要查看匹配器的完整列表,请参阅 Github 存储库。