AutoRunner简介

AutoRunner 是自动化的功能性测试工具。功能测试的目标是根据 GUI 的界面或者报表来检查软件的实际功能是否和需求定义的功能

相一致。下面简要介绍一下自动测试的基本概念。

自动测试

自动测试过程就是通过模拟人工操作，完成对被测试系统的输入，并且对输出进行检验的过程。

自动测试是由软件代替人工操作，对被测试系统的 GUI 发出指令，模拟操作，完成自动测试过程。

● 测试脚本

自动测试，就是使用一个程序来测试另一个程序（被测试的应用系统）功能的正确性。如果用来测试的程序本身非常复杂，也需要被测试，

或者编写困难，那么自动测试就失去了意义。

因此，用来测试另外一个程序的程序往往是非常简单的，我们把这个程序称为“测试脚本”。

测试脚本通常在测试工具的 IDE 里执行，并且获得 IDE 的支持。

● 自动记录

当我们编写测试脚本的时候，往往发现编写脚本本身是很困难的：了解脚本的语法、了解测试过程、把测试过程转换称为测试脚本语

句。

自动记录，就是通过记录一个操作过程来获得测试脚本的功能。通过自动记录，我们就能够得到一个操作的基本的脚本，通过修改这个

脚本，我们得到更通用的测试脚本。

● 同步点

在执行测试脚本的时候，测试脚本语句的操作对象是 GUI 的组件。测试脚本通过这个组件的属性（如：名称、位置、 winclass 、

disable 等）来确定哪个组件是我们需要操作的组件。

这个查找组件的过程如果失败，意味着：第一，应用系统的响应比较慢，需要等待一段时间再进行一次定位；第二，该组件不存在。

这个查找、定位组件的过程，我们称为同步点。

AutoRunner 的同步点都是隐含方式的：在操作对象的时候进行自动同步，自动设置同步点。

● 检查点

测试的目的是检查数据是否正确。

在测试的过程中，我们需要检查某个组件的某些属性满足某个条件。这个检查的位置和条件，我们称为检查点。

在 AutoRunner 中，使用 check （ " objectname " ， " property " ， " 期望值 " ）来作为检查点的脚本语句，它检查对象

objectname 的属性 property 是否和期望值一致。

在使用中，可以使用检查点来检验系统的各个方面，如数据库、 GUI 属性等。

● 参数化与数据驱动

测试脚本是针对一个测试过程的。一个测试过程往往需要众多的数据来测试。通过自动录制得到的脚本，所有的输入数据都是常数，

是固定的。

如果需要使用一个测试脚本测试多组数据，就需要对脚本进行参数化，把固定的常数修改为来自数据源变量。 这个过程我们称为参数化。

采用了参数化的脚本，我们称为数据驱动的模式。

使用 AutoRunner 完成自动测试 :

● 通过录制的方式自动生成测试脚本，不需要用户通过编写测试脚本来创建；

● 通过检查点向导来创建检查点，只面向业务，不需要手工修改脚本；

● 自动的参数化和数据驱动支持，一步到位的创建数据驱动脚本；

● 支持java 脚本，便于系统扩展。


IDE环境概述

集成开发环境：(Integration Developmental Environment 简称IDE)软件是用于程序开发环境的应用程序，一般包括代码编辑器、编译器、调试器和图形用户界面工具，也就是集成了代码编写功能、分析功能、编译功能、Debug功能等一体化的开发软件套。所有具备这一特性的软件或者软件套(组)都可以叫做IDE。如微软的Visual Studio系列，

Borland的C++ Builder、Delphi系列等。

2. IDE环境四个区域:

a. PE区（Project Explorer）：创建项目，创建测试用例，进行项目浏览，切换对象浏览。

b. SIC区（System Information Cue）：进行系统信息查看，局部变量以及变量查看。

c. 脚本操作区：对测试脚本编辑。

d. Logger区：测试脚本标准输出，查看测试信息，查看修改对象属性。


AutoRunner功能测试工具简介

AutoRunner自动测试工具，是黑盒测试工具，可以用来完成功能测试、回归测试、每日构建测试、自动回归测试等测试工作。AutoRunner是具有脚本语言、提供针对脚本完善的跟踪和调试功能的、支持IE测试和Windows Native测试工具。

产品可以进行：

l 基于B/S架构测试——对B/S系统进行功能测试，支持各种B/S应用和Web网站的测试。

l 基于C/S架构测试——对C/S系统进行功能测试，支持大多数的C/S系统测试。

l Net测试——对.Net类型的应用软件进行功能测试；支持标准Windows应用程序测试和.Net应用程序测试；

产品特点：

l 使用JAVA语言作为脚本语言，便于学习与使用。

l 提供了强大的测试案例编辑功能。

l 支持各种同步点，包括识别自动同步点和自己扩展的同步点。

l 支持手动参数化和自动参数化。

l 支持模糊识别，通过对组件设置和权重识别来实现模糊识别，提高了脚本执行的可靠性和兼容性。

l 支持JAVA语法分析的编辑器，关键字提示，提高脚本编写的效率。

l 支持debug功能，可以方便的进行脚本调试。

l 支持测试跟踪调试，实现了JAVA的跟踪体系：JDA。

l 支持测试过程的错误处理功能。

l 支持Java组件的回放和录制。

l 支持识别DATATABLE数据表格。

l 新增录制脚本窗口最小化功能，方便录制时查看录制的脚本。

l 新增关键字视图功能。

l 新增组件库，方便对对象属性进行操作。

l 新增多脚本连贯执行功能。

l 文本校验功能增强，可以对90%的静态文本进行校验。

AutoRunner技术要点

1、支持JAVA测试脚本，实现了JAVA Debug Interface。

AutoRunner工具采用标准JAVA作为测试脚本语言，并且支持和实现了JAVA Debug Interface，能够在IDE环境中对脚本进行调试和跟踪。

在测试脚本执行的时候，可以以正常方式执行脚本，也可以以Debug的方式来执行脚本，便于发现脚本中的错误和问题。

2、支持同步点和校验点。

测试脚本支持同步点和校验点，保证脚本能够准确执行，对数据进行检验。

