TestComplete基础教程
TestComplete基础教程 - Getting Started with TestComplete
TIB⾃动化测试⼯作室
完整PDF版本下载:
PS:《TestComplete数据驱动基础教程》:
2010-9-6:
感谢TIB⾃动化测试⼯作室成员何嘉艺的努⼒,TestComplete帮助⽂档中《TestComplete测试.NET应⽤程序》的翻译已经完成,下载地址:
TestComplete Tutorials
Testcomplete包含了⼀系列的教程来帮助你熟悉testcomplete和学习相关的测试技术。每⼀个教程都详细的步骤来指引你轻松完成整个项⽬的创建,涵括了各种类型的测试场景。
Getting Started Tutorial
这份教程的对象是初学者。它会教你如何让在testcomplete⾸次创建简单的功能测试。在你学习完这节教程之后,你会掌握录制、修改、回放测试的技术。
这份教程包括如下两部分:
1.简要介绍⾃动化测试和testcomplete
2.创建你的第⼀个⾃动化测试:按照教程的指引步骤在testcomplete中创建你的第⼀个测试项⽬。
Introducing Automated Testing and TestComplete
这⼀节的主题是给出⾃动化测试和testcomplete的⼀个概况,包括:
⾃动化测试;
测试类型;
Testcomplete项⽬和项⽬内容(Projects and Project Items);
Testcomplete的⽤户界⾯(User Interface);
Testcomplete的测试对象模型(Test Object Model);
检查点和数据存储();
Automated Testing
软件测试是⼀个检查应⽤程序并从中发现错误的⼀个过程。测试中需要⽐较应⽤程序的实际输出与预期输出是否⼀致,才可以下结论说应⽤软件测试
程序是否实现了它应有的功能——这就是软件测试和试⽤软件的根本区别。换句话说,测试员不仅仅要保证应⽤程序显⽰了⼀系列的值,还要证实该显⽰的值是合适的值。
所以,测试的基本步骤如下:
定义预期输出;
进⾏测试动作(输⼊合适的值);
收集程序的输出并与预期输出(基线数据)作出⽐较;
如果⽐较失败,要告知开发⼈员或者经理。
⾃动化测试是⼀种⽤特定的程序(⽆⼈⼲预或者少量的⼈⼯⼲预)⾃动执⾏软件测试。⾃动化执⾏保
证不会跳过每⼀个测试动作;它使测⾃动化测试
试⼈员从重复执⾏沉闷的测试步骤中解放出来。
Testcomplete提供了⼀些专为⾃动化测试动作、定义基线数据、运⾏测试和记录测试结果⽇志的功能。它还提供了专门的对话框和提⽰来帮助你在测试中⾃动⽐较命令(或者检查点)。
Test Types
Testcomplete⽀持多种测试类型和⽅法:单元测试、功能和图形界⾯测试、回归测试、分布式测试等。在这份教程⾥,我们将创建⼀个我们最常⽤到的测试——功能测试。功能测试会检查应⽤程序与其他系统、⽤户之间的接⼝。他们将确认应⽤程序的功能与预期相同。
⼀个典型的功能测试由⼀系列的测试指令组成,这些测试命令形如模拟⽤户的⿏标点击和键盘输⼊。循环运⾏这些测试指令来验证被测软件的功能。
在Testcomplete⾥,能够以关键字测试(Keyword tests)或者脚本(Script)来的形式创建功能测试。这两种类型的测试都可以⽤内置的编辑器来录制(recordered)或者从零开始创建。创建关键字测试是可视化的,⾮常简单且不需要任何编程基础。脚本⽅式创建的测试则需要理解相关脚本的命令,但你能够从中创建更强⼤、更灵活的测试。Testcomplete⽀持的脚本包括VBScript, JScript, Delph
iScript, C++Script and C#Script,所以你可以从中挑选你最熟悉的脚本语⾔来使⽤。
在这份教程⾥,我们会使⽤关键字测试这⼀功能。
TestComplete Projects and Project Items
Testcomplete⽤项⽬(Projects)和项⽬组(project suites)来管理。项⽬创建测试的开端。它包括了你的所有测试,检查点的基线数据,被测程序的相关信息,和其在测试执⾏中需要⽤到的各项内容。项⽬中也定义了多个测试之间的执⾏次序,和项⽬累计执⾏测试后的⽇志。
⼀个项⽬可以包括对被测程序的所有测试。在复杂的被测程序中,你可以仅将⼀个项⽬专注被测程序的⼀部分,⽽让其他项⽬关注被测程序的另外的部分(通常是各个不同的模块)。
相关的多个项⽬(Projects)可以组织成⼀个项⽬组(project suites)。Testcomplete会在你创建⼀个新项⽬的时候⾃动创建⼀个项⽬组。你也可以创建⼀个空的项⽬组,然后利⽤Testcomplete的对话框来对项⽬组添加相应的项⽬。
项⽬项(Project items)是⽤来执⾏或者⽀援测试的项⽬元素。你可以在Testcomplete⾥查看和管理项⽬、项⽬组、项⽬项,如下图所⽰:java基础教程第三版pdf
如果项查看关于项⽬组的完整信息,请查看.
TestComplete User Interface
Testcomplete的主界⾯如下图所⽰:
如你所见,Testcomplete的⽤户界⾯组织在⼀系列的控制⾯板上。位于左边的项⽬浏览器⾯板()显⽰了项⽬和项⽬组的内容。它也提供了可链接到测试⽇志的节点。
⼯作区⾯板(The panel)是你的⼯作台:它显⽰了项⽬和项⽬项的编辑器,你可以在上⾯创建或者修改测试、查看测试结果。例如,在上图中你可以看到关键字测试编辑器在⼯作区中处于打开状态。
除了项⽬浏览器和⼯作区,Testcomplete还提供了其他控制⾯板。例如,, , 和⾯板供调试所⽤。⾯板把将要执⾏的测试管理起来,Code Explorer⾯板则提供了浏览脚本内容、导航脚本单元的的快捷⽅式。
Object Browser⾯板显⽰了Testcomplete中与项⽬⽆关的功能:它以列表的形式显⽰了当前机器上的所有进程和窗⼝。若对应进程和窗⼝的属性和⽅法能够被Testcomplete内部识别出来,Object Browser⾯板就会显⽰。换句话说,Object Browser能告诉你那些对象、⽅法和属性是可测的,和怎样取来测。
如果想跟深⼊了解⾯板的使⽤,在⾥⾯单击⼀下,然后点击f1,就能打开对应⾯板的描述信息。
你可以使⽤菜单和⼯具栏来执⾏相应的功能。它的菜单、⼯具栏系统和Microsoft Visual Studio、流⾏的windows应⽤程序⾮常类似。你可以改变⼯具栏的位置,把⾥⾯的内容转移到其他菜单或者⼯具栏中、隐藏内容、把隐藏的内容还原等等。请参见Toolbars Customization。
TestComplete Test Object Model
对象浏览器⾯板显⽰了对象的结构,如下图⽰:
Testcomplete使⽤了树形模型来组织被测对象。根结点是Sys(桌⾯应⽤程序和窗⼝)和PDA(⼀些运⾏在连接你计算机的WindowsMobile 设备的程序)
Process对象
对象相当于运⾏在操作系统上的应⽤程序。我们⽤术语Process(进程)⽽不是application(应⽤程序),这是因为这等价于windows⽂档⾥有关进程的概念。
进程对象的名称包括正在执⾏的进程的名称和它对应的索引(index)值。注:index只使⽤在多个应⽤程序执⾏的环境下:
进程(Processes)有他们的⼦对象(窗⼝),也就说是(⼦对象的)顶层窗⼝。这些对象都拥有它们
对应控件的⼦窗⼝。这些窗⼝和控件的命名取决与测试引擎是否能够识别出被测应⽤程序的内部⽅法和属性。Testcomplete⽀持上述的两种类型,但⽤不同的⽅法来命名它们的各总窗⼝的控件。
⿊合应⽤程序:
⿊合应⽤程序
⿊合应⽤程序指的是不提供访问它们内部⽅法和属性的应⽤程序。它们的命名包括window’s class name, window’s text 或title (caption) ,和它的 index。控件的命名⽅式和窗⼝的命名⽅式类似,因为就操作系统⽽⾔,控件只是窗⼝的类型之⼀:
⽩盒应⽤程序:
那种向Testcomplete提供其内部属性和⽅法的应⽤程序叫做⽩盒应⽤程序或者开合应⽤程序。它们⽤作标⽰,显⽰在对象浏览器上。为了突出⽩盒应⽤程序的窗⼝和控件,Testcomplete使⽤了特别的命名⽅式,可以反映出控件或窗体的类型、在源码中定义的名称。
例如,你有个⽤C#调⽤Microsoft WinForms库⽣成的名为MainForm的窗体,Testcomplete将以这种形式来识别:
WinFormsObject("MainForm")
注:强烈建议在有条件的情况下选择⽩盒应⽤程序来测试,⽽不是⿊合应⽤程序。这使得测试引擎能够识别出被测程序的内部⽅法和属性,使你的测试更加有效灵活。
有些程序像.NET, WPF, Visual Basic, Java 或者 Web对Testcomplete都是⽩盒应⽤程序,⽽其他的可能要通过⼀些特别的⼿段编译才⾏。
Checkpoints and Stores
⼀个典型的测试中会进⾏多次的⽐较。例如,⼀个模拟⽤户输出应⽤程序的⽂件的测试场景,你需要去验证输出的数据是否有效。为了完成这⼀测试,你需要将输出的⽂件和预期的⽂件相⽐较。这仅仅是⼀个例⼦,在真实的测试中,你要作成百上千次⽐较。各种类型的⾃动化测试(回归、单元、功能等等)都需要⼀个参照值来对⽐验证。
在Testcomplete下可以很轻松地在测试中加⼊⽐较命令(或者检查点)。你可以在录制测试和设计时加⼊检查点。Testcomplete提供⽐较不同类型数据的检查点:图像、⽂件、对象⽂本和属性(Object text and properties)、xml⽂档、数据库表(database tables)等。Testcomplete包含了数据存储(Stores)这⼀项⽬项(project item),可⽤来存放检查点的基线数据。这些项⽬项是⼀个容器,存放了图
些基线数据是在测试中定义的。
像、⽂件和其他⽤于测试⽐较的元素。唯⼀例外的是⽤于验证对象属性的检查点:这些基线数据是在测试中定义的。
Creating Your First Test
这⼀⼩节的教程提供了详细的操作步骤,告诉你如何在Testcomplete下创建项⽬、录制和回放简单的测试、和分析测试结果。这个测试模拟了⽤户使⽤被测软件的⾏为,同时验证了⼀些数据。验证命令会在录制测试的过程中⽣成。
在我们的讲解⾥,我们使⽤⼀个名为Orders的应⽤程序来作演⽰(它是随着Testcomplete发布的)。这⼀应⽤程序显⽰了⼀个订单列表,还包含了⼀些特定的功能:增加、删除、修改、输出订单。
这个应⽤程序在以下路径可以到:
在 Windows 7, Windows Vista 或者 Windows Server 2008:
C:\Users\Public\Documents\TestComplete 7 Samples\Open Apps\OrdersDemo
在Windows XP, Windows Server 2003 或者 Windows 2000:
C:\Documents and Settings\All Users\Documents\TestComplete 7 Samples\Open Apps\OrdersDemo
注意在Windows Explorer和打开、保存⽂件框下,All Users\Documents⽂件夹可能会显⽰成All Users\Shared Documents.
这个⽂件夹下存放和很多订单项⽬,它们由不同的编译器创建的:C#, Visual C++, Visual Basic, Delphi, C++Builder, Swing等等。我们采⽤由C#创建的Orders应⽤程序。
1. Creating a Test Project
让我们来创建⼀个新项⽬:
1. 如果你当前在Testcomplete下打开了项⽬组或者项⽬,先关闭它们。在菜单栏点击File | Close能完成这⼀步骤。
2. 在菜单栏选择File | New | New Project。这会调⽤创建新项⽬的对话框。这个对话框由两种⼯作模式:简单(Simple)和典型
(Classic)。在简单模式是默认的模式,对话框包括了3个输⼊⽂本框,你可以填上项⽬名、路径和脚本语⾔。在典型模式下,你也可以定义项⽬组的名称(project suite name)、选择项⽬模板(project’s template)和项⽬项(project items)。
这份教材⽤的是简单模式,它⽐典型模式更常⽤。
1. 我们现在输⼊项⽬名、路径和脚本语⾔
l 在Language⽂本框我们定义在测试中将要⽤到的脚本语⾔。在这⾥我们选择了VBScript。即使你不使⽤脚本单元,脚本语⾔也是⾮常重要的。即使你准备使⽤关键字测试,你可能也会调⽤⼀⼩段的代码或者使⽤脚本来定义执⾏参数(operation parameters)。
说脚本语⾔重要,是因为它定义了对象名(object names)的格式,这是测试总要⽤到的,不管你是⽤脚本还是关键字测试。名称的格式是由脚本语⾔的语法来定义的。例如,在VBScript 和 Jscript,Notepad显⽰成Process("Notepad"),⽽在DelphiScript你要把双引号变成单引号,如Process ('Notepad');在C++Script 和 C#Script下“Process”必须在⽅括号⾥:["Process"]("Notepad")。
Testcomplete对VBScript, JScript, DelphiScript, C++Script 和 C#Script都⽀持,因此你可以选择你最熟悉的语⾔。⽆论你选择哪种语⾔,你都能够使⽤Testcomplete的所有特性。然⽽,也难为不同的语⾔有不同的语法,它们的脚本解释器是由不同的脚本引擎来执⾏的,它们会有⼀些例外(见Supported Scripting Languages – Peculiarities of Usage)。想获得更过关于语⾔选择的信息,请看(Selecting the Scripting Language)。
请注意到,脚本语⾔和被测程序使⽤什么语⾔是毫⽆关系的。例如,你⽤Jscript来测试Visual C++写的程序或者⽤VBScript测试Delphi写的程序。然⽽,如果你想创建⼀个连接(Connected)或者⾃动⾃
测(Self-Testing Application)的程序,我们建议你选择与被测程序的开发⼯具关联最密切的语⾔。例如,如果你使⽤Visual C++ 或 C++Builder,你应该选择C++Script;如果你使⽤的是Visual Basic,你应该选择VBScript,以此类推。这会使录制脚本更容易导⼊连接(Connected)或者⾃动⾃测(Self-Testing Application)程序。
1. 在你定义了项⽬名称、脚本语⾔和路径之后,点击Create按钮。Testcomplete将会创建⼀个新项⽬,Orders.mds,和⼀个对应的项⽬
组。它会接着在项⽬浏览器⾯板显⽰项⽬组和项⽬内容。
2. Defining Applications to Test
每个项⽬或许会有被测程序的列表。这是让你跟踪那个项⽬对应哪个程序和它们在测试⾥如何配置。这允许Testcomplete去执⾏列表⾥⾯的每⼀个引⽤程序或者在内容菜单或测试⾥⼿⼯执⾏。当然,因为项⽬之间是相对独⽴的,不同的被测程序会分布在不⽌⼀个的项⽬⾥⾯。
你可以⼿⼯向列表添加被测应⽤程序,或者让Testcomplete在录制测试的过程中⾃动完成。录制器⼗分聪明,能够通过命令⾏、windows Explorer或者其他⽅式检测到应⽤程序开始执⾏。在录制结束之后,Testcomplete会把被测程序加载到列表中,同时加载“Run Tested Application”到录制完的测试⾥⾯。
在这⼀份教程⾥,为了让你更熟悉列表、演⽰Testcomplete中管理被测程序这⼀特性,我们⼿⼯来向列表添加被测程序。
让我们添加⼀个简单的被测程序到列表⾥:
1. 在项⽬浏览⾯板⾥右键单击TestedApps节点
1. 在内容菜单⾥选择Add | New Item,这会弹出⼀个标准的Open File dialog。
2. 到使⽤这个Open File dialog的可执⾏⽂件,然后点击Open。
回忆⼀下,我们将使⽤Orders这个⽤C#编写、随着Testcomplete发布的简单程序。它的路径像是这样的:
C:\Documents and Settings\All Users\Documents\TestComplete 7 Samples\Open Apps\OrdersDemo\C#\bin\ (Windows XP, Windows 2000 or Windows Server 2003), 或C:\Users\Public\Documents\TestComplete 7 Samples\Open
Apps\OrdersDemo\C#\bin\Debug\
< (Windows 7, Vista or Windows Server 2008).
1. 在你向列表添加完被测程序后,你可以定义它的运⾏模式和运⾏参数。要获取更多的信息,请查看Run Modes这份帮助⽂档。在这份
教材⾥,我们会使⽤默认设置。
2. 通过在主菜单点击File | Save来保存你的更改。
3. Planning Your Test
General Notes on Planning Tests
通常,做个测试计划是个很不错的实践:
定义测试⽬标和制定哪些功能需要被测试。⽬标越清晰,测试越简单、越有效。⼤型的、要处理⼤量程序⾏为的测试⾮常的难以创建l 定义测试⽬标
和维护。创建⼀个⽬标明确的、简单的测试更有好处。⼀旦你建⽴了很多简单的测试,你可以将它们组织到⼀个更⼤的测试⾥⾯。
计划测试步骤和决定运⾏哪些测试场景。测试步骤由测试的⽬的和被测程序的特性来共同决定。测试步骤可能包括测试程序的前期准l 计划测试步骤
备(⽐如被测程序的初始化)。测试步骤也可以是给应⽤程序⼀些初始的输⼊值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论