一个人不应该依附在其他人身上,一个人应该首先自力更生。你应该自己能够独立,能够安顿你自己,那你就不会害怕了。你爱你自己的话,别人不能不爱你吧。

WinRunner 100 问(转载)

上一篇 / 下一篇  2007-06-21 15:20:14 / 个人分类:WR

{/j^%Pr`)jlv0[Study WinRunner] WinRunner 100 问51Testing软件测试网&rk P [R {
51Testing软件测试网d?b"ugvU)h {
引用Kikihttp://blog.csdn.net/imlogic/archive/2005/08/04/445491.aspx
51Testing软件测试网-v4? e2Q6\c;`OAXr.F

HY3@0b+|0WinRunner在项目中的作用51Testing软件测试网Rj@&Ea4B+Pp

1fDA X?:U,iz0
可以用WinRunner为所测试应用程序的GUI,功能和回归测试创建自动化脚本。
)k(DZ4? o y&{)ii1nUu051Testing软件测试网+\PO j6d]TS]']+V
1. WinRunner的测试过程
xLL0k4mNS1V0
@N+dI {,S {R0主要包括如下6个阶段:51Testing软件测试网!W ^wm\two
51Testing软件测试网 ?0\$Q"p+sX*|
1).   创建GUI Map文件:WinRunner可以通过它来识别被测试应用程序中的GUI对象。51Testing软件测试网sZY'_7^

nr(c ey b/n02).   创建测试脚本:通过录制,编程,或两者的组合创建。在录制测试脚本时,在你想检查被测试应用程序响应的地方插入验证点。
hv]:w,`"D051Testing软件测试网 nlj-L'k7C|T
3).   调试脚本:用调试(Debug)的模式运行测试脚本以确保它们可以平稳地运行。还可以使用WinRunner提供的Step, Step Into, Step out功能来调试脚本。51Testing软件测试网u/K+h5fCyJ
51Testing软件测试网5^)JTr(p;M7x
4).   运行测试:用验证(Verify)的模式运行测试脚本来测试你的应用程序。当WinRunner在运行中碰到验证点时,它会将被测应用程序中的当前数据和以前捕捉的期望数据进行比较,如果发现了任何不匹配,WinRunner将会把目前的情况捕捉下来作为真实的结果。
5n8wZ(C|+U~051Testing软件测试网|R5P4J'qn Y i#Y/p
5).   检查结果:确定测试脚本的成功或是失败。在每次测试脚本运行结束之后,WinRunner会将结果显示在报告中。它描述了所有在运行中碰到的重要的事件,例如验证点,错误信息,系统信息或是用户信息。如果发现在运行中有任何不匹配的验证点,你可以在测试结果窗口中查看期望的和实际的结果。
y&M g)v#~ pi0
*ja*GKag3S2u`06).   提交缺陷:如果一个测试脚本是由于所测试应用程序中的缺陷而导致失败的,你可以直接从测试结果窗口中提取缺陷的相关信息。
51Testing软件测试网 YO:_ s+\Y

51Testing软件测试网s'oMd| t%T%D*z2?/m%J

