TestComplete使用.docx
- 文档编号:4889464
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:24
- 大小:1.33MB
TestComplete使用.docx
《TestComplete使用.docx》由会员分享,可在线阅读,更多相关《TestComplete使用.docx(24页珍藏版)》请在冰豆网上搜索。
TestComplete使用
1TestComplete安装
1.1安装TestComplete7.5.2
⏹执行安装testcomplete752ent.exe,安装过程同其他软件,安装要求点击下一步直到完成即可。
⏹安装后,将TestComplete7.20.exe复制到TectComplete安装目录中的bin目录下用于破解。
1.2破解TestComplete7.5.2
⏹运行TestComplete7.20.exe,出现注册界面
⏹打开破解工具AutomatedQA.TestComplete.Keymaker,如图:
◆选择Edition下的Enterprise
◆点击Generate
◆然后分别复制破解软件下的Username、Companyname、RegistrationCode并粘贴在TC弹出框的对应位置,点击OK,完成注册。
说明:
TestComplete7.20.exe启动文件仅用于注册,在实际使用TC过程中,都采用7.52的启动文件
1.3VBS脚本调试器安装
⏹由于我们的测试脚本使用的是VBS,第一次使用TC可能会提示是否下载VBS调试程序,如下图:
⏹点击Close,执行scd10en.exe
2TestComplete概述
2.1Testcomplete是什么?
TestComplete(以下简称TC)是一个用于软件自动测试的工具,可以用于软件的单元测试、功能测试、分布式测试等等。
业界类似的工具还有HP公司的QuickTestProfessional(QTP)、IBM公司的Robot等。
2.2TC如何工作
TC可以记录人对软件的鼠标、键盘操作,然后通过脚本回放来模拟这些操作,达到模拟人来操作软件。
TC还可以访问和检查内存中windows对象的属性;访问和检查数据库的记录,达到检查软件操作后是否符合预期结果。
3TC的IDE
4
4.1MenusandToolbars(菜单与工具栏)
和VB的开发环境类似,工具栏可以自定义。
4.2PanelsandWorkspaces(面板和工作区)
TC的用户界面组织在一系列的控制面板上,包括多个工作区域
4.2.1ProjectExplorer
包括2个工作区域
●ProjectExplorer:
显示项目和项目组的内容
ProjectSuite:
TC的工程组
Project:
TC的工程
ProjectItem:
TC工程中的各种项目
KeyWordTesting:
关键字测试
LogResults:
测试执行结果
●CodeExplorer
UnitMetrics:
代码度量
4.2.2ObjectBrower(对象浏览器)
以列表的形式显示了当前机器上的所有进程和窗口。
若对应进程和窗口的属性和方法能够被TC内部识别出来,ObjectBrowser面板就会显示。
换句话说,ObjectBrowser能告诉你那些对象、方法和属性是可测的,和怎样取来测。
1、ProcessTreePane
以树形模型来组织被测对象。
根结点是Sys(桌面应用程序和窗口),其实一个Porcess就对应一个application(应用程序)。
树中显示了机器中当前正在运行的Process,可以通过工具栏对Process进行Filter(
)。
2、右键菜单
在Processtree中选中对象,点鼠标右键,可以执行以下操作。
比如Refresh(刷新)、MaptheObjectName(建立对象的Namemapping,后续会重点讲解)。
3、ObjectProperties
在Processtree中选中对象,点鼠标右键可以调用,工具栏上也可以调用
。
用于对程序对象进行探测分析,相当于ObjectSpy。
是使用TC中重要功能,后面会重点介绍。
4.2.3WhiteBoxApplication和BlackBoxApplication
白盒应用程序
那种向Testcomplete提供其内部属性和方法的应用程序叫做白盒应用程序或者开合应用程序。
它们用作标示,显示在对象浏览器上。
为了突出白盒应用程序的窗口和控件,Testcomplete使用了特别的命名方式,可以反映出控件或窗体的类型、在源码中定义的名称。
例如,ZLHIS的导航台窗体,TC识别为:
VBObject("frmBrower")
黑合应用程序
黑合应用程序指的是不提供访问它们内部方法和属性的应用程序。
它们的命名包括window’sclassname,window’stext或title(caption),和它的index。
控件的命名方式和窗口的命名方式类似,因为就操作系统而言,控件只是窗口的类型之一。
5创建一个TC的TestProject
5.1Project、ProjectSuite和Item
●Project:
和VB的工程类似,是TC的Script(脚本)和其他Item的一个容器。
●ProjectSuites:
和VB的工程组类似,是Project的容器
●Item:
TC的工程文件,和VB类似,包含多种类型的Item,我们的测试中基本只用到4中Item
⏹Events:
事件
⏹Namemapping:
测试对象库
⏹Script:
测试脚本
⏹TestApps:
测试程序
5.22种Test
●KeyWordTest:
⏹TC提供的一种测试脚本类型
⏹使用可视换的设计方式设计
⏹对VBScript、C#等编程语言不熟悉的人也可以设计测试脚本。
●ScriptTest
⏹另一种测试脚本类型
⏹直接编写脚本语句来实现测试
⏹需要对VBScript、C#等编程语言熟悉。
⏹我们统一使用ScriptTest类型。
不使用keywordtest。
5.3代码模板(CodeTemplates)
●辅助编写代码,按“Ctrl+j”可以调出
●代码模板:
常用代码段得示例,比如选择“SUB”后,TC会根据模板补上“EndSub”
导入自定义的代码模板
5.4创建一个TestProject
在菜单栏选择File|New|NewProject
这会调用创建新项目的对话框。
这个对话框由两种工作模式:
简单(Simple)和典型(Classic)。
在简单模式是默认的模式,对话框包括了3个输入文本框,你可以填上项目名、路径和脚本语言。
在典型模式下,你也可以定义项目组的名称(projectsuitename)、选择项目模板(project’stemplate)和项目项(projectitems)。
●projectname:
TC工程的名称
●Language:
测试脚本使用的语言,我们同样使用VBScript。
●Location:
TC工程存储的位置
5.5制定测试计划
●定义测试目标:
制定哪些功能需要被测试。
目标越清晰,测试越简单、越有效。
大型的、要处理大量程序行为的测试非常的难以创建和维护。
创建一个目标明确的、简单的测试更有好处。
一旦你建立了很多简单的测试,你可以将它们组织到一个更大的测试里面。
一个测试最后做做简单的测试,一个复杂的程序功能有多个简单的测试组成。
●计划测试步骤:
设计和决定运行哪些操作来达到测试的目标。
包括测试前期准备,比如录入测试执行需呀的数据,测试过程的操作步骤等。
●计划检查点的动作:
在应用程序执行了一些操作之后,应用程序将会发生一些改变:
在程序窗口的数据可能会被改变,一个新的窗口被创建、数据库的记录被改变等。
测试执行后检查这些变化是否符合预期的结果。
●记录测试结果:
TC会自动记录测试结果,另一方面可以使用TC提供的方法来记录测试结果。
通过而是结果可以发现被测试程序是否有错误,错误的具体内容是什么。
5.6增加testedApps
●在ProjectExplorer中双击打开TestedApps
●点鼠标右键执行”NewItem“
●选择待测试的程序启动文件进行添加
5.7录制测试
在不知道如何编写通过TC操作软件的脚步的时候,可以通过TC录制对软件的操作过程。
●启动录制
在Testcomplete的主菜单或者测试引擎工具栏点击Test|Record|RecordScript。
注意是“RecordScript”,不是“RecordKeyWordScritp”。
或者点击工具栏按钮
●录制启动后在屏幕上显示Recordingtoolbar
这个工具栏包括了一些附加功能,你可以在录制中使用,暂停或停止录制,填写注释等。
●按测试步骤执行操作
⏹等待出现登录窗口
⏹输入用户名:
**
⏹输入密码:
**
⏹点确定按钮
●点“Stop”停止录制
5.8回放执行
方式1:
点击“RunCurrentRoutine”按钮
方式2:
设置TestIte
StepIn、StepOut、WatchList:
和VB类似
5.9查看执行结果
●打开Logs
●查看执行结果
⏹TC通过TestLog来记录执行结果,Log分为
◆Error:
错误信息
◆Warning:
警告信息
◆Message:
消息信息
◆Event:
事件信息
◆Image:
图片信息
⏹双击Log信息,可以定位到产生参数信息的脚本语句。
6录制脚本的讲解
6.1TestedApps.**.Run
●启动执行测试的程序,这里就是执行**.exe。
6.2CallDelay(1505)
●等待延时,也叫“思考时间”。
●一方面用于模拟人工的操作。
因为脚本回放的操作是很快的。
而人的操作相对要慢一些。
●另一方面,有些情况下,由于网络、数据库等原因,执行一个操作后,需呀等待一定时间,才能进行后续操作。
比如保存数据时,点击“保存”按钮后,不可能立即就点“退出”按钮。
●TC在录制脚本是,可以自动加上“思考时间”,也可以不自动加上。
在Tools|Options|Enginges|Recording中设置或取消设置“Real-Timemode”
●
6.3CallSys.Process("**").frmUserLogin.txt_2.Click(47,15)
●鼠标点击用户名
6.4Sys.Process("**").frmUserLogin.txt_2.wText="admin"
●输入用户名
●这是TC封装的一种输入方法,这种输入方法不产生Key事件。
6.5CallSys.Process("**").frmUserLogin.txt_2.Keys("[Enter]")
●在用户名文本框中“输入”内容
●这是TC封装的另一种输入方法,这种输入方法产生Key事件。
6.6Sys.Process("**").frmUserLogin.TXT_.wText="admin"
●输入密码
6.7Sys.Process("**").frmUserLogin.CMD_3.ClickButton
●点击“确定”按钮
6.8Sys.Process("**").frmSelClient.VBObject("cmdOK").ClickButton
●点击另一个“确定”按钮(站点选择)
●站点选择不一定出现
7脚本的改进:
不需要的语句
●CallSys.Process("**").frmUserLogin.txt_2.Click(47,15)
⏹可以不选中用户名,就执行输入
●Sys.Process("**").frmSelClient.VBObject("cmdOK").ClickButton
⏹如果预期站点选择窗口不出现,就可以取消这句。
8脚本的改进:
使用NameMapping
8.1脚本一些问题
A.Sys.Process("**").frmUserLogin.txt_2.wText="admin"
B.Aliase.Base.frmUserLogin.txtUserName.wText=”admin”
●上面2句中,明显B更容易理解,特别是对脚本维护人员来说。
●由于TC是按对象树来操作测试对象的,有些测试对象可能在树的深层中,使用时对象的名称就会很长。
不容易记忆。
8.2Namemapping的创建方法
●TC提供自动创建(在录制是就自动创建)和手工创建两种方式。
●因为自动创建在使用对象识别属性、对象命名等方面无法标准化,我们必须使用手工创建的方式。
●取消“MapObjectnamesautomatically”的设置。
8.3Namemapping创建步骤
8.3.1操作测试程序,直到在出现测试界面。
8.3.2点击对象“探测”按钮
,出现ObjectProperties窗口
8.3.3指定测试对象
●“拖动”式,点
按钮,按住鼠标左键不放,把鼠标拖动到某个测试对象上,该对象就会显示一个红框,在松开鼠标右键。
●“点击”式,点
按钮,然后版鼠标移动到测试对象上,测试对象显示红框,在按“Shift+Ctrl+A”键。
8.3.4TC显示对象属性
TC识别的对象属性
在程序界面“高亮”显示对象
在ObjectBrower的对象树中定位
输入属性名称查找
8.3.5点击
按钮,在ObjectBrower中显示对象
然后点击鼠标右键,执行“MaptheObjectName”
8.3.6“父”对象提示窗口
●TC的测试对象是一个“树”
●如果选择建立Namemapping的是一个子对象,而它的“父”对象没有建立Namemapping是,会出现提示创建各级父对象的窗体
8.3.7ObjectNameMapping的信息设置
8.3.8
对象的实际属性
对象识别属性
把对象的实际属性设置为识别属性或取消识别属性
●点击“OK”完成Namemapping创建
8.4Namemapping的使用
Namemapping创建好后,可以在脚本中使用了。
录制时:
Sys.Process("**").frmUserLogin.txt_2.wText="admin"
现在可以修改为:
NameMapping.Sys.**.frmUserLogin.txtUser.wText="admin"
8.5Aliases的使用
Namemapping相当于一个对象仓库,把测试的对象都存储在“仓库”中了(使用过QTP的就知道对象仓库的概念)。
对象仓库的对象使用还是有一个麻烦,因为对象仓库中是按对象的树形结构存储和使用的。
对象的名称可能还是很长。
TC提供了一个Aliase,可以为对象建立一个“别名”树。
别名树在创建Namemapping时就创建了,树的结构和Namemapping一样。
可以调整Aliase的结构,一个对象也可以建立多个Aliase
8.5.1Aliases的创建方法
1.使用鼠标在MappedObjects中选中对象,然后拖动到Aliase区域中相应的位置
2.松开鼠标
如果拖动的对象有子对象,会询问是否创建所有子对象的Aliases
8.5.2Aliases的结构调整
Aliases创建的缺省树形结构和Namemapping一样,可以调整结构。
调整方法:
鼠标右键拖动
8.5.3Aliases删除
删除Aliases时会询问是否删除namemapping,这里一定注意,选择“NotoAll”,否则会删除namemapping,对象无法在使用了。
9脚本的改进:
使用变量
9.1函数变量
●相当于VB的函数私有变量
●只在函数内部有效
●可以不声明就使用
●VBScript中,只有Variant这一种数据类型
9.2脚本变量
●相当于VB种的Public变量
●可以在脚本文件的所有函数中有效
●在函数文件头声明或赋值
9.3Project变量
●在一个工程中的所有脚本中都可以使用
●在TC设置
1.在ProjectExploer中,双击Project1
点鼠标右键增加变量
点击这里设置Project变量
2.Project变量分为2类
◆PersistentVariables:
持续变量,这类变量的值会保存下来,下次执行测试时有效。
◆有这些数据类型
◆TemporaryVariables:
临时变量,这类变量的值不会保存,只在一次测试执行时有效。
◆有这些数据类型
Ojbect:
可以存储一个对象
Table:
可以存储一个2维的表格数据
●变量使用方法:
Project.Variables.Var1
9.4ProjectSutie变量
●在所有工程的所有脚本中可以使用
●变量使用方法:
ProjectSuite.Variables.Var1
●其他和Project变量相同
10TC的Project的存储目录结构
10.1Item的复用
●每个TC的Item可以属于一个Project,也可以属于多个Project
●在Project中,使用其他Item,在增加Item时选择增加“ExistingItem”
●一个Item可以存储在Project目录,也可以存储在任意目录。
11脚本改进:
参数化和使用函数
11.1参数化的概念
所谓参数化,就是把脚本中“固定”的数据使用参数、变量来代替。
提供脚本的可维护性和可复用性。
比如,登录ZLHIS的脚本应该要被其他脚本调用,用户名就需要参数化。
11.2TC的函数类型
和VB一样,包括SUB和Function这两种
11.3函数调用方法
和VB一样
11.4调用同一Project中其他脚本函数的方法
●在脚本文件头添加脚本文件引用:
’USEUNIT脚本文件名
11.5调用其他Project脚本函数的方法
11.5.1增加复用的脚本文件
●选择增加“ExistingItem”,然后选择需要文件
●再按调用同一Project其他脚本函数的方法调用
12TC中的ADO
12.1ADOCommand对象
用于数据表的更新
创建ADOCommand对象
setcmd=ADO.CreateADOCommand
配置数据库连接
cmd.ConnectionString="Provider=MSDAORA;"&"UserID=admin;Password=admin;datasource=test"
设置数据看更新命令
cmd.CommandText="Update..."
执行
cmd.Execute
12.2ADODataSet对象
用于数据表的查询
创建ADOCommand对象
setrec=ADO.CreateADODataSet
配置数据库连接
rec.ConnectionString="Provider=MSDAORA;"&"UserID=admin;Password=admin;datasource=test"
设置数据看更新命令
rec.CommandText="Select..."
执行
Rec.open
使用
Log.messagerec.Field(0).value
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TestComplete 使用