手编码编码的UI测试

时间:2013-06-21 14:52:32

标签: c# visual-studio automated-tests coded-ui-tests

您好我正在使用编码UI测试(CUIT)来测试应用程序。我尝试过录音选项,这对我来说不够灵活。如果你在不同尺寸的屏幕上使用它,它会中断。

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

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

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

4 个答案:

答案 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);

Read more

答案 2 :(得分:1)

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

Coded UI Tests-DeepDive-Episode3-HandCoding

答案 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)的书,它清楚地定义了如何设置框架并创建易于维护的代码。不确定它是否可以在任何书店中使用,但如果你想看看,这里是亚马逊上的链接

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

我希望它有所帮助。

更新:只需用Google搜索,并在http://www.arkenstone-ltd.com/testing-with-coded-ui/

上有该书的折扣代码