`
dtrex
  • 浏览: 138327 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SilkTest那些事儿_第一章 ST的HelloWord_录制回放1

阅读更多

 但凡程序员学习一门新语言,他要干的就是打出一个Hello World来。甚至某位程序员联系书法,展开宣纸,磨好墨,tian四声(此字不会写啊)好笔,大笔一挥,就是Hello World。本人这里,就用Hello World来代替入门的意思。带着大家一起快速入门silktest。

一般将自动化测试工具入门必从录制回放开始,一般还都选择计算器,咱也别找那个例外了,来个痛快的,速速开始。


录制回放计算器

1. 新建测试项目
首先打开你的SilkTest软件,然后从菜单里选择“File->New Project”,这时会弹出一个“New Project”的对话框,里面有两项“Create Project”和"Auto Generate Project",我们选择“Create Project”然后点击"OK"按钮。这时又出现了一个对话框,要求你输入Project的名字,请在"Project Name"里面输入Calculator,然后选择你要保存Project的路径,例如:“D:\Program Files\Borland\SilkTest\Projects\Calculator”,点击确定。这个时候你的新项目Calculator就建好了。

一连串枯燥的说明,照着做吧。

 

2.录制脚本

在真正的开始录制之前,先介绍一些定义,以便后面出现这些古古怪怪的东西的时候,大家能认得。AUT(application under test)俗称的被测系统,比方说我们马上要录制计算器了,计算器就是被测系统。GUI(graphical user interface)图形用户界面,打开计算器看到的东东就是GUI,一个可以看到可以操作的界面,所谓的录制就是录制在GUI上的操作。“抓取GUI”这个一般是简称,说的简单点就是获取AUI的GUI定义。怎么理解呢?我们知道进行自动化测试,就是就是用程序或者工具模拟人工的操作,才测试系统。人是知道这个按钮是提交,那个按钮是取消,这个是用户名输入框,一看就知道了。机器不行,搞图像识别这个成本太高了。机器怎么搞啊,机器通过“抓取GUI",将GUI的控件进行了自己定义,比方说他发现这个提交按钮在开发的时候起了一个名字叫submit,这个界面中没显示,是这个控件的属性,虽然人看不到但是机器能读到,于是他记住了有个叫submit的按钮控件。当录制操作的时候,你点了这个按钮,机器是发现你点了一个叫submit的按钮,它就记录下来,下次回放的时候,他还点这个按钮。有意思把,根据AUT的类型不同具体的识别原理略有不同,今后碰到了,我会详述一下。现在大家只要知道是机器记住了GUI上控件的某些属性来识别控件的,而抓取GUI就是一个识别记录的过程就行了。

现在就进行抓取GUI,抓取GUI之前我们先建立一个Test Frame文件,咱就用这个文件来放置GUI的定义。首先打开程序>附件>计算器;然后选择在ST中选择菜单"File->New",这样你就能弹出的对话框中选择"Test Frame"文件类型了,然后在"new test frame"对话框中选择"application"为计算器,其他的默认好了,点击OK按钮,SilkTest就帮你自动在Include/Frame目录下生成了frame.inc文件。文件里的代码如下:

 

[ ] const wMainWindow = 计算器
[ ] 
[+] window MainWin 计算器
	[+] multitag "计算器"
		[ ] "$C:\WINDOWS\system32\calc.exe"
	[ ] 
	[ ] // The working directory of the application when it is invoked
	[ ] const sDir = "C:\WINDOWS\system32"
	[ ] 
	[ ] // The command line used to invoke the application
	[ ] const sCmdLine = "C:\WINDOWS\system32\calc.exe "
	[ ] 
	[ ] // The first window to appear when the application is invoked
	[ ] // const wStartup = ?
	[ ] 
	[ ] // The list of windows the recovery system is to leave open
	[ ] // const lwLeaveOpen = {?}
	[ ] 
	[+] Menu 编辑E
		[+] multitag "编辑(E)"
			[ ] "#1"
		[+] MenuItem 复制C
			[+] multitag "复制(C)"
				[ ] "#1"
				[ ] "$300"
		[+] MenuItem 粘贴P
			[+] multitag "粘贴(P)"
				[ ] "#2"
				[ ] "$301"
	[+] Menu 查看V
		[+] multitag "查看(V)"
			[ ] "#2"
		[+] MenuItem 标准型T
			[+] multitag "标准型(T)"
				[ ] "#1"
				[ ] "$305"
		[+] MenuItem 科学型S
			[+] multitag "科学型(S)"
				[ ] "#2"
				[ ] "$304"
		[+] MenuItem 数字分组I
			[+] multitag "数字分组(I)"
				[ ] "#3"
				[ ] "$303"
	[+] Menu 帮助H
		[+] multitag "帮助(H)"
			[ ] "#3"
		[+] MenuItem 帮助主题H
			[+] multitag "帮助主题(H)"
				[ ] "#1"
				[ ] "$317"
		[+] MenuItem 关于计算器A
			[+] multitag "关于计算器(A)"
				[ ] "#2"
				[ ] "$302"
	[+] TextField TextField1
		[+] multitag "#1"
			[ ] "$403"
	[+] PushButton MC
		[+] multitag "MC"
			[ ] "#4"
			[ ] "$113"
	[+] PushButton MR
		[+] multitag "MR"
			[ ] "#10"
			[ ] "$114"
	[+] PushButton MS
		[+] multitag "MS"
			[ ] "#16"
			[ ] "$115"
	[+] PushButton M
		[+] multitag "M+"
			[ ] "#22"
			[ ] "$116"
	[+] PushButton N7
		[+] multitag "7"
			[ ] "#5"
			[ ] "$131"
	[+] PushButton N4
		[+] multitag "4"
			[ ] "#11"
			[ ] "$128"
	[+] PushButton N1
		[+] multitag "1"
			[ ] "#17"
			[ ] "$125"
	[+] PushButton N0
		[+] multitag "0"
			[ ] "#23"
			[ ] "$124"
	[+] PushButton N8
		[+] multitag "8"
			[ ] "#6"
			[ ] "$132"
	[+] PushButton N51
		[+] multitag "5"
			[ ] "#12"
			[ ] "$129"
	[+] PushButton N2
		[+] multitag "2"
			[ ] "#18"
			[ ] "$126"
	[+] PushButton PushButton24
		[+] multitag "+?-"
			[ ] "#24"
			[ ] "$80"
	[+] PushButton N91
		[+] multitag "9"
			[ ] "#7"
			[ ] "$133"
	[+] PushButton N6
		[+] multitag "6"
			[ ] "#13"
			[ ] "$130"
	[+] PushButton N3
		[+] multitag "3"
			[ ] "#19"
			[ ] "$127"
	[+] PushButton N16
		[+] multitag "?[16]"
			[ ] "#25"
			[ ] "$85"
	[+] PushButton N52
		[+] multitag "?[5]"
			[ ] "#8"
			[ ] "$90"
	[+] PushButton N92
		[+] multitag "?[9]"
			[ ] "#14"
			[ ] "$91"
	[+] PushButton PushButton20
		[+] multitag "-"
			[ ] "#20"
			[ ] "$93"
	[+] PushButton PushButton26
		[+] multitag "+"
			[ ] "#26"
			[ ] "$92"
	[+] PushButton PushButton27
		[+] multitag "="
			[ ] "#27"
			[ ] "$112"
	[+] PushButton Backspace
		[+] multitag "Backspace"
			[ ] "#1"
			[ ] "$83"
	[+] PushButton CE
		[+] multitag "CE"
			[ ] "#2"
			[ ] "$82"
	[+] PushButton C
		[+] multitag "C"
			[ ] "#3"
			[ ] "$81"
	[+] StaticText StaticText1
		[+] multitag "#1"
			[ ] "$401"
	[+] PushButton N1X
		[+] multitag "1?x"
			[ ] "#21"
			[ ] "$107"
	[+] PushButton Sqt
		[+] multitag "sqt"
			[ ] "#9"
			[ ] "$103"
	[+] PushButton PushButton15
		[+] multitag "%"
			[ ] "#15"
			[ ] "$109"
	[+] StaticText StaticText2
		[+] multitag "#2"
			[ ] "$1000"
[+] window MessageBoxClass MessageBox
	[ ] tag "~ActiveApp/[DialogBox]$MessageBox"
	[+] PushButton OK
		[ ] tag "OK"
	[+] PushButton Cancel
		[ ] tag "Cancel"
	[+] PushButton Yes
		[ ] tag "Yes"
	[+] PushButton No
		[ ] tag "No"
	[+] StaticText Message
		[ ] motif tag "#2"
		[ ] tag "#1"
[ ] 

 

 好了,你迈出了录制的坚实的一步,恭喜你下一步就要开始建立一个testcase,录制相关的操作了。选择菜单的"Record -> Testcase...",在弹出的"Record Testcase"对话框中,你可以看到默认的testcase name是Test1,初始状态是DefaultBaseState,然后你点击StartRecording按钮就可以开始录制测试用例了。


看到右下角的录制窗口了,两个很重要的按钮一个Pause用来暂停录制,一个Done代表录制完成。

 


 我们还没开始动手呢,这个窗口先不用管他,打开亲爱的计算器,弄点操作,加加减减的,尽管整。整的差不多了,按<Ctrl+Alt>键,别点刚才那个窗口的DONE按钮,不然你就看不到下一个Verify Window了。


又是一个窗口,VerifyWindow.这个窗口我会弄个贴图放到附件中的。不然到这里都不知道走到哪儿了,一头雾水了吧。好了这个窗口是用来设置校验的。我们应该校验什么呢,这里有很多校验比方说空间存在不存在啊,能不能用啊。我们这里校验一下结果是不是我们希望结果吧,先Uncheck All,然后找到结果控件的定义,在左侧的一堆控件中找到TextField1,我抓取是这个名字,然后只选择Text,果断点OK。然后这个时候又看到录制窗口,这个时候你可以勇敢地点Done了。

呃,怎么还是一个窗口,没办法你需要把信息给够够的,人家才能知道你要干什么啊,RecordWindow窗口,你看看你录制的代码在上面了,录制的testcase name,也该改个好听的名字吧,然后点点击Paste to Editor。呃,还要输入文件名字,别烦马上就要到西天取到真经了,<Ctrl>+s保存传统组合件,然后起一个响亮的名字,"c.t",问你加入不加入工程,必须的yes,哈哈,好了录制完成了。

 

[-] testcase Cal ()
	[-] recording
		[ ] 计算器.SetActive ()
		[ ] 计算器.N1.Click ()
		[ ] 计算器.PushButton26.Click ()
		[ ] 计算器.N2.Click ()
		[ ] 计算器.PushButton27.Click ()
		[ ] 计算器.PushButton26.Click ()
		[ ] 计算器.N3.Click ()
		[ ] 计算器.PushButton27.Click ()
		[ ] 计算器.PushButton26.Click ()
		[ ] 计算器.N6.Click ()
		[ ] 计算器.PushButton27.Click ()
		[-] 计算器.VerifyProperties ({...})
			[ ] ""
			[ ] {}
			[-] {...}
				[-] {"TextField1", {...}}
					[ ] {"Text",                 "12. "}

 

 搞了半天就这点东西?嗯,就这点东西,这个就是录制的结果。当然我整的不够厉害,你录制的时候可能一通乱整,比我的代码就会多不少,没关系代码不一样,效果差不多。

 

3.回放录制的脚本

激动人心的时刻到了,被折腾了那么时间现在你要做的就是按下<F9>来执行测试脚本了,另外个人觉得用<F9>作为执行的快捷键算是比较另类的,当然各大IDE一个比一个另类,也没什么好说的了。

看到飞快的执行了吧,爽吧。O(∩_∩)O哈哈~,飞快的有木有,(*^__^*) 嘻嘻……。

然后ST会给你一个报告,报告的格式如下

 

 

[ ] Script c.t - Passed
[ ] Machine: (local)
[ ] Started: 11:07:23PM on 02-Jun-2011
[ ] Elapsed: 0:00:03
[ ] Passed:  1 test (100%)
[ ] Failed:  0 tests (0%)
[ ] Totals:  1 test, 0 errors, 0 warnings
[ ] 
[-] Testcase Cal - Passed
	[ ] *** DefaultBaseState is setting 计算器 active, No window was active

 这个里面说的内容我就不细说都是什么的了,对着英文单词,应该都大致明白是什么意思了。

 

总之Passed 1   Failed 0 ,说明咱们的脚本都通过了。

 

好了,恭喜恭喜,录制回放就这样说完了,简单吧。这个是一个很好的开始,其实使用自动化测试工具,录制回放是大家最爱使用的。出台频率略高。但是要做好自动化测试,录制回放只是一个进入这个殿堂的敲门砖,一切刚刚开始。那亲爱的同志们,就敬请期待我后面的博文,我会一步一步带大家走入ST这条不归路的,O(∩_∩)O~。好了,今天就到这里。


 

  • 大小: 24.7 KB
  • 大小: 12 KB
  • 大小: 5.4 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics