与其临渊羡鱼,不如退而结网!

为客户化对象创建GUI 检查

上一篇 / 下一篇  2007-01-13 00:26:09 / 个人分类:Winrunner 技术

Zu~:?,t|0默认情况下,Winrunner将不属于任何WR标准GUI对象类识别为generic object class.此时,可以通过为它们创建客户化检查点类提高检查这些对象的能力。可以为新的客户化类开发属性检查和GUI 检查点对话框。创建客户化对象检查时,可以使用标准的WR GUI 检查点对话框。按照实际需要,往标准对话框中添加客户化属性检查。对于WR的非标准对象而言,使用标准的GUI检查点对话框,仅能显示generic "object" class的标准检查,也可以显示用户自己添加的客户化检查。但是,除了使用标准的Gui 检查点对话框外,也可以创建用户自己的UI Check界面。而且对于客户化检查,可以执行用户自己的结果显示配置。51Testing软件测试网#b m9F9[4O*f
要添加新的GUI对象类并开发客户化用户界面和客户化结果显示配置,步骤如下:
z?:t$y~:L0 1)定义新的客户化GUI对象类,并开发带有客户化用户界面的GUI检查点对话框;
L1\+b~^,P{Z0 2)创建捕获功能,以便确立检查的预期结果和实际结果;
;J+`XOZs$dY0 3)创建比较功能,以便比较预期结果和实际结果;
)[5T8D(h{&Gs_um0 4)注册由捕获功能和比较功能定义的检查属性;51Testing软件测试网 N:Z.Q9u3q%E[\
 5)为新类设置默认检查;
`+vN1t$k+S;h{n8Rr0 51Testing软件测试网p~\vc8E
下面以WR自带的Flight 4A中 Flight Reservation界面上 Date of Flight 的输入框为例,其物理描述为:{ class: object, MSW_class: MSMaskWndClass}。为其添加一个名为 Size 的属性检查,并将其 object 的标准检查 X 也设置为默认检查点。51Testing软件测试网#g0l[!M q
####################################################################################51Testing软件测试网:T1]%e2C&^
#脚本1:(完成定制UI对话框,捕获,比较以及显示函数)51Testing软件测试网fm,yIL d'\+W
#Test Type:Compiled Module
fYe'Q L0####################################################################################

(G8Qm%VE5K|0

S4M"fu2r'we2`6I0# 定制的UI Check对话框,唯一的缺点在于不能多选。如果需要多选,需要预先将其进行组合,如此例中的“Both”。
g8}|j y0function custome_ui_func(window, object, inout checklist, out arglist)
8H"\dB"z:Xt"U0{
SY.R,z H6QOF0 auto res = create_list_dialog("GUI Verification Sample UI_function Display","Please choose a check name","Size,X,Both");
2^t$O'tgzN]0 switch(res){
sR'O/E*ll6t2Za0  case "Size":{
!IZvg!t0    checklist = "Size";
E!Ox:a8D0    arglist = "User selected Size";
I1|/ih |Wx0    break;
X9`$r9?b'W [0  }
fK#v_.F5^!@sy6A0# X 是 Object 类的默认检查对象,故不需为其添加捕获函数和比较函数。这里将其显示在定制的UI Check 对话框中。
` UB0{YB_Z0  case "X":{51Testing软件测试网g E8Ws&[Feq
    checklist = "X";
){'Zk+@'f]c0    arglist = "User selected X";51Testing软件测试网tE0ZPZ"e*u y
    break;  
8QhrF ~#x0  }
M.Yt X(g!S5l'r0  case "Both":{
*A7K)J m-h|$AUw8C T0    checklist = "Size X";
Y {,K4f9oF0    arglist = "User selected Size and X";
2uQ.mh7\0    break;  51Testing软件测试网R;~VHmGPhA
  }
+t*B2BC rE&QT0  default:return -1;
x K)a O^;SZ0 }51Testing软件测试网2YdgN @s
 return 0;51Testing软件测试网ES)U1s`7icW
}

Q#M$Mu-M0l"p051Testing软件测试网6J h%i0P t+pyz_


:P k b9}"y|5i4cb1z0#1 捕获函数51Testing软件测试网&oj N7{3qa S@
function size_capture(object, inout size)51Testing软件测试网~#p.n/i;a1A&Pn0wmG
{
!QS2?}!DK(m0   auto height,width;51Testing软件测试网U/~]B*m)q,lM \
   obj_get_info(object, "height", height); 
d cfhB \0{[&k0   obj_get_info(object, "width", width);
!yLr1\%aB!HSP0   size = height * width;51Testing软件测试网6f+@4_B-|'oeX
   return 0;
nZ_%|2J}6};?3x0}51Testing软件测试网n-`*JY6F]1\(^v6F

51Testing软件测试网S2U o2m5l#fJ|Qz-~

#1 比较函数
_Z3sH*^:a0function compare1(exp_val, act_val, arglist, inout diff_file)
]s%k,e;[0{
Jj6w J8b-V0 diff_file = "";51Testing软件测试网(I8Xn8e4}{
 if (exp_val != act_val) {51Testing软件测试网bC+~9j l!` jy6B y1|
  return E_DIFF;51Testing软件测试网4Rjq7\J7C},D
 }51Testing软件测试网:O x9Hd YAQ.k+Cw$d0I
 return E_OK;51Testing软件测试网J:QN^\)l| d
}

r dRq`#\U051Testing软件测试网GNeYKGo

# 显示函数51Testing软件测试网 K7D&h0[}1y6}m
function display_func2(exp_file, act_file, result, diff_file)51Testing软件测试网rv2tswDpVl
{
G l&CYD7f?$H~.p*K,c0 auto exp_buf, act_buf, diff_buf;51Testing软件测试网 ?$F"M5tiB5@;ff~T
 read_file(exp_file, exp_buf);51Testing软件测试网;n#B A\^[
 read_file(act_file, act_buf);
V8i zJq0 read_file(diff_file, diff_buf);
*P7MN;@]$B#s;Ev0 pause_test("\nExpected: " & exp_buf & "\nActual: " & act_buf & "\n\nResult: "& result & "\nDiff: " & diff_buf, "OK", "Cancel", "Close");51Testing软件测试网1bhS"{g
 return 0;51Testing软件测试网C,iSH%?5LVE-`d
}
w l*l$e4Rj^Dk0function read_file(name, out buf)51Testing软件测试网,u$wA,G?n1usH
{51Testing软件测试网4ol~5Kpf ^\
 auto tmp;51Testing软件测试网javy;[h3k
 buf = "";
JQ7{"w`i%Q,u0 file_open(name,FO_MODE_READ);51Testing软件测试网/n"C.rwRHc-w
 if (name != "") {
,l/c&o2m#S`eS1^2H d0  while (file_getline(name,tmp)) {51Testing软件测试网/f*v%g4mTZ5]{3?r
   buf = buf & tmp;51Testing软件测试网[BKIV
  }51Testing软件测试网)Mk7Bf%q5_ i
  file_close(name);
2FJ)qM^$B0 }
7{ UgBnr0X$wZ*a0}

4Zl3[)_0xbP051Testing软件测试网 Q4OM%r-yH6H O2X/h

####################################################################################51Testing软件测试网 y)T m,a1oj~
#脚本2:添加新类,并注册该类的新检查点属性
E&IF3u@&m0z0####################################################################################51Testing软件测试网V ? @B `0m:A1h y
# 加载Compile Module,
'ANh"S F/G0load(".\\addClassAndCheck");

R(l&Zt_051Testing软件测试网I \o NqQ0G4`;i

# 添加新的检查点类: "MSMaskWndClass"
j"w JAB0gui_ver_add_class("MSMaskWndClass", "custome_ui_func");51Testing软件测试网!c]'m0ZQU*b

51Testing软件测试网A)Cb"e,HtYG

#注册 Size 检查属性
L4Az2cEsq0gui_ver_add_check("Size","size_capture","compare1");51Testing软件测试网*|n1r9n%\ ~.y/Iy-h {

51Testing软件测试网R6@h Z1zw

#将Size 检查与添加的新类  "MSMaskWndClass" 相连51Testing软件测试网&EN$Y(^G
rc = gui_ver_add_check_to_class("MSMaskWndClass","Size");51Testing软件测试网6aj:CB6W,HS
#if(rc != E_OK ){51Testing软件测试网+OYSd e _j
#   report_msg("Add check to class failed!");51Testing软件测试网.^d&[B7JkE!t{6J
#   texit;51Testing软件测试网 ]}7q7GQV
#}51Testing软件测试网,x u3@"T*B v0u

51Testing软件测试网7F*_!q4kX1t+W6UI

# 为新类设置默认检查点51Testing软件测试网4^N mz4G
gui_ver_set_default_checks("MSMaskWndClass","Size X");51Testing软件测试网o%X_\ Ve(z:`F*UV

51Testing软件测试网x,s0V}6mx

51Testing软件测试网J3a/I4Bf D
运行环境:WinXP+SP2,WR7.651Testing软件测试网3cT"R1W5}EC\Z
参考文件:《WinRunner Customization Guide》51Testing软件测试网&f;@8xj'e


TAG: Winrunner

 

评分:0

我来说两句

Open Toolbar