14个小时,却找不到原因???
我已经为一个web应用程序做了一些测试,所有的测试都运行得很好,直到我开始在3台不同的机器上运行测试,所有测试都失败了,但仍在我的开发机器上工作
大多数测试都是手动完成的,我只使用测试生成器来生成UI映射
我使用此演练来使用多个UI映射,并手动执行大部分测试http://blogs.msdn.com/b/anutthara/archive/2010/02/10/walkthrough-using-multiple-coded-ui-maps-in-test-automation.aspx
我是如何生成地图的,-创建新地图-运行此映射的测试生成器-对测试中需要的所有控件进行断言-生成方法-然后从地图中删除生成的方法,因为我不需要它,并获得地图中的所有控件
然后,我在演练中使用相同的方式对测试步骤进行编码
在我遇到问题并解决了问题后,我在其中一张地图上再次重复了这些步骤,但因为我已经手动完成了所有测试,这将花费我几天的时间来更改所有地图中的所有控件名称
我非常仔细地查看了地图的Designer.cs,以发现新旧地图之间的任何变化,但没有什么不同,我确保searchproperties和searchconfiguration没有使用类似于窗口标题之类的东西。我依赖Id、Name和TagInstance,它们都是相同的
我最近在使用编码UI时遇到了这个问题。
测试在我的VS 2013机器上运行良好,它有8 GB的RAM,但在其他有4 GB RAM的机器上似乎总是失败。
为了快速解决问题,我在测试方法中添加了以下内容:
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
后来,我检查了故障点,并根据情况进行了调整;在某些情况下,添加了1或2秒的等待(尽管我讨厌这样做),以允许页面或对象完全打开。