对应用进行测试和故障排除
现在,您已了解了性能瓶颈以及缓解这些瓶颈的一些方法,本单元会讨论测试方法。 这些方法结合了指导、技巧和发现,适用于性能测试和一般调试。
使用“计时器”控件获取指标
处理数据连接以检索或上传数据时,实际数字很有帮助。 在 Power Apps 中,可以使用计时器控件来捕获公式运行所需的时间。 以下场景向您展示了如何使用以下控件来实现这一目标:
按钮
计时器
文本标签
假设您有一个名为“Workout tracker”的数据源,您的计时器控件名为 Timer1,按钮控件的 OnSelect 属性设为以下值:
Collect(colWorkoutTracker, Filter('Workout tracker', Status = "Active"))
要进行设置,我们首先要将按钮控件的 OnSelect 公式修改为:
Reset(Timer1); UpdateContext({StartTimer: true}); Refresh('Workout tracker'); ClearCollect(colWorkoutTracker, Filter('Workout tracker', Status = "Active")); UpdateContext({StartTimer: false})该公式首先会重置计时器。 然后它将我们用来启动/停止计时器的上下文变量更新为“true”。然后它会构建集合,并将上下文变量设置回“false”。
接下来您需要更新计时器控件的属性;将 Start 属性设置为:
StartTimer。现在,插入文本标签控件来显示时间。
对于标签控件的 Text 属性,将公式设置为:
Timer1.Value现在预览应用,然后选择按钮。
当您的应用处于预览模式时,选择按钮会显示创建集合所需的时间(以毫秒为单位)。
注意
除非应用处于预览模式,否则计时器控件不会开始计数。
如果希望准确了解特定查询所花费的时间,可以使用这种方法。 可以将此数据记录到不同的集合中,然后对这些数字求平均值以确定所需的时间。 还可以在提交数据时应用本概念。 请记住,不仅要从本地计算机测试,还要从用户环境的所有场景测试。
在用户使用该应用的位置进行测试
与其说是方法,这更多是建议。 对于大多数应用构建者来说,运行应用的最佳位置是他们用于生成此应用的本地电脑。 从该计算机进行测试通常会提供最佳结果,但这可能与用户体验不符。 他们经常忘记测试用户运行应用的方式。 例如,如果要构建一个通过移动电话网络运行的移动应用,请确保测试包含相同内容。 设计应用时,需要考虑到移动设备的较小外形规格和不同 Internet 连接的延迟。 前面的计时器测试方法非常适合此情形。 比较在电脑、使用 Wi-Fi 的手机和使用移动电话网络的手机之间的应用查询或上传性能。 确定是否对所有三种方案都满意,或者是否需要针对较慢的网络优化应用。
使用标签来帮助测试
由于应用包含了更复杂的逻辑和更多后台变量以实现该逻辑,请考虑将标签控件用作测试工具包的一部分。 只需在显示变量值的屏幕上添加一个标签,即可帮助您了解应用执行或不执行某种操作的原因。 可以在构建和测试阶段使用标签。 应用处于活动状态时,可以添加其他功能来隐藏和显示这些故障排除工具。
在 Power Apps Studio 中,还可以选择文件和变量来查看所有变量、变量值、变量创建位置及其在应用中的使用位置。
在生成过程中使用标签的另一种方法是在欢迎屏幕上添加标签,可在其中手动显示版本号。 Power Apps 会缓存应用来优化体验。 重复发布时,与自定义 SharePoint 窗体时一样,可能很难确定看到的是什么版本的窗体,因为可能会看到缓存的版本。 在一角添加带 v1 或 v2 的标签,即可随时检查版本。
预览版应用与已发布的应用
使用 Power Apps Studio 的预览功能,可以深入了解应用在发布时的运行方式。 但有时您可能会发现一些不一致,这是由于缓存或本地电脑执行的其他操作,与已发布的应用在播放器中执行的操作存在不一致。 请始终记得在应用发布后测试应用,采用的方式应与用户使用该应用的方式一致。
查看应用的网络活动
现在,您已了解如何在应用中进行测试,还需要查看实际网络调用和性能。 要实现此目的,可使用内置 Monitor 功能。 这样就可以查看应用发出的各个网络调用,还可查看详细信息,如每次调用所需的时间。 从性能角度来看,这非常有用。
要访问 Monitor,可以从左侧工具栏中选择高级工具图标,也可以从命令栏中选择应用检查器图标。 使用这两个选项,您都会看到指向打开 Monitor 的链接。
选择打开 Monitor 后,将在另一浏览器选项卡中打开一个 Monitor 会话,其中包含一个空白活动列表和一条消息:“您已启动新的 Monitor 会话”。
Monitor 现在会跟踪并记录每项应用操作,包括网络性能。 您可用它来查看对数据源的调用、所用的时间以及传入/传出的信息。
此方法的一个示例应用是,确定性能延迟(如前一示例中的计时器控件所测)是存在于应用、网络还是数据源中。 您可将应用置于预览模式,并开始像用户一样使用它。 在下面的示例中,我们使用包含按钮和计时器控件的示例,来了解从源获取数据并构建集合需要多长时间。 请注意,返回的信息可提供时间戳、类别、操作、结果、结果信息、状态、持续时间(以毫秒为单位)、数据源和所选控件(来自应用)。

在这种情况下,大部分时间都花费在等待数据源筛选数据并做出响应。 这说明无法通过更改应用来实现更快的调用。 而是需要将重点放在查询优化或数据源加速上。
Monitor 提供了一些不错的功能,但在本模块中并未全部介绍。 如果您希望了解更多信息,可在总结单元中找到相关链接。 我们介绍的所有方法都可以帮助您对应用进行测试和故障排除。