多次运行编码的 UI 自动化测试

Posted

技术标签:

【中文标题】多次运行编码的 UI 自动化测试【英文标题】:running coded UI automation test multiple times 【发布时间】:2013-04-02 07:55:36 【问题描述】:

我已经使用编码 UI 自动化(通过记录操作)创建了一个自动化测试。我需要使用数据驱动测试、到 XML 文档的连接字符串多次运行测试。 这需要根据我作为输入提供的数字运行,这个数字每次都需要增加。这在编码的 UI 自动化测试中可能吗?还有其他建议吗?

【问题讨论】:

请澄清。您有一个从 XML 文件驱动的编码 UI 测试数据。 “我作为输入给出的数字”从何而来,它需要为测试做什么?要获得一个随着测试的每个数据驱动执行而递增的数字,您可以在类中使用static int。可以从int dataRowNumber = TestContext.DataRow.Table.Rows.IndexOf(TestContext.DataRow);获取数据源的行号 我给出从 xml 输入的数字。该号码用作注册目的的输入,例如票号。 还是没看懂问题。如果您询问如何编写使用 XML 数据源的日期驱动测试,那么 Schaliasos 的回答提供了一个良好的开端。号码多少?它是 XML 中的一个字段吗?如果是,那么“这个数字每次都需要递增”是什么意思? 【参考方案1】:

您只需创建一个CodedUI Data-driven Test。

DataSource 属性中,将DataAccessMethod 设置为DataAccessMethod.Sequential,这样您的测试将读取所有数据行并按当时的顺序执行它们。

您还需要使用DeploymentAttribute,以便将您的xml文件部署到输出文件夹。

示例:

[DeploymentItem("data.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "\\data.xml", "Iterations", DataAccessMethod.Sequential)]
[TestMethod]
public void CodedUITestMethod1()

    // To generate code for this test, select "Generate Code for 
    // Coded UI Test" from the shortcut menu and select one of 
    // the menu items.
    this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
        TestContext.DataRow["Input1"].ToString();
    this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
        TestContext.DataRow["Input2"].ToString();
    this.UIMap.AddTwoNumbers();

    this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
        TestContext.DataRow["ExpectedResult"].ToString();
    this.UIMap.AssertforAdd();

【讨论】:

以上是关于多次运行编码的 UI 自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

TFS中构建服务器上的编码UI测试Windows应用程序

UI测试

前端自动化测试之UI Recorder(介绍)

使用[测试类]而不是[编码UI测试]时将测试用例与测试方法相关联

如何限制编码的 UI 测试控件搜索

如何为编码的 UI 测试设置文化以从资源文件中获取本地化文本?