对比使用 Rational Robot 和 Rational Functional Tester 进行测试

发表于:2007-05-24来源:作者:点击数: 标签:rationalFunctionarobot对比使用
本文是为那些疑惑转换到 Rational Functional Tester 是否真的那么容易的 Rational Robot 的用户准备的。答案是:简单。利用定制的验证点作为实例,本文将对比这两种产品,向您展示它们的使用是多么相似。 引言 使用 IBM Rational Robot 的客户常常问,从 Rat
本文是为那些疑惑转换到 Rational Functional Tester 是否真的那么容易的 Rational Robot 的用户准备的。答案是:简单。利用定制的验证点作为实例,本文将对比这两种产品,向您展示它们的使用是多么相似。

引言

使用 IBM® Rational® Robot 的客户常常问,从 Rational Robot 迁移到 IBM® Rational® Functional Tester (RFT) 上有多难。本文使用了一些实例来告诉您进行迁移是多么容易,并且用户的使用经验是多么相似。人工编码可以增加测试脚本的功能和稳定性,所以人工验证点将是比较和对比 Rational Robot 和 RFT 的基础。要介绍一些实际的实例,就有必要在此验证点周围建立某种逻辑。该逻辑安排在不同的部分中:

  • 读取 Place Order 按钮的文本属性(参见图 1)
  • 打开并创建文件
  • 将文本属性写入该文件
  • 打开另一个文件,并读取该文件的内容(期望值=BASELINE)
  • 将基线与实际结果比较
  • 撰写一条日志消息

每一个部分都显示出为 Rational Robot 和 RFT 编码的区别。此外,所有的实例测试脚本包含同样的内容。尽管 RFT Java™ 脚本实例包含额外的错误处理。解释 Rational Robot 和 RFT 是什么已超出本文的范围。本文也不介绍如何记录并回放测试脚本。





回页首


安装与配置

您应该安装以下内容:

  • Rational Robot
  • RFT Java
  • RFT VB .NET
  • Java ClassicsB Application

使用记事本(或者类似的纯文本编辑器),创建一个名为 Expected.txt 的文件,内容是Place Orders,并且将其保存在 C:\ 之下。其将作为之前提到的基线文件。要为此实例配置您的环境,按照以下步骤:

  1. 在安装完 Rational Robot 之后,运行 Java 测试启动器,单击 Start > Programs > Rational Software > Rational Test > Java Enabler
  2. 在安装完 Rational Functional Tester 之后,启动环境并启动用于测试的应用程序。要做到这些,在 RFT 菜单上单击Configure > Enable Environment for Testing and Configure > Configure Application for Testing
  3. 使用该实例代码的最佳途径是获取一个名为 read_and_write 的空脚本,复制实例脚本来替代它。
  4. 打开对象映射并插入 Place Order 按钮,如图 1 所示。

图 1. Place Order 按钮
Place Order 按钮




回页首


创建一个人工验证点

图 2 例举了在每个产品中的人工验证点编码。


图 2. 对验证点编码
对验证点编码

Rational Robot SQA Basic 命令中,您需要在脚本中撰写对象识别参数,这需要对您的部分进行额外的考虑。然后,将来自属性(Property)文本的值分配给字符串变量 MyText。一般来说,将所有可识别属性分配给一个变量是可能的。RFT 脚本中的对象指向对象映射中的对象。要输入代码,使用编辑器功能是非常有帮助的。在这种情况下,输入前两个字符并按下 strg 和 space 键。一个有效方法的列表出现了,您可以快速简单地进行选择。

在 Java 和 VB .NET 脚本中,您可以直接从左到右阅读验证点。这使您更容易理解其内容。例如:String 变量 strProperty_Text 的内容等于与对象 placeOrder 有关的内容。对象和方法之间的关系位于对象之后。

在此实例中,方法为 getProperty。要指定属性,您需要输入属性的类型(“Text”)。这样 srtProperty_text 变量从placeOrder 对象那里获得了文本(Place Order)的属性值。





回页首


创建并打开文件

在此部分中,脚本将打开文件 c:\Buton_Text.txt 并保存属性值文本,如图 3 所示。


图 3. 脚本打开文件并保存属性文本
脚本打开文件并保存属性文本

通过此实例,应该更加清楚的是,在 Rational Robot 和 RFT 中,创建此类验证方法的命令和功能是类似的。在每个产品中,用三行代码创建、打开并撰写文件都是可能的。

打开并阅读文件

图 4 显示如何打开文件 c:\Expected.txt 并在 String 中书写内容。
图 4. 打开并阅读文件
打开并阅读文件

比较数据

图 5 中的脚本比较了两个 String 变量并生成了一个日志消息。
图 5. 比较数据
比较数据

如您所见,除了一些开发环境的细节,两个产品之间的编码差别是极小的。不论您使用 Rational Robot 或是 RFT,实现此类编码的工作是一样的。此外,如果您知道SQA-Basic 命令,那么在测试脚本中实现额外的功能 —— 利用 RFT 编辑器(输入开头字符并按下 Strg 和 Space 键)的帮助—— 是很容易的。

