我正在使用Visual Studio 2010 Ultimate - visual c# - codedUI。测试自动化 - CodedUI无法区分应用程序中的不同控件
我正在为一个客户端进行一些自动化测试(烟雾测试,回归测试等),但是我试图做测试自动化的应用程序并不合作。 我已经自动化了所有客户端的Web应用程序,没有任何问题,但对于他们的桌面应用程序,我似乎无法获得任何控件之间的任何唯一标识符。
下面是一个示例codedUI记录,我通过一种树状结构,走在应用程序 - 我强调在列表中几个不同的项目,展开列表中,单击某个项目,浏览一个启动窗口等
/// <summary>
/// SomeRecordedMethod
/// </summary>
public void SomeRecordedMethod()
{
#region Variable Declarations
WinTitleBar uINavigatorTitleBar = this.UISomeRandomCompanyWindow.UINavigatorWindow.UINavigatorTitleBar;
WinEdit uIObjectdescEdit = this.UISomeRandomCompanyWindow.UINavigatorWindow.UIDw_navigatorClient.UIObjectdescEdit;
WinClient uICalendar1Client = this.UISomeRandomCompanyWindow.UIMaintainCalendar1Window.UIItemWindow.uICalendar1Client;
#endregion
// Click 'Navigator' title bar
Mouse.Click(uINavigatorTitleBar, new Point(241, 9));
// Click 'objectdesc' text box
Mouse.Click(uIObjectdescEdit, new Point(19, 11));
// Click 'objectdesc' text box
Mouse.Click(uIObjectdescEdit, new Point(39, 10));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(37, 11));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(20, 11));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(42, 5));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(61, 11));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(632, 141));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(671, 200));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(675, 301));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(686, 396));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(686, 544));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(478, 547));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(579, 552));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(579, 552));
}
注意'objectdesc'和'Calendar [1]'的多个实例。每一次重复的发生都是不同的控制,但是动作记录并没有挑选出来。
当我尝试运行测试时,我明显得到:Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException:播放无法找到具有给定搜索属性的控件。
我是新来测试Visual Studio中的自动化,所以我不知道我有什么选择在这一点上。任何建议将不胜感激。
谢谢
感谢您的信息阿德里安。今天我不打算接触开发者,但我会看看他们是如何编写应用程序的。根据他们十多年前制定该计划的所有帐户。自那时起,他们一直在着手并更新它。我不认为他们最近使用新技术完成了重建 - 我认为他们使用的任何东西都已经有十年多了。 鉴于此,编码UI /动作录制可能不太可能,对吧? – LuFaMa
让我问一个后续问题 - 如果我不能对自己的CodedUI测试进行自动测试,我有什么选择?过去我曾经使用过像Vtask Studio这样的自动化工具,但这些并不是非常强大的工具,只能用于勉强服务。我不想用这样的东西来做一大堆测试。你有什么建议? – LuFaMa
@LuFaMa - 我没有任何建议。 http://en.wikipedia.org/wiki/List_of_GUI_testing_tools可能会给你更多的想法。您对于旧计划的评论支持我的答案中的理论。与开发人员交谈,您可能很幸运,并且发现他们购买了一个控件库,其中有一个新版本可正确支持Coded UI。 – AdrianHHH