同步点包括GUI的自动同步和增加的提高脚本执行可靠性的同步点。

校验点，允许用户在某个时刻从被测试系统中获取组件的信息，例如：一个对话框上的按钮的名字和是否被激活等属性信息。

3、支持数据驱动。

AutoRunner支持数据驱动脚本。

能够通过数据驱动的方式来控制脚本运行的分支。

4、有权重的模糊识别组件技术。

在脚本执行过程中，支持模式识别组件，提高了识别效率，提高了脚本的兼容性和可靠性。

组件的识别，可以通过IDE的组件的识别权重进行设置。

AutoRunner提供了两种方法来设置模糊识别权重：第一，通过修改系统的配置文件来修改默认的识别权重。它控制了所有录制得到的系统属性的识别权重；第二，可以在IDE中单个修改某个组件的权重。

模糊识别的价值，在于当用户的UI不断被修改的时候，测试脚本仍然能够位置发生改变或者其他非重要信息发生改变的组件，降低脚本被重写的可能性，提高工作效率。

5、JAVAGUI测试，采用JAVA Accessible bridge技术；

实现JAVA Accessible Bridge技术，完美的实现了针对JAVAGUI应用的测试，可以实现自动录制和脚本执行。

被测试系统不需要做任何修改就可以进行测试。

6、IDE框架，支持通过plugin的方式支持不同的测试插件，如JAVAGUI，VT100类型字符终端，IE浏览器、Window .net.

支持强大的IDE，通过支持不同插件的方法来支持对不同的被测试对象进行测试，包括：录制、执行。

当被测试对象的技术标准进行修改，AutoRunner的IDE不需要进行任何修改，只需要修改相关插件，提高了产品的可靠性和稳定性。

7、自定义虚拟组件。

在测试过程中，存在很多特殊的、一般技术难以访问的控件。

AutoRunner通过允许用户自定义组件来访问这些特殊控件，提高了自动化测试的工作范围。

上海泽众软件科技有限公司

www.spasvo.com

021-31357887


AutoRunner的安装使用

1.进入本公司网站www.spasvo.com注册账户，

2. 注册之后登录即可下载AutoRunner

3.AutoRunner没有license的情况下可试用15天。

4.如果想长期试用需要申请license,申请license的过程： 打开公司网站 www.spasvo.com 下载license申请工具或是在AutoRunner 安装目录下选择reqlic.exe文件。（如下图所示）

5.生成.req文件

6将req文件上传到www.spasvo.com上，我们会通过用户注册时的邮箱将license 文件发送至您邮箱

7收到license文件后将其放至AutoRunner根目录


AutoRunner的环境配置

关于AutoRunner的运行环境JDK的配置

1.首先请确认贵公司安装的JDK版本。AutoRunner支持JDK1.5或更高版本。请在一台电脑上只安装一个JDK版本，虽然在理论上安装多个JDK版本，并可以通过设置环境变量的方法来指定某一个JDK，但是实际运行中，由于一些不可预见的异常，导致JDK与AutoRunner不能互相识别，可能会产生不能录制的错误。所以务必请您在一台电脑上只安装一个JDK版本。

2. JDK配置的方法如下：

右键点击我的电脑“属性”，选择“高级”。

‚点击环境变量。

ƒ在（fulei用户名）的用户变量中新建变量。

变量名：JAVA_HOME

变量值：E：\Program Files\Java\jdk1.6.0_20 即JDK所安装的路径，请以实际安装路径为准。

变量名:PATH

变量值：E：\Program Files\Java\jdk1.6.0_20\bin即JDK所安装下bin的路径，请以实际安装路径为准。

变量名：CLASSPATH

变量值：.;E：\Program Files\Java\jdk1.6.0_20\lib即JDK所安装下lib包的路径，请以实际安装路径为准。

以上C：\Program Files\Java\jdk1.6.0_204只是举一个例子，用户要根据自己所安装JDK的路径和实际JDK的小版本号来配置。


用户界面

这个章节，我们将向用户描述用户界面，如： IDE ，菜单、工具条等。

IDE

在 " 快速开始 " 和 " IDE环境" 中，我们已经看到了系统的 IDE 环境。这里再介绍一下：

【项目浏览器】

项目浏览器用来显示当前 IDE 中所有的项目，并且显示项目中的脚本以及包（ package 是 java 的概念，也可以简单的理解为一个目录）。

每个项目都显示为一颗树，树的节点是包或者类（测试脚本类）。

项目浏览器上的节点，如果是包，双击可以打开；如果是类，则双击可以把这个类在编辑器上打开。

树支持鼠标右键菜单，支持删除、增加等操作。

【关键字视图】

AutoRunner中的关键字视图功能是把当前AutoRunner的脚本给对象化 ，并以树的形式展现在用户面前，给不懂得编写测试脚本的人提供了编写脚本的方法，能够通过配置来实现脚本。

它使用树的结构。

用关键字的形式将测试逻辑封装在数据文件中，测试工具只要能够解释这些关键字即可对其应用自动化。

主要关键字包括三类:被操作对象（Item）、操作（Operation）和值（value）。

【脚本编辑器】

可以编辑脚本。

允许设置行断点。

【信息提示区】

对正在执行的操作进行提示和警号。

如果在脚本编辑器中报错，则可以在这部分中查看报错信息。

【变量查看区域】

查看运行时的变量的值。

【局部变量查看】

查看运行时候当前类实例的变量值。

【运行时刻的标准错误和标准输出】

在脚本执行的时候的标准错误和标准输出。

可以显示脚本中所要求打印输出的语句。

可以显示校验结果。

若运行报错，则会显示脚本中的报错语句，方便用户找出不能正确执行原因。

【数据参数表】

显示脚本中对应的参数所要运行的数值。

可以一次运行多变（依照参数行而定），例如：该脚本中有三行参数，则脚本会自动执行三遍不同参数值的脚本。

菜单工具条


设置与选项

AutoRunner 具有很多的设置项目：

首选项

允许设置外观、编辑器、字体。

以上是字体设置，和windows标准基本相同。

以上是热键设置，通过设置热键能够修改系统的热键响应。

Options

