TestComplete7亮相

来源:互联网 发布:淘宝美工认证考试 编辑:程序博客网 时间:2024/04/20 06:21

注:本文最早于2009年5月发表于It168.com

 

 

 

5月,Automated公司的TestComplete7发布了,展现了很多令人激动的新特性,TestComplete7的口号是:

The Easiest TestComplete Ever.

Script-free testing for new users.

Power-packed features for savvy testers.

Ease of use and low price for all.

誓要改变大众对其一贯的印象,把自己打造成“物美价廉”,功能强大而又简单易用的自动化测试工具形象。

 

也来关键字驱动测试

TestComplete一直缺少像QTP一样的关键字测试功能,这让很多初学者感觉其使用的难度较高。现在好了,TestComplete7 增加了关键字测试功能,实现其“Script-free testing for new users”的诺言。

美中不足的是关键字测试与脚本代码不能互相转换,这多少有点让人跌眼镜,看来Automated公司还需要努力加强这方面的功能。作为弥补,TestComplete 7 支持在脚本代码中调用关键字测试,例如:

Sub Main

  ' Enter your code here.

 

  KeywordTests.Test1.Run

 

End Sub

同时也支持在关键字测试视图中调用脚本里定义的过程,例如,对于如下脚本:

Sub TestCase1

 

  Msgbox "this is TestCase1"

 

End Sub

可以在关键字视图中通过“Run Script Routine”进行调用。

调用函数也是同样的做法,例如对于如下函数:

Function Add(a,b)

 

  c = a + b

  Add = c

 

End Function

同样可以在关键字测试中调用,调用时输入参数值即可。

在关键字视图的左侧,提供了各种通过关键字编写测试脚本的工具,例如插入条件判断、循环等。

 

支持PDA测试

PDA测试的支持是TestComplete7 的另外一大亮点。在TestComplete7中,有专门的扩展用于支持PDA应用程序的测试。

支持的版本包括:Windows Pocket PC 2003, Windows Mobile 5.0 Windows Mobile 6.0。在Object Browser中,可以查看远程PDA上的进程和对象。

 

不容忽视的RIA

新版本的TestCompleteRIA应用程序的支持进一步增强,现在,你可以用TestComplete测试FlashFlexSilverlight的程序。

TestComplete 7支持运行于IEv5~8)、Firefox(v1.5~3.0)上的FlashFlex程序。需要注意的是,对于Firefox,要求Flash Player插件的版本是9.0.124.0或以后的版本。

TestComplete 7支持Silverlight 2 的应用程序测试。通过UI Automation接口访问Silverlight界面控件。

在这方面,TestCompleteQTP等其他自动化测试工具领先不少(QTP仅支持Flex程序的测试,而且是通过AdobeFlex Builder提供的插件来完成的)。在RIA应用日趋流行的今天,对RIA应用程序的支持是自动化测试工具不容忽视的一项内容。

 

第三方控件

TestComplete 7中,添加了很多第三方控件的支持,例如Developer Express XtraEditors XtraBars Infragistics NetAdvantage Syncfusion Essential Studio MFC Feature Pack for Visual C++ 2008 Telerik RadControls for ASP.NET等。

第三方控件是自动化测试过程中碰到问题比较多的地方,TestComplete对众多第三方控件的支持无疑为其增色不少。在Grid类型的控件方面,TestComplete现在又添加了对以下控件的支持:

BorlandTStringGrid

DeveloperExpress XtraVerticalGridPropertyGridControl XtraTreeList

Microsoft MFCPropertyGrid

Rogue WaveStingray Objective Grid .NET

SyncfusionGridControl ScheduleGrid

Xceed Grid for.NET

尤其值得注意的是,TestComplete 7 现在支持采用QtwxWidgets框架构建的跨平台应用程序。TestComplete支持MinGWMicrosoft Visual Studio .NET 2003,Microsoft Visual Studio 2005 Microsoft Visual Studio 2008编译的Qt4.5程序。

另外,如果碰到一些自定义的.NETWPF控件,还可以使用TestComplete提供的SDK来开发插件,这些插件可以大大提供TestComplete与自定义控件的交互能力。

 

测试命令行应用程序

正当大家在为TestComplete对新技术的支持如此神速而惊叹的时候,TestComplete7还不失时机地添加了对命令行程序的扩展支持。这对于大家测试一些遗留的骨灰级程序,或者是一些后台服务器上的一些应用程序会比较有用。