2. WinRunner 的GUI Map文件51Testing软件测试网kf y7K(R R

bJh#a Pm_nJ0
WinRunner利用GUI Map文件来识别应用程序中的对象。它将学习到的窗口或对象信息储存在GUI Map文件中。当WinRunner运行测试脚本时,它利用GUI Map来定位对象。它从GUI Map文件中读取对象的描述并且在被测应用程序中寻找具有相同属性的对象。51Testing软件测试网N f2f'y%kNH
51Testing软件测试网c6DiHG
在GUI Map文件中的每一个对象都有一个逻辑名称(logical name)和一个物理描述(physical descrīption)。对象的逻辑名称是由其类决定的。在大多数情况下,我们可以将逻辑名称看成是显示在对象上的标签。你可以修改已分配的逻辑名称当它不是十分具有描述性或太长的时候。当对象的属性发生改变时,你必须要修改其物理描述。51Testing软件测试网 a5ecU$e.HXu
51Testing软件测试网g5kW*EAY
GUI Map文件的扩展名是".gui"。51Testing软件测试网v v(a,d,SC!A

/gkq hCn!{(p0GUI Map文件分为两种类型:51Testing软件测试网K1P LS7i

/l%A'A4lh,An,L0· 全局GUI Map文件:一个为整个应用程序使用的GUI Map文件
'o5~wi1o\ s0
e%Mh!Jl R A0· 每个测试脚本的GUI Map文件:在每个测试脚本创建之后,WinRunner会自动为其创建一个GUI Map文件。51Testing软件测试网S$HpR2H'|Zj8Z

BX/U&bj.v0我们可以通过工具菜单中GUI Map Editor来查看当前载入的GUI Map文件及其内容。GUI Map Editor 显示多个已创建的GUI Map文件和认识到的带有逻辑名和物理描述的窗口和对象。51Testing软件测试网v n"jOb,b3z6G
51Testing软件测试网)\S5A k u4cx4]9uU
在录制脚本时,WinRunner会自已学习对象和窗口,并将它们储存在临时的GUI Map文件中。我们可以在General选项中指定是否需要每次都载入这种临时GUI Map。51Testing软件测试网*V m!@H/yZmi*m
51Testing软件测试网VG?CE:q
当我们载入一个GUI Map文件时,关于窗口和对象的信息连同其逻辑名称和物理描述都载入到内存中。因此当WinRunner在一个特定的窗口上运行脚本时,它可以用这些在内存中的信息识别对象。
AY%s%MKN0
51Testing软件测试网m `e1q2fAzv

7k9O @TDE03. WinRunner的脚本语言51Testing软件测试网a$?+ia{)l
WinRunner的脚本语言是Mercury Interactive’s Test scrīpt Language (TSL),这是一种类C的脚本语言。你可以通过增加另外的TSL函数和编程元素(例如Windows API)或WinRunner的虚拟编程工具(函数生成器(Function Generator))来增强你录制的脚本。
k@ d*z'_:L0
:gqO`1gx o(}051Testing软件测试网 v v-B"Z GB
4. WinRunner的录制模式51Testing软件测试网8X"b+`y?KYbN
在WinRunner中,有两种不同的录制模式:51Testing软件测试网Rl{,n\ Z,Vn,K

}*s O4hp%] I*D4A&KI0· 环境判断录制(Context Sensitive recording):通过识别GUI对象录制你在被测应用程序中执行的操作。
r0Z%S+M5n2m051Testing软件测试网-Y[Q:w-GQI\Z
· 模拟录制(Analog recording):录制键盘的输入,鼠标的点击,和鼠标指针在屏幕上精确的x,y轴
%WY+PbO7L5b1~5OC0^0
51Testing软件测试网nSUc@Vj+s

?FQ3[ M\E06. WinRunner的运行模式51Testing软件测试网+Ry1MbRC-g&[
在WinRunner中,有三种不同的运行模式:51Testing软件测试网k'_3{6Da(Kq^)e|
51Testing软件测试网)K|&l3m(rgo
·验证Verify:使用这种方式来检查你的应用程序
8p6m(b.r^m/Q T051Testing软件测试网,W\ Lk)oh t
·调试Debug:使用这种方式来帮助你识别测试脚本中的bug
R$x_&UVa?0
c6x1g:{Kx {0· 更新Update:使用这种方式来更新测试脚本的期望结果或创建一个新的期望结果文件夹
p0a l ED0
-R~:R9Dk\.YE)`0
6G*H*n T`|07. WinRunner的Add-In51Testing软件测试网(EV4CI r6\/X G
载入Add-Ins实际上是将在Add-In中的特殊的函数装载到内存中。当创建测试脚本时,只有这些选中的Add-In中的函数会列在函数生成器中,在运行脚本时,只有那些在载入的Add-In中的函数可以被执行,否则WinRunner将会给出一个不能识别函数的错误信息。
MH`A]E051Testing软件测试网8gj1f)mD
51Testing软件测试网+iOh:RqDM

51Testing软件测试网:b%DYw(n z{Y&Nw}+H

8. WinRunner的验证点(Checkpoint)51Testing软件测试网*F-k t:M7Sf,YgxW
验证点可以把被测应用程序的当前行为和早前版本的行为进行比较。51Testing软件测试网'[6|+@ C l*@
51Testing软件测试网i1m&rF|F9v$p
在WinRunner中有4种验证点:51Testing软件测试网_,Oc6]v#Yu"s9Z
51Testing软件测试网]x-P#h(T5@roZS
·GUI checkpoints:验证GUI对象的信息。例如,你可以检查一个按钮是否可用或查看在一个列表中哪一个选项被选中。
n&TP%M-T8yT CN@{#b051Testing软件测试网r G(N8y-R;W%RX ~g
·Bitmap checkpoints:给窗口或所测试应用程序的部分做快照,并把它和早先版本中捕捉的图像做比较。
c H*`:Pb s k,i051Testing软件测试网,\} ~Jcp
·Text checkpoints :在GUI对象或位图中读取文字,使你可以验证它们的内容。51Testing软件测试网!k$t7u0i[5a#O
51Testing软件测试网1J&q ?\KC
·Database checkpoints:基于你创建在数据库的查询,检查一个结果集的内容和列、行的数量
{ Exv r4J0
"p@ilY J)J0Checklist文件包含了我们正在验证的对象的属性和相关信息 。gui*.chk文件包含了期望的结果,并储存在exp文件夹中。51Testing软件测试网w*OW8R&] qz-Nz

J~8`l1?CU O0
8a3PD0deM{09. 同步点(synchronization points)51Testing软件测试网{!D0LpDK;Tp1X\
同步点使你可以解决预期的在测试脚本和你应用程序之间的时间问题。例如,如果你创建一个打开数据库应用程序的测试脚本,你可以增加一个同步点以让测试脚本等待直到数据库中的记录载入到屏幕上。51Testing软件测试网0ap-s;Fq

!i*[WZnj)M5Kp&v|0对于模拟测试(Analog testing),你也可以使用一个同步点来确保WinRunner在一个指定的位置重新放置窗口。当你运行一个测试脚本时,鼠标指针沿着准确的坐标行进。重新放置窗口使鼠标指针接触到窗口中正确的元素。
p8?#D"Bfi0
51Testing软件测试网:H*\\!TM6\ {

51Testing软件测试网:?D^j&NG

10. 编译模块(compile module)51Testing软件测试网$[I)S TqG
编译模块实际上也是一种脚本,只不过它包含了一个可以被其它的测试脚本频繁地调用,用户自定义函数集的库文件。当你载入一个编译模块时,它的函数将自动的被编译并保存在内存中。其它的测试脚本可以直接调用它们。51Testing软件测试网 xWa'w E

6ND+p}_f!~F$?(y&DC0编译模块可以改进脚本的组织和性能。由于你在使用它们之前已经调试过编译模块,因此你的测试脚本只需要少量的错误检查。另外,调用一个已经编译的函数明显地比解释测试脚本中的函数快得多。51Testing软件测试网,| rL%vQF+rZ
51Testing软件测试网\;|o$C+zW Ja![
当编译模块用来储存可重用的函数时,测试脚本包含了在WinRunner中的可执行文件。编译模块是不可执行的。51Testing软件测试网7IYzBq

]yD&U q._([.g W|0在保存为编译模块时,WinRunner会自动执行一次预编译。51Testing软件测试网9q'on%iQz5L@G
51Testing软件测试网6v6U;V!D3O
默认情况下,包含TSL代码的模块的属性是“main”。主模块可以在其他的模块中被调用执行。除了当WinRunner识别到一个“call”语句时,主模块会被动态地被编译为机器代码。例如:51Testing软件测试网#a4t9lK5JR#l Q0U Z1_
51Testing软件测试网 Y1oOX_ t%xGxR
call cso_init();51Testing软件测试网0XT"i$C\#[y3Z

.N[%m[.eXT|"Dug$Y*w0call( "C:\\MyAppFolder\\" & "app_init" );51Testing软件测试网^ E9[.Zuo
51Testing软件测试网 Odj-uU;dk
编译模块被载入到内存中以便其他模块引用。
8r*x5~7A-s)Hz0
1]"{cD5I3Ile;l0reload ("C:\\MyAppFolder\\" & "flt_lib") 或load ("C:\\MyAppFolder\\" & "flt_lib");
51Testing软件测试网A*n,]{ z1T-z.i

/c)jG6q%F"r3[p8E:xc011. 数据驱动测试(data driven tests)
?I gK X6D%s0Z0当你测试你的应用程序时,你或许想检查它如何执行有着大量数据集的相同操作。你可以用一个运行10次的循环来创建一个数据驱动测试:每次循环运行时,它由不同的数据集驱动。为了使WinRunner 能够使用数据来驱动测试,你必须将数据连接到所要驱动的测试脚本。这就叫参数化(parameterizing)你的测试。数据存储在一个数据表格(data table)中。你可以手工执行这些操作,或使用DataDriver Wizard来参数化你的测试脚本并储存数据在数据表格中。
,PM,lu$\`"l Te051Testing软件测试网!T,O a/?#}Z-`
数据驱动测试的步骤如下:
/{)^Knd'Z%Q051Testing软件测试网Sr\4V0H(B
·创建一测试脚本
d/RO2zY051Testing软件测试网x1|*o#Z@_ ~
·转换为数据驱动的测试脚本并准备一个数据库
py'iuv U051Testing软件测试网#`.KVM H2n!_Af
·运行测试脚本
R#e7WG]v051Testing软件测试网5w1t9j Cc"e
·分析测试结果
`#Hv jB}y0
#b'\!CD3Uo `2MZ0
O5lr#uw012. 无法识别GUI对象的原因
{ |@1I)~ yw2H0G0
%B5@b {B]*G#t0WinRunner会由于以下多种原因导致不能识别GUI对象。51Testing软件测试网!YtLQ5c-g!]M

"z%B@3`+u6Oe f0· 不是标准的Windows对象
Bo~A;J0· 没有安装所需的Add-In51Testing软件测试网lnw(E\&W
· 如果所使用的浏览器和WinRunner的版本不兼容,GUI Map编辑器将不能认识在浏览器窗口中显示的任何对象
/M$nL[/D|)x u0。。。51Testing软件测试网&b~8_!c/{EK$R ?9g
51Testing软件测试网5bZV%LB$W.gcI }nZl
51Testing软件测试网U2k(~8Ee hJ5F

@*Xm6xT(x014. 启动文件(start up file)
K;`/f&_lv]EE2x0
}:nY4XTr)pLP,x3^X7@0在General Options ->Environment-> Startup文本框中,选择或输入你希望作为启动文件的 测试脚本51Testing软件测试网DL&A]8uh {

zul$Bnz051Testing软件测试网H.bKE l!l q"}
15. 输入测试脚本的相关信息
d,^6U s5Mj0
9`we UL8x}$V9v0在创建一个测试脚本之前,你可以在Test Properties-> General和 Descrīption中输入和脚本相关的信息,如被测功能的类型,测试脚本的详细描述,引用的相关功能说明书文档
51Testing软件测试网%}+X _&F.@.M s![ K;v

51Testing软件测试网lkwd:F

16. 如何处理定制对象(custom objects)?
,T$[8QX'`p051Testing软件测试网-S1Bk.UP.^ `-~ VQp3I
定制对象是不属于WinRunner所使用的标准类之一的任何GUI 对象。WinRunner学习此类的对象为generic "object"类。WinRunner利用obj_mouse_语句来记录在定制对象的操作。51Testing软件测试网vo(@[G'N
51Testing软件测试网9h+@o${m^*?d,v
如果定制对象和一个标准的对象很相似,你可以映射它为标准类别之一。你也可以在环境判断测试(Context Sensitive testing)时配置WinRunner用于识别定制对象的属性。
7Mt(i&P'?$x%JT051Testing软件测试网/XEB-Se _n)z4@E

OK:MdlbM0
/Ay W*R.s4A_017. 什么是虚拟对象(virtual object)并且如何使用它们?
Mei:J0n+S%]0
jv MK#D {!d0应用程序可能会含有一些外观和行为和GUI对象相似的位图。WinRunner利用win_mouse_click 语句来记录操作。通过定义一个位图对象为虚拟对象,当你录制并运行测试时,你可以教WinRunner将它象一个GUI对象一样对待。

lUBgBi0

N'f:])B1Lk+_`dqp0 

@t"Ct4?;e%o051Testing软件测试网8~5d;UR"T

原文

4T"F.D;A)f7^R051Testing软件测试网s7F QEx \E7r

 51Testing软件测试网9D4i,x~h:Wc(l g


TAG: WR

引用 删除 zq1207   /   2010-12-06 16:14:41
-5
 

评分:0

我来说两句

Open Toolbar