10

您好我正在考虑使用编码的 UI 测试 (CUIT) 来测试应用程序。我已经尝试过录制选项,但这对我来说不够灵活。如果您在不同尺寸的屏幕上使用它,它会损坏。

我知道您可以手动编写测试代码,但我找不到任何关于如何编写基本测试的好例子。这里有使用 CUITe 的示例,但这些帖子来自 2011 年,我不确定它们与 Microsoft 对 CUIT 的新升级有多大的相关性。

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

并且代码示例或指向好的教程的链接将不胜感激,但特别是我正在寻找一个关于如何开始手动编码我的 CUIT 的示例

4

4 回答 4

6

CodePlex ( http://codeduicodefirst.codeplex.com/ )上的 Code First 编码 UI 测试 API 项目包括一个可以下载的项目演示 - 应用程序和测试。它专为构建 CUIT 测试而设计,不依赖于记录/播放。

如果您要在纯代码的基础上工作,最需要的是一种避免依赖于 CUIT 记录创建的自动生成对象映射的方法。Code-First 项目使用映射到单个页面对象的类来解决这个问题 - 如果我没记错的话,您需要扩展项目代码以使用桌面应用程序。

(我与这个项目没有任何关系——它只是我发现的除了 CUITe 之外的唯一手工编码资源,而且 CUITe 有一段时间没有更新了,这是我最后一次看到的)。

于 2013-07-02T16:43:35.963 回答
2

很多开发人员都不知道这一点,但可以使用 CodedUI 创建 Code First 测试。它没有被提倡,这很糟糕。我认为录制选项是一个脆弱的选项。它使用鼠标坐标,这意味着您必须在 UI 更改时重新创建测试......

可维护的方法是使用页面对象模式(也被其他流行的工具如 Selenium 使用)。这创建了 UI 的抽象,为您提供了更大的灵活性和强类型。

您将获得简单、易读且最重要的是可维护的代码:

var storeHyperlink = new HtmlHyperlink(_browserWindow);
storeHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = "StoreLink";
Mouse.Click(storeHyperlink);

阅读更多

于 2015-04-26T09:38:09.570 回答
1

这是一个视频,展示了如何进行 Code First 编码的 UI 测试:

编码的 UI 测试-DeepDive-Episode3-HandCoding

于 2013-12-03T08:26:36.753 回答
1

不确定是否有人仍在寻找如何最好地手动编码 Coded UI 测试,但 imo 去记录和播放路线以后会令人失望!最好的方法是创建一个自动化框架,该框架定义您想要与之交互的各个对象,并让页面对象来处理您的业务逻辑。如果您正在测试 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)上买了一本书,它清楚地定义了如何设置框架和创建易于维护的代码。不确定它是否可以在任何书店买到,但如果你想看看,这里是亚马逊上的链接

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/上有这本书的折扣码

于 2017-06-26T07:55:33.860 回答