手编码编码的UI测试

时间:2011-01-04 04:58:25

标签: visual-studio-2010 automated-tests coded-ui-tests

我一直在使用VS2010的Coded UI Test(CUIT)功能 录制CodedUI框架时会生成许多分层类。

我想知道(手工编写)CUIT是否会减少创建的代码,是否会像生成的代码那样优化(在搜索元素中)?

还有哪些情况可以手动编码CUIT?

3 个答案:

答案 0 :(得分:4)

CUITe(编码的UI测试增强版)框架适合喜欢手工编码的人。 http://cuite.codeplex.com/

CUITe是在Microsoft Visual Studio Team Test的编码UI测试引擎之上开发的薄层,可帮助减少代码提高可读性可维护性,同时还为自动化工程师提供了许多很酷的功能。

CUITe允许您定义更简单的对象存储库(== UIMap)。每个页面/窗口将在单独的类文件中定义,每个UI控件定义将只是一个内容。您可以将公共控件移动到父类,从而提高可维护性。您还可以根据需要将页面/窗口定义类分类到不同的文件夹中。

答案 1 :(得分:3)

我一直在使用Coded UI,据我所知,记录/生成的代码太复杂且难以维护。

我总是使用手动编码,简单易维护。

以下是适用于Silver-light应用程序的完整示例手动编码UI脚本

[TestMethod]
public void SilverlightHANDCODINGTest()
{
    BrowserWindow br = BrowserWindow.Launch(@"http://localhost:1377/SilverlightApplication1TestPage.html");

    UITestControl sCustom = new UITestControl(br);
    sCustom.TechnologyName = "Web";
    sCustom.SearchProperties.Add("ControlType", "Custom");
    sCustom.SearchProperties.Add("TagName", "OBJECT");
    sCustom.SearchProperties.Add("Type", "application/x-silverlight-2");
    sCustom.SearchProperties.Add("TagName", "OBJECT");

    // sCustom.DrawHighlight();

    SilverlightControl sframe = new SilverlightControl(sCustom);
    sframe.TechnologyName = "Silverlight";
    sframe.SearchProperties.Add(SilverlightControl.PropertyNames.MaxDepth, "-1");
    sframe.DrawHighlight();

    SilverlightEdit sTextBox = new SilverlightEdit(sCustom);
    sTextBox.TechnologyName = "Silverlight";
    sTextBox.DrawHighlight();
    Playback.Wait(2000);

    sTextBox.SetProperty(SilverlightEdit.PropertyNames.Text, "Thank god");

    SilverlightButton sButton = new SilverlightButton(sCustom);
    sButton.TechnologyName = "Silverlight";
    sButton.SearchProperties.Add(SilverlightButton.PropertyNames.DisplayText, "Button");

    sButton.DrawHighlight();

    Playback.Wait(2000);

    Mouse.Click(sButton);

    SilverlightComboBox sComboBox= new SilverlightComboBox(sCustom);
    sComboBox.TechnologyName = "Silverlight";

    sComboBox.DrawHighlight();

    Playback.Wait(2000);

    sComboBox.SetProperty(SilverlightComboBox.PropertyNames.SelectedItem,"Kishore");
}

谢谢,

答案 2 :(得分:0)

你可以手写更少的代码,但它可能不易维护,更容易破坏。在生成代码后,您可以使用partial类有效地覆盖搜索子句。