这个设置有众多的选项：
Colorize Source code as Java
是否按照java的语法来显示脚本，如关键字、字符串等。

display line number at view
是否显示行号。

show toolbar
是否显示工具条

stop in main() method when launching
是否在debug的时候，一进入main就自动停止。


AutoRunner属性介绍

基本设置

Application AutoRunner的基本设置：

可以通过选项进行调整，选项中提供首选项、JDK设置、选项、窗口风格。

1．在首选项中，包含外观，编辑器颜色，热键设置，字体设置，其他调整。

2．在JDK设置中，可以查看当前java home设置，可对java VM进行设置，默认为安装时jre的路径，例如C:\Program Files\Java\jre1.6.0_05。

3．在选项中：可以进行Java语法颜色设置，java语法分析，显示行号，记住窗口信息，调试时自动弹出窗口，使用短类名显示，显示工具条，使用小按钮工具条，以及USE Classic VM when Launching debuggee，Add *. To breakpoints with unqualified classnames，Stop in main() method when launching设置。

4．在窗口风格中可以根据个人喜好进行选择，可供选择的有Metal，CDE/Motif，Windows，Windows Classic。

组件库

1．组件库用来查看对象的属性。对象包括两种：屏幕和组件。

屏幕的次序就是在自动录制过程中的顺序。屏幕包括了在它上面的组件。组件就是具体的操作对象，如：编辑框、checkbox、combobox、button 等。在IE中，还包括链接、图片等浏览器元素。

2．在组件库中，所有的对象每一个都属于一个 Window，但是那只是为了用户查看方便。实际上，在脚本使用对象的时候，他们不属于任何一个窗口，是独立存在的。因此，所有的组件都不允许重名。

3. 在组件库中，选中任何一个元素，都会在“对象属性”区域中看到这个对象的属性，每个元素的属性都含有三个值“Key”，“Value”，“Weight”。

4. 在组件库中，选中一个元素，在组件库窗口中可以对该元素进行Copy、Update、Add、Pate等操作。

5. “对象属性”（“Key”，“Value”，“Weight”）区域：

a. 显示选中对象的属性。这个属性由Application AutoRunner 的配置文件 WProperty.xml 定义。

b. 对象是通过Application AutoRunner 自动录制的时候从 Windows 系统中获得的。

c. 对象的属性我们把它作为一个表格来显示，它有三列：属性名、值、权重。

d. 所有的值都转换为字符串类型；

权重定义与模糊识别

1. 权重是当Application AutoRunner 执行测试脚本的时候，识别这个组件需要的条件要素。例如：权重为 100 ％的 size ，说明在必须找到一个 size 相符合的组件。

2. 使用权重识别，是Application AutoRunner 的一个重要功能。具体的定义如下：识别失败的所有属性的权重相加如果大于等于 100 ，则识别失败。例如，两个权重为 50 的属性，两个属性都匹配失败，则失败的权重和为 100 ，则识别失败（ AutoRunner 对识别失败会报告 同步错误）。而两个权重为 30 的属性，如果匹配失败，则可以认为识别成功。

3. 权重的使用，在Application AutoRunner 方面来说，就是提供了一个强大的系统容错平台：当用户的应用系统发生内在变化，Application AutoRunner 仍然具有很高的容错性，保证应用发生了内在的修改之后，脚本可以复用。权重的最重要作用，就在于在开发过程中，由于应用系统不断的变化，而Application AutoRunner 仍然能够在这个变化的过程中保证脚本的复用。

参数化

1. 编写的测试脚本如果输入、输出数据使用的是常数（常量），那么当这个脚本执行的时候，只能够测试一组数据。而实际情况是一个案例往往需要测试多组数据（边界条件、异常情况）。设置参数化是允许脚本从一个文件中或者变量中读取输入、输出数据的过程。

2. 设置参数化的过程：在脚本编辑器中右键鼠标选择“数据参数化”，此时可以看到脚本中所有SetValue中，“Object”后的“Value”位置的值被DS.Fetch（）所代替，括号内为“Object”。点击创建脚本数据源，在项目的文件夹里将看到以脚本名作为名称的.csv文件，打开此文件，可以看见有二列值，第一列为“Object”，第二列为“Value”，我们可以在第二列根据相应地“Object”进行参数的“Value”修改，从而达到更改参数的目的。

验证点

1. 对UI的输出结果进行校验，把结果和预期数据比对，这个执行点就称为“验证点”。或者说，是获得UI组件属性信息的执行点。验证点不会自动生成，需要测试人员手工创建。验证点是确定测试是否通过的重要标志。

2. 在需要添加验证点的位置，点击“添加验证点”图标，弹出增加验证点对话框，此对话框有三个属性，对象，属性，值。我们可以通过选择不同的对象，不同的属性，需求的值从多个角度验证。，Application AutoRunner提供了多种验证点方式，有：KeyboardShortcut、Style、State、Help、DefaultAction、Value、Description、Position、ExStyle、WinClass、Name、Role、Location等。

设置断点调试

在调试过程中，我们需要通过设置断点来判断定位脚本的出错所在，设置了断点，就可以在测试脚本中的指定位置停止脚本的运行。设置断点后，该行的行标显示为蓝色，此时需要编译后方可运行，编译成功后，该行的行标显示为绿色。增加断点的方式，可以用鼠标点击需要停止行的行标，当显示为蓝色时，即为成功设置。也可以使用鼠标右键进行设置。

增加组件与虚拟组件

1. Application AutoRunner提供了添加组件，在组件库中，可以通过添加窗口和添加组件进行设置。添加窗口步骤：点击“组件库”按钮，在弹出的窗口中点击“Add”按钮，点击后，自动录制开始，点击需要添加的窗口，此时需要添加的窗口自动显示在窗口列，点击结束录制，完成此次添加。添加组件步骤与添加窗口同。

2.当系统遇到无法识别的组件，允许用户通过定义虚拟组件来进行操作，保证自动化测试“自动”执行。选择需要添加虚拟组件的窗口，点击鼠标右键，选择添加虚拟组件，即可完成添加。

关于脚本环境

1. 关于脚本环境：Application AutoRunner的脚本语言是标准的Java环境，学习过Java的用户，可以非常方便地在脚本中添加各种设置。

