【发布时间】:2014-06-18 09:57:51
【问题描述】:
我用五个 UIMap 编写了 UI 项目。其中一个 UIMap 非常大,它涵盖了测试应用程序的几个功能。突然,编码的 UI 播放变得如此缓慢。我将大型 UIMap 中的一些功能分离到单独的 UIMap 中。但是仍然有一些测试方法的运行速度比平时慢。有什么解决方案可以解决这个问题吗?
【问题讨论】:
标签: automated-tests mstest ui-automation coded-ui-tests
我用五个 UIMap 编写了 UI 项目。其中一个 UIMap 非常大,它涵盖了测试应用程序的几个功能。突然,编码的 UI 播放变得如此缓慢。我将大型 UIMap 中的一些功能分离到单独的 UIMap 中。但是仍然有一些测试方法的运行速度比平时慢。有什么解决方案可以解决这个问题吗?
【问题讨论】:
标签: automated-tests mstest ui-automation coded-ui-tests
您可以在 TestInitialize 部分中使用以下设置并检查这是否解决了您的目的。现在我们不需要在 UI 控件忙且未准备好接收输入时添加烦人的睡眠语句。 默认情况下,引擎会检查 UI 线程(前台线程)以确定控件是否准备就绪。 Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.Disabled;
通过实现这一点,您可以减少执行时间。
【讨论】:
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.Disabled; 没有解决播放慢的问题。你认为重新创建 UIMap 会解决这个问题吗?
我还不能发表评论,所以这里是一个答案。
我遇到了同样的问题。见Coded ui Test fails at random times on server
waitforcontrolready 是 PropertyExpressionOperator.Contains 旁边的一个解决方案,用于搜索变量标题。但还要检查 UIMap 中控件的 controlID。它可以根据屏幕上打开的窗口而改变。 我将它们全部删除,除非我 100% 确定它们保持不变。
【讨论】:
我在网上搜索后发现,由于最新版本,主窗口的类名发生了变化。我已经检查了最新的主窗口名称,并按照以下链接Mathew Aniyan's Blog
中的说明将其添加到 UIMap 构造函数中【讨论】: