VS2010测试功能之旅:编码的UI测试(2)-操作动作的录制原理(下)

上一篇 / 下一篇  2012-03-28 10:32:27 / 个人分类:VS2010功能测试

回顾

在本章上部分介绍了操作动作的录制原理,描述了操作动作是如何录制,UIMap.uitestUIMap.Designer.cs的代码如何生成,以及他们的结构。在这个部分,将着重说明如何通过修改UIMap1.uitest文件的操作动作部分的代码来控制UIMap1.Designer.cs操作动作部分代码的生成,实现第一种方式的自定义编码。

内容简介

上个部分,已经说明了UIMap.uitest文件的结构如下

其中InitializeActionsExecuteActionsCleanupActionsOnErrorAction都是对于操作动作的描述:

InitializeActions:指初始化需要执行的操作动作

ExecuteActions:指测试过程中的操作动作(通过录制所生成的操作都默认放在ExecuteActions

CleanupActions:指测试完毕需要清理资源的操作动作

OnErrorAction:指代异常处理的操作动作

他们都对UIMap1.Designer.cs操作动作部分代码的生成和参数的生成有直接的影响。

严格的说,放在InitializeActions下的操作动作和放在ExecuteActionsCleanupActionsOnErrorAction的动作没有任何本质上的区别,仅仅只是从一个代码可读性上的考虑

编码的UI测试所支持的Actions

如果我们仔细观察过ExecuteActions录制所生成的代码,可以发现有一个共同特点,ExecuteActions的子节点都是以<Action>结尾形式的标签,那么编码的UI测试一共支持多少种的Action呢?这里我整理了一个列表,简单的介绍了测试所支持的Action和功能简介

说明

AggregatedAction

为可以完成几种任务中任何一种的所有操作提供基类。

AssertAction

表示要包含在测试中其他两个操作之间的断言。

BrowserAction

表示可以完成几种浏览器任务中的任何一种的测试操作。

DelayAction

指定执行用户界面(UI)测试中的后续操作后的时间延迟。

DragAction

表示鼠标拖动操作。

DragDropAction

表示鼠标拖放操作。

ErrorAction

表示一个操作,测试记录器使用该操作报告它无法记录某一操作。

InputAction

表示所有基于文本的操作的基类。

KeyboardAction

表示单个的键盘用户操作。

LaunchApplicationAction

表示启动一个应用程序的UI测试操作。

MarkerAction

提供一种在操作序列中插入标记而不会在播放过程中导致任何操作的方法。

MouseAction

表示关于鼠标操作的信息。

NavigateToUrlAction

表示移动到某一URL的操作。

NoOperationAction

表示不执行任何操作的用户界面(UI)测试操作。

RemoveKeysAction

提供有关聚合测试操作声明,从测试结果中移除此操作及之前的所有匹配键操作。

SendKeysAction

表示发送文本或键数组的测试操作。

SetBaseAction

为设置值或设置状态的测试操作提供基类。

SetStateAction

表示一个设置关联元素状态的测试操作。

SetValueAction

表示用于设置值的测试操作。

SharedStepsReferenceAction

为当前测试提供对一组共享步骤的引用。

StringAssertAction

表示一个字符串断言。

TestStepMarkerAction

表示测试操作序列中的一个标记,将记录该标记,但播放框架不使用该标记。

UITestAction

为用于用户界面(UI)测试的测试操作提供基类。

ValidationAction

表示一个验证属性值的操作。

VerifyConfigurationAction

表示一个验证配置的操作。

WarningAction

表示一个操作,UI记录器使用该操作报告它无法正确录制某一操作。

WebDialogAction

表示一个报告Web对话框的操作。

在这里将抽取几个主要的ACTION进行介绍.

通过编写UIMap.uitest文件控制UIMap.designer.cs代码的生成

1.首先我们还是通过添加新项的方式建立一个新的Coded UI Test Map(编码的UI测试映射)

2.之后,直接进入UIMap1.uitest文件,可以发现代码如下

1<?xml version="1.0"?>
2
3<UITestxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"Name=""Id="3efe829a-76df-439e-af0d-8d5c62727a1e"AssemblyVersion="10.0.21008.0"Version="1.0"xmlns="http://schemas.microsoft.com/VisualStudio/TeamTest/UITest/2010">
4
5</UITest>
6
7

3.关闭录制生成器(注:一定要先关闭才能修改,以后也是一样),编码初始化代码InitializeActions

我们还是先使用第一章提到的示例程序下载点我

假设现在如果要操作它,首先需要将其打开,在之前已经简单介绍过编码的UI测试支持的Action,可以把打开这个程序的操作作为InitializeActions(初始化操作)的一员,并为其生成一个方法,那么按照这个思路,在参照前面的Actions列表,可以发现需要两个Action

a.LaunchApplicationAction打开应用程序

b.TestStepMarkerAction为该步骤生成一个方法

现在我们开始编写代码,将其直接插入UITest节点内

1<InitializeActions>
2
3<!—打开示例文件,文件路径按实际情况填写-->
4
5<LaunchApplicationAction>
6
7<FileName>D:\RightDemo.exe</FileName>
8
9</LaunchApplicationAction>
10
11
12
13<!--为之前所有的操作步骤生成¦一个方法,名称为LaunchApplication()-->
14
15<TestStepMarkerActionMarkerInformation="LaunchApplication">
16
17<ParameterName/>
18
19<StepId>-1</StepId>
20
21<Direction>Start</Direction>
22
23<Outcome/>
24
25<Disabled>false</Disabled>
26
27</TestStepMarkerAction>
28
29</InitializeActions>
30
31

编写之后,我们打开录制生成器,点击“生成代码”,可以发现在UIMap1.Designer.cs对应生成了几句代码,其中已经按照要求生成了LaunchApplication()方法和加载应用程序的语句ApplicationUnderTest.Launch(this.LaunchApplicationParams.ExePath, this.LaunchApplicationParams.AlternateExePath),语句如下

1///<summary>
2///LaunchApplication - Use 'LaunchApplicationParams' to pass parameters into this method.
3///</summary>
4publicvoidLaunchApplication()

TAG:

 

评分:0

我来说两句

Open Toolbar