2. 关于脚本多次运行，以及多个脚本先后运行，均可在脚本语言中通过添加循环及调用来实现。

3. 在脚本中添加简单的语句可实现等待，如：Sleep（1）；表示等待1秒。

静态文本校验

在实现自动化测试过程中，通常会有对一些对话框或者网页中静态文本校验的需求。因为此类控件比较特殊，所以我们在AutoRunner的脚本编辑器中通过同时按住Ctrl+Alt键来录制此类对象。之后只需要对Ctrl+Alt键录制的对象进行标准的校验流程即可。（请参考“验证点”）

关键字驱动

1. 关键字驱动脚本技术是数据驱动脚本技术的一种扩展，它不仅实现了数据和脚本的分离，同时也实现了业务同脚本的脱离，用关键字的形式将测试逻辑封装在数据文件中，测试工具只要能够解释这些关键字即可对其应用自动化。主要关键字包括三类:被操作对象（Item）、操作（Operation）和值（value）。

2. AutoRunner中的关键字视图功能是把当前AutoRunner的脚本给对象化 ，并以树的形式展现在用户面前，给不懂得编写测试脚本的人提供了编写脚本的方法，能够通过配置来实现脚本，方便一些不知道如何编写脚本的用户对树结构进行操作也能编辑成一个完善的脚本，便于执行。


使用 AutoRunner

使用说明

在上一个章节，说明了 AutoRunner 如何创建项目、如何浏览资源、如何录制脚本、执行脚本。

但是还没有说明如何使用一个脚本来测试大量的数据，也没有说明当应用被修改了一部分，如何修改资源文件。

另外，由于脚本都是自动生成的，那么脚本的基本结构是怎么样的，都没有提到。因此，在这个章节，我们将要详细说明这些功能。

一，测试脚本方法说明

一个脚本如下：

package demo;

import com.AutoRunner.testcase.*;

public class cal extends TestCase {

public cal() {

super(cal.class.getName(), 5000);

}

public static void main(String[] args) {

cal calinstance = new cal();

DataSource DS = new DataSource("demo.cal");

try {

DS.open();

DS.select("default_value");

calinstance.test(DS);

} catch(SyncException se) {

} catch(ResourceNotFoundException rnfe) {

} finally {

DS.close();

calinstance.stopRunning();

System.out.println( calinstance.toString() );

}

}

public void test(DataSource DS) throws SyncException, ResourceNotFoundException {

setWindow("SciCalc_计算器");

setValue("Edit","1");

click("Button_8");

setValue("Edit","2"));

click("Button_*");

setValue("Edit","3");

click("Button_7");

setValue("Edit","4"));

click("Button_=");

setValue("Edit","5");

check("Edit", "Value","666");

check("Edit", "Value", "hhh");

check("Button_7", "Value", "Value");

}

}

我们可以看到，测试脚本是继承来自 TestCase 类。

测试脚本基本上是建立在类 TestCase 的基础上的。

以下是最最常见的类别，并不是全部的类别：

