测试与质量的关系 测试有助于提高软件的质量,但是提高软件的质量不能依赖于测试。测试与质量的关系很象在考试中“检查”与“成绩”的关系。 学习好的学生,在考试时通过认真检查能减少因疏忽而造成的答题错误,从而“提高”了考试成绩(取得他本来就该得的好成绩)。 而学习差的学生,他原本就不会做题目,无论检查多么细心,也不能提高成绩。 所以说,软件的高质量是设计出来的,而不是靠测试修补出来的。 I love U software testing

怎么学会使用RIATest(未来Flex GUI自动化测试工具)

上一篇 / 下一篇  2009-06-18 21:39:02

我们先了解RIAtest工具

RIATest是一个Flex自动化GUI测试工具,它刚刚公开发布了Beta版。InfoQ为此采访了RIATest的创造者Tigran Najaryan。 

Najaryan首先谈到了创造RIATest的目的:

RIATest 是一个用来对Adobe Flex 3程序进行自动化GUI测试的工具。创造RIATest的目的是为了给商业和专业开发者提供一个简单、干净的测试自动化方案,帮助他们保证产品的质量。我们在定价上非常激进,一心把测试自动化带给更多的Flex用户,而这些用户以前都负担不起其它的Flex测试自动化方案。

说到RIATest如何工作的时候,Najaryan解释说:

从技术上看,RIATest由两部分组成:Agent和IDE(或者命令行执行器)。Agent呆在浏览器一方,直接与被测程序打交道。Agent提供了组件查看器(Component Inspector),让你检查和监视被测程序的GUI组件及其属性。Agent还通过TCP连接与IDE相连。Agent与IDE在回放期间(IDE向 Agent发送指令并接收结果)以及录制期间(Agent把录下的动作通知给IDE)都经由这个TCP连接相互沟通。

测试脚本是用RIAScript语言写的。RIAScript是一个简化版的ActionScript(另有些微扩展)——因此熟悉ActionScript的开发者很容易学会编写RIATest的测试脚本。

RIATest是用什么开发的?Najaryan回答说:

RIATest从一开始就是作为Flex 3测试自动化工具来设计的,它使用了Flex的测试自动化框架。RIATest IDE是用C++和wxWidgets库写的。RIATest Agent是用Flex 3开发的。 

由于现在已经可以见到不少Flex测试工具,所以InfoQ请Najaryan将RIATest与其它工具比如FlexUnit作一下比较:

RIATest作为一个自动化GUI测试工具,与单元测试其他测试手段是相辅相成的。必须通过多种自动化测试手段才能得到最高质量的保证,自动化GUI测试和单元测试都包括在内。

谈到如何测试连通性,如HTTP请求和SOAP连接:

RIATest内建了按照指定条件自动或手动进行同步的功能,因此即使程序需要与远程数据源通信,RIATest也能完全胜任自动化测试的工作。QA工程师可以通过“'waitfor'”操作让测试脚本与被测程序的组件状态同步。

最后,Najaryan给出了一段测试脚本的例子:

RIATest Script

查看英文原文:RIATest for Flex Released Beta Product

http://en.wikipedia.org/wiki/RIATest

http://www.infoq.com/news/2008/03/riatest-beta-released

http://www.insideria.com/2009/02/getting-started-with-riatest-2.html

下载可以官方网站下载,要是买还算便宜,相比MI等测试工具,然后我们装好RIATest2.3那就立刻开始使用它吧。

RIATest系统需求

   使用RIATest需要下面软件:

  • Adobe Flex Builder 3 Professional
  • Adobe Flash Player 9,0,115,0 or newer
  • Microsoft Windows XP or Vista
  • Mozilla Firefox 2 or Internet Explorer 6

例子

   RIATest包含一个展示基于Flex类的自动操作例子的项目.

   这个项目在C:\Program Files\RIATest\samples\components.

选择应用方案

   RIATest为你准备了两种方法: 使用 RIATest time Loader 或通过在编译应用程序时植入RIATest 代理.

   用 RIATest Loader是一个简单的方法不需用自动操作库来编译你的应用程序.不是所有的应用程序都能用time Loader 来操作. 对于多数复杂的案例(例如当你的应用程序需要HTML页面并且不用导入无格式的SWF文件) 你需要用 RIATest 代理和自动操作库植入你的应用程序.