TestComplete 7为我们提供了一种比较特别的命令行应用程序测试的方式,可通过类似于如下所示的代码来访问命令行应用程序的窗口:

Set p = Sys.Process("MyApp")

Set w = p.Window("ConsoleWindowClass", "*")

...

然后,可以通过如下方式向命令行应用程序发送字符串,就像在命令行中敲入命令一样:

Set p = Sys.Process("MyApp")

Set w = p.Window("ConsoleWindowClass", "*")

Call w.Keys("MyString [Enter]");

...

下一步就是获取命令行应用程序的响应了,在TestComplete中可以通过wText来获取,下面代码展示了一个完整的小例子:

Sub MyTest

 Dim p, w, txt, cnt, i, s

 

 Set p = Sys.Process("MyApp")

 Set w = p.Window("ConsoleWindowClass", "*")

 

 Call w.Keys("MyString [Enter]")

 

  ' 获取命令行窗口的文本

 txt = w.wText

  ' 指定分割符

 aqString.ListSeparator = vbNewLine

  ' 获取文本列表的长度

 cnt = aqString.GetListLength(txt)

 

 For i = 0 To cnt - 1

   ' 获取一行文本的字符串

   s = aqString.GetListItem(txt, i)

   ' 把字符串写入日志

   Call Log.Message(s)

 Next

End Sub

 

这种方式获取的是所有文本,如果想以一种交互式的方式来测试命令行应用程序的话,还可以利用WScript.Shell,例如下面的代码所示:

Sub Main

 Dim WshShellObj, WshShellExecObj, out

 

 Set WshShellObj = CreateObject("WScript.Shell")

 Set WshShellExecObj = WshShellObj.Exec("cmd.exe")

 

   'Flush the stream

  out = readTillChar(WshShellExecObj, ">")

  Log.Message(out)

  

   'Send the "ver" command and the new line character

  WshShellExecObj.StdIn.Write("ver"+VbCrLf)

  out = readTillChar(WshShellExecObj, ">")

  Log.Message(out)

End Sub

 

Function readTillChar(WshShellExecObj,endChar)

 Dim out, curChar

 

  DoWhile Not WshShellExecObj.StdOut.AtEndOfStream

  curChar = WshShellExecObj.StdOut.Read(1)

  out = out + curChar

  If (curChar = endChar) Then

  readTillChar = out

  Exit Function

  End If

 Loop

End Function

 

GUI Explorer

除了上面一些主要的改进和新特性外,TestComplete 7 还在很多细节的地方做了改进和提高,在Object Browser中,添加了一个GUI Explorer小工具,GUI Explorer可以帮助我们查看应用程序GUI界面控件的层次结构,例如,下图展现的是Google主页的GUI界面控件的层次结构:

GUI Explorer可以让我们观察界面上的对象,不管它是可见的还是隐藏的。在GUIExplorer中,窗体控件被画成亮灰色,非窗口控件则画成暗灰色,不可见的控件都是白色的,对于隐藏的控件,则画出其边界。

 

新加入了Table变量类型

TestComplete7引入了一个新类型的变量 – Table,其实就是一个二维数组。

Table可以在ProjectProject SuitesKeyword test中使用。例如,下面的代码展示了如何访问Table中的数据:

Sub getTableData

 

  columnCount = Project.Variables.Var1.ColumnCount

  rowCount = Project.Variables.Var1.RowCount

              

  For I=0 to rowCount-1

    For J=0 to columnCount-1

      Log.Message(Project.Variables.Var1.Item(J,I))

    Next

  Next  

  

End Sub

 

 

小结

TestComplete 7 的亮相给我们带来不少惊喜,例如对关键字测试的支持(虽然还有待改进,但是毕竟迈出了第一步)、对PDARIA应用的支持等。

此外,TestComplete一如既往地保持对新技术、工具、编译器的及时支持,例如:IE8被及时地支持了,CodeGearRAD Studio 2009也被及时地支持了。在TestComplete7 中,除了Microsoft Visual Studio Team System AutomatedQA自己的 AQdevTeam外,现在还支持把bug录到开源的Bugzilla(看来金融危机下,开源的东西开始被重视起来了)。

 

 

原创粉丝点击