手动编写 Coded UI 测试

10

嗨,我正在考虑使用编码 UI 测试(CUIT)来测试一个应用程序。我尝试过录制选项,但这对我来说不够灵活。如果你在不同尺寸的屏幕上使用它,它就会出问题。

我知道你可以手动编写这些测试,但我找不到任何好的示例来编写基本测试。这里有一些使用 CUITe 的示例,但这些帖子是从2011年开始的,我不确定它们是否还与 Microsoft 的新版 CUIT 相关。

这些测试需要与我的构建环境集成在 Visual Studio 2012 Ultimate 中,这就是我为什么不使用 Selenium 的原因。

如果能提供代码样例或链接到好的教程将不胜感激,但我特别想要一个关于如何开始手动编写我的 CUIT 的示例。


2
你尝试过直接使用 UI 自动化框架吗?这就是 Coded UI 测试构建的基础。我喜欢这篇教程:http://blog.functionalfun.net/2009/06/introduction-to-ui-automation-with.html - SlightlyCuban
如何将其集成到您的构建环境中? - Arran
我们正在研究将其添加到构建配置中,就像自动化单元测试一样。我仍在等待访问权限,以便能够编辑构建配置文件,但希望不会太久。 - Jeff Finn
@Arran 这里是一个链接,可以将CUIT测试添加到您的构建环境中 http://msdn.microsoft.com/zh-cn/library/ms182465(v=vs.100).aspx - Jeff Finn
4个回答

6
CodePlex上的Code First coded UI测试API项目(http://codeduicodefirst.codeplex.com/)包括一个示例项目,您可以下载应用程序和测试。它旨在构建CUIT测试,而不依赖于记录/回放。
如果您要基于仅代码的方式进行工作,最需要的是避免CUIT录制创建的自动生成对象映射的依赖关系的方法。 Code-First项目使用映射到单个页面对象的类来解决这个问题 - 如果我记得正确的话,您需要扩展项目代码以与桌面应用程序一起使用。
(我与该项目没有任何关联 - 它是我找到的唯一一个手动编码资源,除了CUITe之外,CUITe已经有一段时间没有更新了,据我所知)。

1
最后更新于2012年3月,仅下载了3次... - Jowen

2
不是很多开发人员知道,但可以使用CodedUI创建Code First测试。这并没有得到提倡,我认为这很糟糕。我认为录制选项很脆弱。它使用鼠标坐标,这意味着当UI更改时必须重新创建测试...可维护的方法是使用Page Object模式(也被其他流行工具如Selenium使用)。这将创建UI的抽象,为您提供更大的灵活性和强类型。您可以轻松地编写易于阅读和维护的代码。
var storeHyperlink = new HtmlHyperlink(_browserWindow);
storeHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = "StoreLink";
Mouse.Click(storeHyperlink);

"

阅读更多

"

非常好的回答和链接 - 谢谢 @Jowen - dalcam

1

我不确定是否还有人想知道如何最好地手动编写编码 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定义对象。
我最近在亚马逊上购买了一本书(手动编码Coded UI),其中清楚地定义了如何设置框架并创建易于维护的代码。不确定它是否在任何书店有售,但如果您想查看,这是亚马逊的链接。

https://www.amazon.com/dp/1547000856/ref=sr_1_1?s=books&ie=UTF8&qid=1496767488&sr=1-1&keywords=1547000856

我希望您能够受益。
更新:刚刚谷歌搜索到该书的折扣码http://www.arkenstone-ltd.com/testing-with-coded-ui/

1

你所提到的视频在底部的“视频”部分:http://go.microsoft.com/fwlink/?LinkID=230575。 - Jowen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接