使用RIATest Loader

   你的SWF应用文件在服务器运行的话。你可以使用本地或者远程的RIATest Loader.

使用本地RIATest Loader

  如果你在本地运行你的应用程序,没有特殊要求. 在创建RIATest 项目时你可以指定该项目选项为'Use local Loader'.

使用远程RIATest Loader

  如果你通过web服务器来运行你的程序,你需要上传RIATest Loader去服务器,所以RIATest Loader和你的应用程序的URLs要来自相同的域名(否则安全策略不允许Loader去访问你的应用程序). 复制下面目录下C:\Program Files\RIATest\loader 的内容去你的web服务器目录(通常和你的主SWF程序所在的目录相同). 现在打开你的浏览器访问下面地址:

http://your-server-name/your-directory/RIATestLoader.html?rtLoadURL=url-of-your-applicaiton.swf

确定服务器名,路径,应用程序名字的参数正确. 如果每个设置都正确.RIATest Loader将在你的应用程序内载入和运行. 然后关闭浏览器进入RIATest 进入项目的创建.

 

编译自动化库和静态代理

如果决定使用静态的自动化库和代理需要执行下面步骤:

  1. 在Flex Builder 3中打开你应用程序项目.
  2. 选择Project -> Properties -> Flex Compiler.
  3. 在'Additional compiler arguments' 文本中增加下面内容:
    -include-libraries "C:\Program Files\RIATest\agent\RIATestAgent.swc" "C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\libs\automation.swc" "C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\libs\automation_agent.swc" "C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\libs\automation_dmv.swc"

    你可能把Flex Builder 3和RIATest安装在其他目录,那么将需要更下面目录C:\Program Files\Adobe\Flex Builder 3  和C:\Program Files\RIATest.

  4. 点击OK 保存内容关闭对话框.
  5. 编译你的应用程序.

 

RIATest代理和Flex 自动操作库现在被植入你的应用程序中. 每次你的应用程序启动,RIATest 代理为了建立自动操作的会话将去连接RIATest工具.

运行你的应用程序. 你将看到RIATest代理工具栏浮动在你的应用程序上. 工具栏标题将显示'为'RIATest Agent - Not connected'. 这是正常的,RIATest 代理没有连接到RIATest 工具.