TestCase 类的方法 | 说明
setWindow("windowname_windowtitle") | 激活窗口，根据窗口的 title
setValue("object", "value"); | 设置组件 object 的值
getValue("object"); | 获取组件 object 的值，返回字符串
getProperty("object", "property1"); | 获取组件 object 的 property1 属性，返回字符串
click("object"); | 点击组件 object
pressKey("object", "value"); | 在对象“object”中模拟键盘输入字符串“ value ”
select("object"); | 发送 “ 选中 ” 事件给 “ object ”
check("object", "property1", expectValue"); | 检查对象“ object” 的属性 “ property1” 是否为期望值“ expectValue ”
setSynchronizationTime(long); | 设置同步超时等待的时间，单位为毫秒
sleep(int sec) ; | 等待的时间 ，单位为毫秒
stopRunning(); | 关闭执行的钩子资源

TestCase 属于包 TestCase.jar ，这个包包括：

类 | 说明
SyncException | 同步错误的 Exception
ResourceNotFoundException | 资源没有找到 Exception
TestCase | 主类
DataSource | 数据源操作类

二， 手工修改脚本

· 功能描述：支持用户编辑脚本

· 处理流程：在 AutoRunner 的编辑器中编辑脚本

· 限制： 无

· 支持 java 关键字显示、字符串显示等；

· 支持复制、粘贴、剪切；

三，异常处理

· 功能描述：在测试脚本执行的过程中，会出现两种异常：第一，同步异常（ SyncException ）；第二，资源无法找到异常（ ResourceNotFoundException ）。第一种异常是由于被测试系统修改导致对象无法找到引起的，应该捕获并且做处理；第二种异常是由于编写程序不慎(对象名错误)引起的，可以认为是程序编写错误。

· 处理流程：当异常出现后，系统不再继续执行。测试人员可以编写统一的出错处理程序来处理这个异常。

· 限制：无

四，参数化

在第四章中，我们创建了一个脚本，这个脚本向组件输入了常量。

在实际的测试中，我们需要在一个输入次序中，向不同的组件输入不同的多组数据。

另外，还有很多的相关应用，需要把一个功能的输出作为另外一个功能的输入。

因此，我们需要进行参数化，实现对一个输入次序的多组数据输入。

AutoRunner 帮助用户解决了第一类问题：即多组数据从数据文件读入再输入的问题。对于需要把一个功能的输出作为另一个功能的输入，这种情况太灵活的， AutoRunner 需要用户自己编写应用来解决。

1， 将脚本转换为数据源格式

· 功能描述： 把非参数化的脚本自动转换为参数化的脚本，并且自动创建数据模板。

· 处理流程： 在脚本编辑器中点击鼠标右键 → 【数据参数化】

· 限制： 已经创建为数据源格式的脚本无法再次转换（系统会提示错误）。

· 界面：

· 详细操作：

转换完成后的脚本如下：

package demo;

import com.AutoRunner.testcase.*;

public class cal extends TestCase {

public cal() {

super(cal.class.getName(), 5000);

}

public static void main(String[] args) {

cal calinstance = new cal();

DataSource DS = new DataSource("demo.cal");

try {

DS.open();

DS.select("default_value");

calinstance.test(DS);

} catch(SyncException se) {

} catch(ResourceNotFoundException rnfe) {

} finally {

DS.close();

calinstance.stopRunning();

System.out.println( calinstance.toString() );

}

}

public void test(DataSource DS) throws SyncException, ResourceNotFoundException {

setWindow("SciCalc_计算器");

clickControl("Button_1");

clickControl("Button_+");

clickControl("Button_2");

clickControl("Button_=");

setValue("Edit",DS.fetch("Edit1"));}

}

对数据源的操作，定义来自 TestCase.jar 中的类 DataSource ，说明如下：

public class DataSource {

public DataSource(String projectname, String dataname) ;

public DataSource(String dataname);

public boolean open();

public void close();

public boolean select(String recordid);

public String[] fetch(int pointer);

public String fetch(String columnname);

public boolean next() ;

public void first() ;

}

方法说明：

方法 | 说明
public DataSource(String dataname); | 构造函数， dataname 为绝对路径文件名。
public DataSource(String projectname, String dataname) ; | 构造函数，项目名和具有包名字的类名。
public boolean open(); | 打开数据文件。
public void close(); | 关闭数据文件。
public boolean select(String key); | 根据关键字 key 在数据文件中选中记录。
public String[] fetch(int pointer); | 根据指针从指定记录中获取数据。
public String fetch(String columnname); | 从当前记录中获取值（根据列名）
public boolean next() ; | 取当前记录的下一条记录。
public void first() ; | 把指针指向第一条记录。

上面自动创建的测试脚本就包括了上面的方法。

2，创建数据模板

· 功能描述： 根据当前的脚本，创建跟脚本相关的数据源文件（文件存放在项目数据源目录下）。如果该文件已经存在，则覆盖这个文件。

· 处理流程： 设置完参数化后会自动生成数据模板

· 限制：工作数据源是一个具体的目录。每个项目都可以制订自己工作数据源。

· 界面：（略）

C:\dedede为脚本目录

· 详细操作： 打开项目目录接可以看到脚本文件以及数据源文件“aaaaaaaa.csv”

· 当转换完成后，用户就可以查看项目的数据源目录下的数据文件了。

3，使用数据模板中的数据

在方法 Test （ DataSource DS ）中，可以使用 DS 从数据文件中获取到的数据来执行操作。

具体的数据，需要一个 key 来指定使用哪一组数据。

Select （）方法指定了 key 。

具体的数据文件格式如下：

五，脚本调试

AutoRunner 支持强大的脚本调试功能。

为什么需要调试？因为脚本本身可能比较复杂，在复杂的脚本执行的时候，很可能会存在一定的错误。为了重现和捕获这些错误，就需要对系统进行跟踪和调试，并且随时查看变量的 value 。

跟调试相关的工具条：

1，设置调试环境

· 功能描述： 操作系统可能安装了多个 jdk 。 AutoRunner 需要知道当前使用哪一个 jdk 。

· 处理流程： 菜单【选项】→ 【 JDK 设置】

· 限制：

· 界面：（略）

· 详细操作：

可以设置：

第一， JDK 的位置；

第二， Java 命令；

第三， 启动参数；

第四， 启动之后是否需要暂停；

2，设置断点 / 取消断点

· 功能描述：只有设置了断点，在系统调试的时候在会暂停下来。断点是行断点，它有三个状态：第一，激活的断点；第二， disable 的断点；第三，没有断点。

· 处理流程： 使用鼠标在编辑器的行号上“单击”，会出现蓝色 / 灰色。蓝色代表激活的断点，灰色是 disable 的断点。

· 限制： 需在脚本区代码行进行操作，代码空白段限制增加断点。

· 界面：（略）

· 详细操作： 在具体需要增加断点的位置，点击鼠标右键，选择增加断点，或者在具体的代码行标处单击左键，即可完成。设置好后需要编译运行。

3，启动跟踪

· 功能描述： 启动跟踪调试状态。对 AutoRunner 来说，第一步是编译当前的脚本，如果编译错误，系统就停止了，不会启动跟踪。 -- 会把编译错误显示在消息框中。

· 处理流程： 菜单【调试】→ 【调试启动】

· 限制：

· 界面：（略）

· 详细操作：

· 下图显示跟踪状态，并且停在一个断点上（断点 31 行）。

4，查看变量的值

· 功能描述： 我们需要查看一个变量的值，来确定执行状态。

· 处理流程： 菜单【选项】→ 【 JDK 设置】

· 限制：

· 界面：（略）

· 详细操作：

下图为当前类的变量。

下图为查看变量DS：

5， 单步执行

· 功能描述：在跟踪状态，需要一步一步的执行，来查看变量。

· 处理流程：

使用菜单【调试】 → 【单步跳过】（快捷键 F12 ）：一次执行完本行所有的操作，进入下一行；

· 菜单 【调试】 → 【单步跳入】（快捷键 F11 ）：如果当前行存在其他的方法调用，则进入该调用；

· 菜单【调试】 → 【单步跳出】（快捷键 F2 ）：从当前方法跳出。

· 限制：无

· 界面：下图

· 详细操作：

6，结束跟踪

· 功能描述：结束当前跟踪。

· 处理流程：菜单【调试】 → 【停止跟踪】

· 限制：无

· 界面：下图

· 详细操作：（略）

六，运行同步

1， 自动同步

· 功能描述：当测试脚本运行的时候，如果需要对组件或者窗口进行操作（激活、 setvalue 等），就需要在窗口上查找这个组件，如果这个组件由于应用系统响应等原因还没有出现，那么测试脚本会等待一段时间，直到这个组件出现，然后完成操作，这就是自动同步。如果无法等到，则会抛出一个 SyncException 。

· 处理流程：自动完成，出错会抛出 SyncException （在 TestCase.jar 定义）。

· 限制：无

· 界面：

· 详细操作：（略）

2，同步错误

· 功能描述：出现同步错误，抛出一个 SyncException 。

· 处理流程：脚本需要捕获此异常，并做处理。

· 限制：无

· 界面：下图

· 详细操作：

在系统的标准输出窗口中，会出现错误提示：对象不存在。

七，修改组件库

资源文件保存在项目的根 目录下，和对应的测试脚本文件同名，但是后缀不同，以 .xml 结尾，是一个 xml 文件。

在 AutoRunner 里面，用户不需要关心这个文件的格式，因为这个文件被显示在【组件库】中。如下图：

● 对组件库分为三级：脚本根节点、窗口节点、组件节点。

● 根节点没有属性，可以忽略；

● 窗口节点，为了便于查看，按照用户记录的顺序排列；

● 组件节点，也按照顺序排列。所有的组件节点都不允许同名（在根节点范围内）。

1， 添加组件

· 功能描述：给当前脚本添加组件。

· 处理流程：点击组件库，点add。

· 限制：无

· 界面：下图

· 详细操作：

Add开始后会开始录制，但其录制的内容不加入脚本中，只是将录制的组件添加到组件库中

2，删除、升级组件

· 功能描述：删除、升级组件。

· 处理流程：打开组件库选中组件进行删除。或点updata对所录的组件进行修改

· 限制：无

· 界面：下图

· 详细操作：

● 【删除组件】

该项删除所选中的组件。

删除之后无法恢复。

● 【升级组件】

升级组件，需要通过录制来完成。

选中之后，进入录制模式，录制到的组件会自动修改其各项属性。

3，编辑组件的属性

· 功能描述：显示窗口和组件的属性。

· 处理流程：选中组件，就在【对象属性】区域中显示出所有的属性。

· 限制：无

· 界面：下图为组件的属性表，在【对象属性】区域中显示。

· 详细操作：

● 对象的属性由配置文件决定。

● 只有权重可以修改，其他的部分不允许修改。

八， 设置对象识别参数

1，设置系统资源参数

· 功能描述：通过设置组件识别权重来设置 AutoRunner 自动录制的识别功能。

· 处理流程： 打开安装目录下的文件： WProperty.xml （如下图），修改识别的权重，把需要使用的权重设置为 100 。

· 限制：无

· 界面：下图为组件的属性表，在脚本xml区域中显示。

· 详细操作：

● 设置权重。

修改自动录制的参数文件需要非常小心。

权重决定了如何区分一个组件。例如：两个属性完全相同（除了 size 不同）的组件出现在一个屏幕上，如果我们把资源文件的 size 的 weight 设置为 0 ，那么录制之后，我们就会发现 AutoRunner 把这两个组件作为一个组件处理了。

如果把 weight 设置为 100 ，则可以区分开来。当然，一般情况下不会出现这么多的属性都一致的情况。

因此，这个配置文件只有在遇到非常特殊的情况下才需要修改。

● 说明：请初学者不要修改此文件。

2，设置对象执行参数

· 功能描述：通过设置组件识别权重来提高执行时候的容错性。

· 处理流程：如下图，需要设置组件的属性权限。

· 限制：无

· 界面：下图为组件的属性表，在【对象属性】区域中显示。

· 详细操作：

九， 查看执行日志

1， 日志

· 功能描述：测试脚本执行完成之后，会在标准输出中显示执行日志。

· 处理流程：

· 限制：无

· 界面：下图为组件的属性表，在【对象属性】区域中显示。

· 详细操作：

上图显示：

第一行，运行的参数；

第二行，测试成功；

第三行，测试开始的时间；

2， Class TestCase 的日志功能

测试脚本的日志功能是继承自类 TestCase 。

TestCase 日志相关方法如下：

方法名 | 方法说明
toString() | 返回测试结果字符串
public String[] getCheckPoints() | 获得所有的同步点执行信息
public boolean isSuccess() | 执行是否通过
public String getSyncPoint() | 获得第一个失败的同步点
public String getResourcePoint() | 获得第一个失败的资源检查点

使用这些 TestCase 的方法，用户可以自己编写更复杂的测试日志和报表。

十，一次执行多个测试脚本

自动测试的目标在于能够在很短的时间内自动完成大量的测试工作。

上面所有讲到的问题，都在于如何编写单个的测试用例。

因此，我们需要编写一个脚本来执行所有的测试用例。

这里列出一个脚本如下：

执行多个脚本的示例

package demo;

public class runall {

public cal() {

}

public static void main(String[] args) {

run_cal_call();

_// 可以执行多个不同的脚本；

}

Private run_cal_all() {

cal calinstance = new cal();

DataSource DS = new DataSource("demo.cal");

try {

DS.open();

// 执行案例 key 从 1 － 100 ；

for(int i=1; i< ＝ 100; i++) {

DS.select(Integer.toString(i));

calinstance.test(DS);

}

} catch(SyncException se) {

} catch(ResourceNotFoundException rnfe) {

} finally {

DS.close();

calinstance.stopRunning();

System.out.println( calinstance.toString() );

}

}

十一，修改同步等待时间

· 功能描述：在测试过程中，需要重新设置超时时间。

· 处理流程：

· 限制：无

· 界面：下图为组件的属性表，在【对象属性】区域中显示。

· 详细操作：

类 TestCase 的方法 setSynchronizationTime(long) ，详细见上文关于 TestCase 的方法说明。


AutoRunner常见问题

一． AutoRunner安装问题

1. 未申请License问题：专业版需要申请License，请在上海泽众公司网站www.spasvo.com上下载相关申请程序，并将申请文件连同您的

姓名、公司名称、职位发送至，sales@spasvo.com，泽众公司会在两个工作日内给予回复，请将收到的License放至安装文件夹即可。附

图为未申请License时点击【录制】按钮出现的问题：

2. 环境变量问题：首先请确认您安装的JDK版本。AutoRunner仅支持JDK1.5及以上版本由于安装多个JDK版本可能会产生不能录制的错误。所以最好在一台电脑上只安装一个JDK版本。如果尚未安装JDK，那么请安装。JDK配置的方法如下：右键点击我的电脑“属性”，选择“高级”。点击环境变量。在（LILI用户名）的用户变量中新建变量。 变量名：JAVA_HOME变量值：C:\Program Files\Java\jdk1.5.0_04 即JDK所安装的路径 变量名:PATH 变量值：C:\Program Files\Java\jdk1.5.0_04\bin即JDK所安装下bin的路径 变量名：CLASSPATH 变量值：.;C:\Program Files\Java\jdk1.5.0_04\lib即JDK所安装下lib包的路径以上C：\Program Files\Java\jdk1.5.0_04只是举一个例子，用户要根据自己所安装JDK的路径来配置。

二． AutoRunner使用问题

1. 录制不出脚本的问题：检查环境变量的配置是否正确，是否有中文符号的“；”或“，”，需要改成英文符号，如果都没问题，则使用新版安装包重新安装（标准版的License也有时间限制，泽众公司网站www.spasvo.com会定时更新），如果还是不行，请按以下步骤操作：在开始菜单运行栏内输入cmd，进入DOS界面后，进入AutoRunner的安装目录，在此目录下输入run，此时会自动调出AutoRunner程序，操作AutoRunner，点击录制，查看DOS中的信息。请将DOS中的信息截屏发送到 spasvo_support@hotmail.com，泽众公司会及时回复。

2. 无法回放的问题：a，查看脚本，有关录制的部分是绿色显示的部分。如果找不到此段脚本，则说明是录制的问题，在点击录制之后，鼠标点击的第一个软件窗口时已经开始录制操作，此时回到AutoRunner中，如果右上角未出现相应的代码，则说明无法自动录制。b，未预先设定好被测软件，在回放时，需要将被测软件重置于录制开始时候的状态，从哪里开始录制，从哪里开始回放。回放的第一句话通常是激活该被测软件。

3. 回放不完整的问题：a，使用断点设置，查看具体在哪一段代码行出现问题。b，查看对象浏览器，与脚本代码进行比对，查看出错的行是否有相对应的组件被识别，如果缺少相应的组件，则需要添加组件。

4. 组件无法添加的问题：在添加组件时，首先要将被测软件需要添加的控件置于可直接点击的位置。然后在对象浏览器中选择正确的窗口（也就是需要添加组件所在的窗口），鼠标右键点击添加组件，随后稍候1-2秒，点击被测软件，点击要添加的组件，注意点击过程不要有多余的动作，点击组件需要停顿1-2秒，最后回到AutoRunner中对象浏览器中查看是否出现新的组件，如果没有，则需要重复添加。

5. 断点设置出错的问题：有时设置好断点后会发现编译出错，有可能的原因是断点的位置不对，断点应设置在操作代码行。

6. 参数化未执行的问题：参数化操作后，需要在项目文件夹下找到以测试用例命名的.csv格式的文件，打开后在相应的列数里修改值，修改后需要保存才能执行参数化，且AutoRunner中也需要相应地保存，并且使用编译。

如果您有其他问题，请及时和我们联系，感谢支持！


快速开始

快速开始的目标在于通过创建一个项目在创建测试脚本（测试用例），并且执行这个脚本，给读者展示如何使用 AutoRunner 来工作 -- 创建测试用例后执行脚本、规则、功能上的操作进行了介绍。

一，新建测试项目

创建项目

· 功能描述：建立新的测试项目，测试人员可以在该项目下建立交易的测试用例。

· 菜单流程：【文件】→【新建】→ 【项目】（见下图）

· 限制： 无

· 界面： （见下图）

在选中菜单之后，弹出一个创建title为增加项目的对话框，需要输入项目名和项目路径。

该项目名称不允许重复，项目路径必须是不存在的路径， AutoRunner 将为你创建一个新的项目。输入正确后，点击确认后就建立了

新的测试项目。

创建完成后，如下图所示，项目显示在项目浏览器中：

项目属性

项目具有三个属性，在菜单：【项目】中我们可以看到：

● classpath

由于 AutoRunner 支持标准的 java ，测试脚本就是一个 java 类，因此在执行的时候我们必须为项目设置 classpath 。 -- 请读者参考 java 相关的文档。

在创建项目之后， AutoRunner 已经为用户自动创建了所有需要的 classpath ，不需要修改 -- 除非用户需要扩展更强大的功能。

● 项目目录（不能修改，只能查看）

就是我们创建项目的时候输入的项目路径。

● 编译所有脚本

工具中编译所有脚本能直接将一个项目下的所有测试用例脚本进行编译。

二，新增测试用例

· 功能描述：增加新的测试用例。这个测试用例是一个 java 的类，也可以作为一个普通的 java 类，不作为测试用例。

· 处理流程：选中一个项目后单击菜单：文件→ [ 新建 ] →用例→ （见下图）

· 限制： 无

· 界面： （见下图）

· 详细操作：

或者点击快捷按钮新建案例（需先选中项目）

弹出增加脚本的对话框，需要用户输入脚本的名字。

键入类名，类名需要符合 java 的规范。

只允许输入 java 文件名，不支持其他文件。

该类所在的 package ，是由用户在项目浏览器中选中的 package 来决定的，不能够修改。

确认正确后，点击确认，创建一个 java 脚本（ java 类）。

三，自动记录创建测试用例

1，开始录制测试脚本

· 功能描述：记录该交易的交易过程。

· 处理流程： 【录制】 → 【开始录制】

· 限制： 无

· 详细操作：如果该脚本不是空脚本，那么系统会提示“是否覆盖脚本”，回答“是”，开始录制，回答“否”则停止，不记录。开始进行被录制动作的操作，允许在多个窗口之间切换。

在录制过程中，可以看到脚本在逐行增加。

2，中止录制测试脚本

· 功能描述：记录该交易的交易过程。

· 处理流程： 【录制】 → 【停止录制】

· 限制： 无

· 详细操作：录制动作结束，系统自动创建了一个测试脚本类。

四，查看 / 编辑资源信息

· 功能描述：对所保存的屏幕信息进行编辑。

· 处理流程：点击“对象浏览器”，查看资源对象。

· 限制： 无

· 界面： （见下图）

· 详细操作：

通过选中在“对象浏览器”中的组件在“对象属性”中查看该组件的属性。

【对象浏览器】：

● 作用

对象浏览器用来查看对象的属性。对象包括两种：屏幕和组件。

屏幕的次序就是在自动录制过程中的顺序。屏幕包括了在它上面的组件。组件就是具体的操作对象，如：编辑框、 checkbox 、 combobox 、 button 等。在 IE 中，还包括链接、图片等浏览器元素。

● 结构

在对象浏览器中，所有的对象每一个都属于一个 window ，但是那只是为了用户查看方便。实际上，在脚本使用对象的时候，他们不属于任何一个窗口，是独立存在的。因此，所有的组件都不允许重名。

● 选中操作

在对象浏览器中，选中任何一个元素，都会在【对象属性】区域中看到这个对象的属性。

● 编辑操作

在对象浏览器中，选中一个元素，点击鼠标右键，就可以看到弹出式菜单，允许我们对组件进行操作。

【对象属性】区域：

● 作用

显示选中对象的属性。这个属性由 AutoRunner 的配置文件 WProperty.xml 定义。

对象是通过 AutoRunner 自动录制的时候从 windows 系统中获得的。

● 结构

对象的属性我们把它作为一个表格来显示，它有三列：属性名、值、权重。

所有的值都转换为字符串类型；

● 权重定义与模糊识别

权重是当 AutoRunner 执行测试脚本的时候，识别这个组件需要的条件要素。例如：权重为 100 ％的 size ，说明在必须找到一个 size 相符合的组件。

使用权重识别，是 AutoRunner 的一个重要功能。具体的定义如下：识别失败的所有属性的权重相加如果大于等于 100 ，则识别失败。

例如，两个权重为 50 的属性，两个匹配失败，则失败的权重和为 100 ，识别失败（ AutoRunner 对识别失败会报告【同步错误】）。

两个权重为 30 的属性，如果匹配失败，则可以认为匹配成功；

权重的使用，在 AutoRunner 方面来说，就是提供了一个强大的系统容错平台：当用户的应用系统发生内在变化， AutoRunner 仍然具有很高的容错性，保证应用发生了内在的修改之后，脚本可以重用。

权重的最重要作用，就在于在开发过程中，由于应用系统不断的变化，而 AutoRunner 仍然能够在这个变化的过程中保证脚本的重用。

五，添加检查点

· 功能描述：在脚本的测试方法 test （）中添加一个检查点。

· 处理流程：在工具条上点击按钮【添加检查点】，弹出添加检查点对话框，填写完成后，按“确认”，在脚本中添加一行作为检查点。

· 限制： 无

· 界面： （见下图）

· 详细操作：

增加一行 -- 检查点。

● 检查点行为被选中行；

● 检查点的位置是有意义的，用户必须在需要检查的时刻来检查，而不是随意的检查某个组件的属性。

六，执行测试用例

· 功能描述：执行测试脚本，完成一个简单测试。

· 处理流程：菜单【执行】→ 【运行】（或者对应的工具条按钮）

· 限制： 无

· 界面： （见下图）

· 详细操作：选中一个待执行的脚本，然后“执行”。

七，查看执行结果

● 下图图为一个测试计算器的脚本执行完成后的情况；

● 测试结果依赖于检查点是否通过。

● 如果出现 " 同步错误 " ，测试也会失败。

● 出现 " 资源不存在错误 " ，一般是脚本使用了不存在的资源（对象库中没有此对象）引起的。


服务支持

AutoRunner产品通过在线MSN、电话、电子邮件为您提供支持与服务，也可访问我们的网站 http://www.spasvo.com/：

为保证服务质量，确保有效地解决用户的问题，保障用户的项目实施进度，技术支持仅向授权用户和授权试用用户提供。请您在联系泽众技术支持时，告知您的单位名称和服务代码。

技术支持：

MSN：spasvo_support@hotmail.com

电话：021-31357887-8022

电子邮件：support@spasvo.com

产品服务：

有关培训、产品购买及试用授权方法的问题，请与销售代表联系，或联系泽众咨询热线：

电话：021-31357887-8015

电子邮件： sales@spasvo.com


欢迎使用 AutoRunner

欢迎使用功能测试工具 AutoRunner! 本用户指南是基于 AutoRunner 产品的操作手册。

使用 AutoRunner ,你可以自动完成 Windows 之下的各种应用的功能测试、回归测试，每日构建测试。

本指南说明如何使用 AutoRunner 来创建基于 Windows 平台各种应用的测试用例、执行测试用例、捕获功能测试错误。

本文由以下几部分组成：

泽众公司简介：

泽众公司介绍

功能自动化测试简介：

1>功能自动化测试简介：

介绍功能自动化测试工具的概念及特点

2>IDE环境：

介绍AutoRunner产品的开发环境

3>产品功能简介：

介绍AutoRunner特点

4>产品安装：

介绍AutoRunner产品的安装

5>产品配置：

介绍使用AutoRunner产品需要配置的环境变量

快速开始：

使用过程描述

使用详解：

1>用户界面：

描述 AutoRunner 的 IDE ，以及 AutoRunner 的菜单、工具条等具体的功能

2>设置与选项：

通过创建你的第一个测试用例来说明如何使用 AutoRunner，帮助用户入门

3>高级属性介绍：

介绍AutoRunner各属性

高级应用：

通过使用 AutoRunner 来创建更复杂的、更强大的测试用例来说明 AutoRunner 的功能

常见问题:

AutoRunner 的一些基本问题及解决方案

支持服务:

用户如何获得对 AutoRunner 产品的支持与服务


上海泽众软件公司简介

上海泽众软件科技有限公司成立于2003年10月，公司的宗旨是通过向软件开发企业提供最优质的测试工具软件。测试解决方案和测试咨询服务，帮助国内用户提高软件的品质。我们一直致力于软件测试工具领域的探索。于2004年推出了终端自动测试引擎（Terminal AutoRunner，简称TAR）在2005年，推出了第一个测试管理工具TestCenter，TestCenter与TAR一起构成了泽众软件自动化测试解决方案。在2006年推出了自动测试工具：AutoRunner，AutoRunner与TestCenter构成了泽众软件的另外一个完整的自动化测试解决方案。经过不懈的努力，AutoRunner自动测试引擎、TestCenter得到了用户的认可和应用，表现出强大的生命力。AutoRunner测试工具、TestCenter测试管理工具已经成为测试工具软件市场的重要选择。

上海泽众软件

www.spasvo.com