多次运行编码的 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 自动化测试的主要内容,如果未能解决你的问题,请参考以下文章