浅谈Rational Robot自动化测试

发表于:2008-05-20来源:作者:点击数: 标签:自动化rationalRationalrobotRobot
Ratoinal Robot是一种可扩展、灵活的 功能测试 工具,它是 Rational Suites下的一个组件,对于比较熟悉它的 测试人员 可以修改 测试脚本 ,改进测试的深度。Ratoinal Robot为菜单、列表、字母数字字符及位图等对象提供了 测试用例 。具体来说,它可以做到以
   Ratoinal Robot是一种可扩展、灵活的功能测试工具,它是Rational Suites下的一个组件,对于比较熟悉它的测试人员可以修改测试脚本,改进测试的深度。Ratoinal Robot为菜单、列表、字母数字字符及位图等对象提供了测试用例。具体来说,它可以做到以下测试:

    (1)基于GUI的功能测试:它可以记录用户软件的操作,将这些动作转换为脚本(脚本是不区分大小写的),然后通过回放脚本,来验证软件的功能是否正确。

    (2)对网络应用程序进行性能测试:它可以模拟很多虚拟用户来应用网络应用程序,从而判断程序性能是否符合要求。当然,这也是通过录制和回放脚本来办到的。

        根据功能的不同,Robot脚本也可以分为两类SQA Basic脚本与VU脚本。这两种脚本分别对应以上的基于GUI功能测试与网络应用程序的性能测试。它们不能互相换用,而且,不仅它们的用途不同,语法也大相径庭。SQA Basic用的是Basic语法,而VU脚本用的是C语言的语法。

        目前达梦数据库客户端的功能采用Ratoinal Robot进行测试。对数据库客户端的操作、在需要进行对比验证的时候设置验证点,它都会记录下来并转换成SQA Basic脚本。当进行测试时,可以使用Ratoinal Robot的脚本的回放功能来达到自动化测试的目的,验证软件的功能是否正确。下面简单介绍一下Ratoinal Robot在测试达梦数据库的客户端当中的应用。

    新建工程

        第一次使用Ratoinal Robot时,它的Project项是空的,也就是说当前没有项目可用,需要进入到Rational Suites的另一个组件Rational Administrator中去新建一个项目,在Rational Administrator中选择File->New Project,可以打开新建工程的向导,根据向导可以建一个自己命名的项目,设置此项目的密码,密码可以为空。之后再次打开它时就可以使用已有的项目与用户了。

    录制脚本

        选择菜单Record GUI或是点击工具栏上的GUI图标按扭,可打开录制脚本对话框,在对话框中输入脚本名称,可以按测试步骤对数据库客户端进行操作,当前对电脑的任何操作都可以被录制进来,所以在测试的过程中尽量不要运行一些自动弹出窗口的软件,以免影响测试的脚本的正确性或增加修改脚本的工作量。录制脚本的过程当中Rational Robot在最高层会有一个小窗口,此窗口有四个图标按钮:pause Recording(暂停录制)、stop Recording(结束录制)、open Robot Window(打开Robot窗口)、Display GUI Insert Toolbar(显示),使用pause Recording时,Robot事实上并没有退出,当前所做的任何操作也不会被录制成脚本;使用stop Recording时结束脚本录制;open Robot Window打开Robot窗口可以看到刚才录制的脚本,但打开Robot窗口的操作不录制成脚本;Display GUI Insert Toolbar会打开插入GUI验证点工具栏,需要作对比验证的时候可以使用这个图标按钮。

    修改脚本

        直接录制的脚本在实际中很少具有实用价值,一般都会对其进行或多或少的修改,如上面一个步骤录制的脚本如果放到另外一台机器上去运行,很有可能就会现在这个脚本跟本无法执行成功。如,达梦数据库安装的目录是可修改的,如果在录制脚本的过程中涉及到目录的时候,脚本中会出现绝对路径,在另外一台机器上安装达梦数据库的目录不同时,执行脚本就会不成功。如下例是一个录制的脚本,看看有哪些地方需要修改后才能到其它的机器上运行成功,下面的例子就是打开达梦数据库的客户端工具ISQL,登录数据库服务器,然后打开达梦数据库安装目录下的一个文件,由于下面需要多次使用到达梦数据库的安装路径,而且安装数据库时路径是可更改的,用一个常量来定义这个路径会比很多次书写这个路径来得方便,且修改起来工作量比较小:

    以下是引用片段:
  ‘注释语句的语法是在要注释的语句前面加一个’
  Sub Main
  Dim Result As Integer
  ‘在这里定义一个常量
  ‘Const dm_path=”e:\dmdbms”
  'Initially Recorded: 2007-12-13 15:46:20
  'Script Name: test
  ‘一般情况下打开可执行文件不要使用下面这种点击菜单的方式来
  Window SetContext, "Class=Shell_TrayWnd", ""
  PushButton Click, "Text=开始"
  Window SetContext, "Caption=「开始」菜单", ""
  PushButton Click, "Text=所有程序(P)"
  Window SetContext, "Class=BaseBar;Level=2", ""
  Toolbar Click, "ObjectIndex=1;\;ItemID=36", "Coords=118,10"
  ‘打开可执行文件采用STARTAPPLICATION(可执行文件路径与名称),这样一个语句就可以打开需要的文件了,那么中间的一段代码就可以用一个语句替换了:startapplication(dm_path+”\dm\dmtools\bin\isql.exe”)
  Window SetContext, "Class=BaseBar", ""
  Toolbar Click, "ObjectIndex=1;\;ItemText=交互式工具 ISQL", "Coords=101,16"
  Window SetContext, "Caption=DM交互式工具", ""
  TreeView DblClick, "ObjectIndex=2;\;ItemText=达梦服务器组->本地服务器", ""
  Window SetContext, "Caption=登录", ""
  EditBox Left_Drag, "Label=用户名(U):", "Coords=65,11,-60,-7"
  InputKeys "^c"
  EditBox Click, "Label=口令(W):", "Coords=44,8"
  InputKeys "^v"
  PushButton Click, "Text=确定"
  Window SetContext, "Caption=DM交互式工具", ""
  MenuSelect "文件(F)->打开(O)..."
  Window SetContext, "Caption=打开", ""
  ComboBox Click, "Label=文件类型(T):", "Coords=164,13"
  ComboListBox Click, "Label=文件类型(T):", "Text=Text file(*.txt)"
  ComboEditBox Click, "ObjectIndex=3", "Coords=18,1"
  InputKeys "license_zh_cn.txt"
  ‘在这里打开文件时采用的是默认的路径,如果需要打开达梦数据库目录下的一个文件可以采用这个方式:InputKeys dm_path+"\license_zh_cn.txt"
  PushButton Click, "Text=打开(O)"
  Window SetContext, "Caption=DM交互式工具", ""
  Window CloseWin, "", ""
  End Sub

    打开已有版本执行脚本

        在录制脚本的机器上打开脚本比较简单,选择菜单File->Open->Script,即可显示打开脚本的窗口,选择需要打开的脚本即可。在非录制脚本的机器上选择此菜单的话显示的打开脚本窗口中无法找要找开的脚本,选择菜单File->Open->SQABasic File找到要打开的脚本,脚本存放的目录为:..\ TestDatastore\DefaultTestScriptDatastore\TMS_Scripts(验证点存放的目录:..\ TestDatastore\DefaultTestScriptDatastore\TMS_Scripts\vp)用SQABasic File打开过的脚本再用菜单File->Open->Script方式在打开脚本窗口中有显示需要打开的脚本,选择脚本即可。

        执行打开的脚本,选择菜单File->Compile可查看脚本是否有语法错误,在无语法错误的情况下选择菜单File->Playback可回放脚本,在回放脚本的过程中无需手动做操作,在执行完毕以后会有提示是否会执行成功,如下图:

        Ratoinal Robot可以实现图形用户界面的功能自动化测试,但是它也会有一些不足的地方,比如有些控件它是识别不了的,有的时候没办法验证,对windows弹出式菜单的不支持,需要用startapplication来代替,回放脚本的时候也需要在Rational Robot的环境下回放,不能单独执行等缺陷。因此需要回避一些缺陷来利用Rational Robot来提高测试的效率与质量


原文转自:http://www.ltesting.net