您好我正在使用编码UI测试(CUIT)来测试应用程序。我尝试过录音选项,这对我来说不够灵活。如果你在不同尺寸的屏幕上使用它,它会中断。
我知道你可以手动编写测试代码,但我找不到任何关于如何编写基本测试的好例子。这里有一些使用CUITe的例子,但是这些帖子来自2011年,我不确定它们与微软对CUIT的新升级有多相关。
这些测试需要与Visual Studio 2012 Ultimate中的构建环境集成,这就是我不使用Selenium的原因。
代码示例或指向优秀教程的链接将不胜感激,但特别是我正在寻找一个关于如何开始手工编码我的CUIT的示例
答案 0 :(得分:6)
CodePlex上的Code First编码UI测试API项目(http://codeduicodefirst.codeplex.com/)包括一个可以下载的项目演示 - 应用程序和测试。它专为构建CUIT测试而设计,不依赖于记录/回放。
如果您打算仅使用代码,那么您需要的最重要的事情是避免依赖CUIT录制创建的自动生成的对象映射。 Code-First项目使用映射到各个页面对象的类来解决这个问题 - 如果我没记错的话,你需要扩展项目代码以使用桌面应用程序。
(我不以任何方式加入这个项目 - 它只是我找到的除了CUITe之外唯一的手动编码资源,而CUITe在一段时间内没有更新,我看到的最后一次。) / p>
答案 1 :(得分:2)
并非很多开发人员都知道这一点,但可以使用CodedUI创建Code First测试。它没有被提倡,这是不好的imo。 我认为录制选项是一个脆弱的选项。它使用鼠标坐标,这意味着您必须在UI更改时重新创建测试...
可维护的方法是使用Page Object pattern(也用于其他流行的工具,如Selenium)。这创建了UI的抽象,为您提供更大的灵活性和强大的输入。
您可以轻松,可读并且最重要的是可维护的代码:
var storeHyperlink = new HtmlHyperlink(_browserWindow);
storeHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = "StoreLink";
Mouse.Click(storeHyperlink);
答案 2 :(得分:1)
这是一个视频,展示了如何进行Code First编码的UI测试:
答案 3 :(得分:1)
不确定是否有人仍在寻找如何最好地手动编码Coded UI测试,但是后来进入记录和回放路线将会令人失望!最好的方法是创建一个自动化框架,用于定义要与之交互的各个对象,并使页面对象能够处理业务逻辑。如果您正在测试Web应用程序,则可以使用通用UITestControls或HtmlControls定义对象。例如:
public static UITestControl EditBox_Password
{
get
{
if ( mEditBox_Password == null || ! mEditBox_Password.Exists )
{
mEditBox_Password = new UITestControl (browserWindow );
mEditBox_Password.TechnologyName = "Web";
mEditBox_Password.SearchProperties.Add (UITestControl.PropertyNames.ControlType , "Edit");
mEditBox_Password.SearchProperties.Add ( UITestControl.PropertyNames.Name , "TxtPassword");
}
return mEditBox_Password ;
}
}
如果您正在测试基于Windows的应用程序,则可以使用WinControls或WpfControls定义对象。
我最近买了一本关于亚马逊(Hand Coding Coded UI)的书,它清楚地定义了如何设置框架并创建易于维护的代码。不确定它是否可以在任何书店中使用,但如果你想看看,这里是亚马逊上的链接
我希望它有所帮助。
更新:只需用Google搜索,并在http://www.arkenstone-ltd.com/testing-with-coded-ui/
上有该书的折扣代码