TestComplete7亮相

注:本文最早于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 一样的关键字测试功能,这让很多初学者感觉其使用的难度较高。现在好了, TestComplete 7 增加了关键字测试功能,实现其“ 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 测试的支持是 TestComplete 7 的另外一大亮点。在 TestComplete 7 中,有专门的扩展用于支持 PDA 应用程序的测试。

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

 

不容忽视的 RIA

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

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

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

在这方面, TestComplete QTP 等其他自动化测试工具领先不少( QTP 仅支持 Flex 程序的测试,而且是通过 Adobe Flex 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 现在又添加了对以下控件的支持:

Borland TStringGrid

Developer Express XtraVerticalGrid PropertyGridControl XtraTreeList

Microsoft MFC PropertyGrid

Rogue Wave Stingray Objective Grid .NET

Syncfusion GridControl ScheduleGrid

Xceed Grid for .NET

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

另外,如果碰到一些自定义的 .NET WPF 控件,还可以使用 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

 

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

 

新加入了 Table 变量类型

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

Table 可以在 Project Project Suites Keyword 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 的亮相给我们带来不少惊喜,例如对关键字测试的支持(虽然还有待改进,但是毕竟迈出了第一步)、对 PDA RIA 应用的支持等。

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

 

 

你可能感兴趣的:(测试,Flex,Microsoft,silverlight,测试工具,RIA)