selenium - 如何在 PowerBi Dashboards 上自动化数据验证测试?
问题描述
我是一个小项目的一部分,我们有一个数据仓库并生成 PowerBi 仪表板,这些仪表板显示存储在仓库中的不同类型的数据。
例如,我们可以有一个仪表板视觉效果,以表格的形式显示每个索赔的类型和成本(例如,1000 英镑的盗窃索赔)。
我的问题是,有没有办法创建自动化测试脚本,以便我们可以检查 powerBi 仪表板上显示的数据总和是否正确?
我可能会创建一个测试脚本来比较仪表板的基本查询中的数据——但这将是在进行 DAX 计算之前,然后输出显示在 powerBi 视觉效果上。硒有可能吗?
解决方案
硒是一种可能。我曾在一个有类似需求的客户那里工作,这是一个数据仓库,它报告从数据中提取数据并在显示之前对其进行过滤或聚合。我们构建了一个测试框架来测试数据仓库(测试数据是否被加载并转换到正确的位置)和 Power BI 报告,我们使用 Selenium 从图表中提取数据并将它们与 SQL 的结果进行比较查询数据仓库。
如果您确实走这条路,我有一些建议:
- 尝试使用 Power BI 的“导出到 csv/Excel”功能(位于可视标题的溢出菜单中),因为从某些图表中提取值可能非常棘手。例如,聚集条形图可能会很痛苦,因为您正在处理聚集在某个 X 坐标上的值。
- 如果您无法导出数据,下一个最佳方法是使用大多数图表都有的“显示为表格”选项。这会将任何视觉对象的数据格式化为表格,这比图表本身更容易从中提取数据。不过,您需要注意一些事情,例如某些表格会将其所有列标题塞入角落单元格并用逗号分隔它们!
- 让您的开发人员在任何地方使用 alt-text,因为它会使您的选择器更容易。一旦你让他们在你的所有图表上放置了唯一的替代文本,你通常可以只使用一个 CSS 选择器来查找一个具有等于该替代文本的 'aria-label' 属性的元素。我的大部分框架都是围绕它构建的。
- 自由使用动态等待(WebDriverWait 类对此非常有用),因为 Power BI 将加载报表页面,但图表在呈现之前仍将等待来自服务的查询结果。
使用 Selenium 绝对是一种选择。这可能有点挑战性,因为您需要弄清楚如何随着测试数量的增加而对其进行扩展,并且您必须处理与团队其他成员不同的技能集要求。我构建PowerTester是为了解决其中的一些问题,因为 Selenium 框架最终成为了我的团队在每个 sprint 中可以完成的工作量的瓶颈。
推荐阅读
- powershell - PowerShell 模块不会在 GitHub Docker 容器操作中加载负载
- angular - 通过另一个 switchMap 和过滤器传递 switchMap 效果中的动作值?
- facebook - 在 Facebook Marketing API 中确定 AdSet 的自定义转化操作
- google-cloud-platform - 如何使用 Dialogflow Fulfillment 显示丰富的响应按钮(''芯片)?
- angular - 在网站根目录配置 karma 代理时遇到问题
- html - 如果有内容,我想不出一种方法让我的身体至少有全屏或更多?
- html - 覆盖 react-multiselect-checkboxes 样式
- aws-glue - 在没有 Glue 数据目录的情况下使用 AWS Glue 数据连接
- javascript - Moment.js 日期验证 DD-MMM-YYYY
- google-bigquery - 使用 Dataflow 将文件名和时间戳添加到 BigQuery 中的每条记录中