创建RIATest工程

  1. 运行RIATest工具选择 File -> New Project. 一个空工程被创建.选择 File -> Save All, 选择目录来保存你的工程, 输入工程名称点击Save..
  2. 选择 Project -> Options. 确信所以的选择项被选中. 根据你确定的程序导入方案,你有下面选择:
    A. 如果你想使用RIATest Loader 和你的SWF应用程序文件在本地,选中'Use local loader'.
    B. 如果你想使用RIATest Loader 但你的应用程序在一个web服务器上,选中'Standalone or remote loader'并且在'Application URL' 输入下面内容:
    http://your-server-name/your-directory/RIATestLoader.html?rtLoadURL=url-of-your-applicaiton.swf
    C. 如果你有包含静态编译的RIATet 代理和自动操作库的应用文件,选中'Standalone or remote loader'并且在'Application URL' 输入你的应用程序HTML文件的地址(例如:http://localhost/myapp/bin/app.html) 或者HTML文件的路径(例如:C:\My Projects\My App\bin\app.html).
  3. 选中 Run -> Launch Application. 默认浏览器将被启动,你的应用程序将被载入浏览器. RIATest 代理工具栏标题将显示'Connecting' 和'Ready' 信息.
  4. 返回RIATest tool窗口. 消息日志将显示下面内容:

    Launching C:\Program Files\Internet Explorer\iexplore.exe "C:\My Projects\My App\bin\app.html"
    Application launched. Waiting for connection from agent...
    Agent connection accepted.

    RIATest 工具标题也显示(Ready) 这样说明代理被连接和准备好,可以录制和运行action了.

 

录制脚本

确定RIATest 工具和代理被连接(标题都显示 'Ready'). 在RIATest 工具中选择 Project -> Add New Script. 输入新脚本的名称并保存.

选择 Run -> Start Recording (或者点击RIATest代理工具栏上的'Record'按钮). RIATest 工具和代理的标题将显示'Recording'. 切换到你的应用程序窗口来录制你想要的内容. 注意RIATest 工具录制actions声明在测试脚本窗口.

你可以按Ctrl-Shift 在你的应用程序点击任何元素来设置自动化确认和检查点. 当你按下Ctrl-Shift后鼠标点中组件将被高亮显示,用绿色半透明框来区别.

你也可以使用'Inspect' 按钮检查你应用程序的用户界面组件. RIATest 代理将用户蓝色框高亮显示鼠标指定的组件, 将显示组件的类,名称和所有可用属性. 再点击组件将结束'Inspect' 模式.

之后组件被检查你能在代理工具栏中点击'Verify'按钮. 所有的属性目录将被显示. 你可以选择任意一个你想要属性.然后点击OK一个检查点将被建立. 这个检查点将检验在选中属性中的值与当前值进行匹配.

点击RIATest 代理工具栏的'Record' 按钮 或者选择RIATest工具 Run -> Stop Recording 来停止录制. 注意你可以在任何时间停止和重新录制. 如果你录制了错误的内容, 你可以停止录制, 去RIATest 工具, 选择不正确的actions删除, 然后重新再开始录制.

当你完成录制你可以选择Run -> Terminate Application 关闭浏览器包括你的应用程序.

运行测试

在RIATest工具File -> Open Project 打开你的项目. 选择 Run -> Run Without Debugging . 浏览器将打开, 你的应用程序将被载入录制的actions和检查点将被回放.

 

在RIATest工具中将显示回放进程的消息日志. 检查点成功通过将显示绿色信息, 失败的actions 和检查点将显示红色信息.

回复结束后你的应用程序和浏览器将被关闭.消息日志将显示运行有多少错误和错误原因.

注意: 如果你使用Flex 3 Beta 回放将被限制为30 actions. 请去Adobe获得Flex Builder 3 Professional license .

 

调试测试

如果你在运行你的测试时遇到错误,你能调试你的脚本. 开始调试选择 Run -> Run Tests . 项目脚本将正常开始运行当遇到错误时(如检查点或action失败) 脚本将被暂停错误行被高亮显示. 消息日志的最后会显示错误原因 (如: 期待值与实际值不同,检查点失败). 你可以切换到你的引用程序检查组件和他们的属性. 也可以检查你的脚本变量值(如果被使用)通过鼠标移动到变量名上.

手动写测试脚本

录制为我们快速创建测试脚本提供帮助. 可是有时你需要执行更多复杂的actions,如在你的应用程序中多次重复用户界面或者执行有条件的actions.

RIATest 工具使用RIAScript. 语言来写测试脚本. RIAScript. 基于基本脚本语言. 你可以声明和赋值给变量,进行函数引用,写判断和循环方法.

RIAtest帮助对手写脚本很有帮助。

遗憾一:没有破解key

遗憾二:RIAScript和ActionScript还是有些不一样

遗憾三:对于自动化工具定义,他算是GUI加白盒自动化测试工具,上手还算容易。

学习工具网站:http://www.vietnamesetestingboard.org/zbxe/?mid=downloadtool&listStyle=webzine&page=7&document_srl=66952&cpage=


TAG: flex RIA test

ymwang119的个人空间 引用 删除 ymwang119   /   2011-09-07 18:07:36
你好,我刚刚使用RIA Test来测试Flex ,我使用RIATest Loader, 在本地运行swf应用程序,但是运行起来的时候浏览器内没有内容,在agent出现后很短时间后,浏览器出现黑屏,请问您是什么原因呢?
 

评分:0

我来说两句

日历

« 2024-03-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 94164
  • 日志数: 112
  • 图片数: 1
  • 文件数: 1
  • 书签数: 1
  • 建立时间: 2007-01-16
  • 更新时间: 2010-06-28

RSS订阅

Open Toolbar