清单


清单 1. Rational Robot 脚本:SQA Basic
            Sub Main
            Dim Result As Integer
            Dim MyText as Variant
            Dim strFilename as String
            Dim intFileNum as Integer
            Dim strZeile as String
            Dim strLine as string
            strFileName= "c:\Button_Text"
            intFileNum = FreeFile()
            'Script Name: read_and_write
            StartJavaApplication Class:=
            """C:\Program Files\IBM\Rational\SDP\6.0\FTSamples\ClassicsJavaB.jar""",
            JvmKey:="Java", JvmOpts:="-jar"
            Window SetContext, "Caption=ClassicsCD", ""
            Result = SQAGetPropertyAsString("Type=PushButton;Name=Place Order", "Text", MyText)
            Open strFilename For Output AS # intFileNum
            Print #intFileNum,MyText
            ' The Value of the Pushbutton property text will be save in c:\Button_Text
            Close # intFileNum
            'Open the file to read the content
            If strLine = myText then
            SQALogMessage sqaPass, "The Button Text is correct: " + MyText, ""
            else
            SQALogMessage sqaFail, " Expected Pusch-button-Text = " + strLine,
            "The Button Text is incorrect"
            end if
            End Sub
            


清单 2. RFT 脚本:Java
            import resources.read_and_writeHelper;
            import java.io.*;
            import javax.swing.JOptionPane;
            public class read_and_write extends read_and_writeHelper
            {
            /* Before you can use this script you must create a c:\Expected.txt file
            * Write the value inside this file and save it.
            * Description   : Functional Test Script
            * @author Andreas Franke
            public void testMain(Object[] args)
            {
            FileWriter f1;
            BufferedReader f2;
            String line;
            startApp("ClassicsJavaB");
            String strProperty_Text=(String)placeOrder().getProperty("Text");
            // Read the property Text from the Pushbutton
            try
            {
            f1 = new FileWriter("c:\\Button_Text.txt");
            // create a an outputfile
            f1.write(strProperty_Text);
            // write the result from strProperty_Text in this file
            f1.close();
            }
            catch (IOException e)
            {
            System.out.println("ERROR to create the folder");
            logTestResult("ERROR to create the folder", false);
            // Write an Error-message in the tes-tmanager-
            log
            }
            try
            {
            f2 = new BufferedReader(new FileReader("c:\\Expected.txt"));
            while ((line = f2.readLine()) != null)
            {
            if (line.equalsIgnoreCase(strProperty_Text))
            {
            logTestResult("The Button Text is correct", true);
            }
            else
            {
            logTestResult("The Button Text is incorrect ", false,
            "Expected '"+line+"' but found '"+strProperty_Text+"'");
            JOptionPane.showMessageDialog(null,line,"The Button Text is
            incorrect",JOptionPane.INFORMATION_MESSAGE);
            }
            }
            f2.close();
            }
            catch (IOException e)
            {
            System.out.println("Can`t find File");
            logTestResult("Can`t find File", false);
            }
            }
            }
            


清单 3. Rational Functional Tester 脚本:VB .NET
            #Region " Script Header "
            ' Functional Test Script
            ' author Administrator
            Imports Microsoft.VisualBasic
            Imports Rational.Test.Ft
            Imports Rational.Test.Ft.Object.Interfaces
            Public Class read_and_write
            Inherits read_and_writeHelper
            'Script Name   : read_and_write
            'author Andreas Franke
            Public Function TestMain(ByVal args() As Object)
            StartApp("ClassicsJavaB")
            ' Frame: ClassicsCD
            REM PlaceOrder().Click()
            Dim strFilename As String = "c:\Button_Text"
            Dim strExpected As String = "c:\Expected.txt"
            Dim strProperty_text As String
            Dim intFileNum As Integer
            Dim strLine As String
            intFileNum = FreeFile()
            strProperty_text = PlaceOrder.GetProperty("Text")
            MsgBox
            (strProperty_text, MsgBoxStyle.Information, "The Text on the Pushbutton is")
            FileOpen(intFileNum, strFilename, OpenMode.Output)
            Print(intFileNum, strProperty_text)
            ' The Value of the Pushbutton property text will be save in
            'c:\Button_Text
            FileClose(intFileNum)
            FileOpen(intFileNum, strExpected, OpenMode.Input)
            Input(intFileNum, strLine)
            If strProperty_text = strLine Then
            LogTestResult
            ("The Pushbutton Text is correct", True, "Expected Text = Actual Text")
            Else
            LogTestResult
            ("The Pushbutton Text is incorrect!! Expected Text is :
            " + strLine, False, "but found the actual Text : " + strProperty_text)
            MsgBox
            (strProperty_text, MsgBoxStyle.Critical, "The Curent Text is not the expected Text")
            End If
            End Function
            End Class
            

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