为大家提供测试基本方法,通信系统相关技术,测试人员职业规划等方面的收集,给大家提供一个交流学习的平台。

WinRunner 编码规范

上一篇 / 下一篇  2007-06-01 10:22:30 / 个人分类:自动化测试

WinRunner编码规范

1路径不能写死

从一台机器拷贝到另一台机器上之后,WinRunner的脚本需要能够正常的运行。测试脚本所依赖的所有的东东(gui maps, text files, compiled modules, dll’s)都要和测试脚本有一样的父级目录。

}{)RIu,PBE5}y0

 51Testing软件测试网a ?'m o9|;J

例外:51Testing软件测试网6a.n-F b-tb*?-{

如果确实有需要的话,指向K drive中的永久文件的路径可以写死。(警告:当脚本在不同的机器上运行,读取存放在K drive中的同样的文件的时候,有可能会出现问题。)51Testing软件测试网R1Q-K(EE$k5c7_

 

Sai0ojFZ.Fm4?0

错误的示范:

J*DbEM-?da0

reload("C:\\WR_TESTS\\Acceptance_6\\acceptance_functions");51Testing软件测试网 U+x)isSUt#P

 51Testing软件测试网7h't3?Z7J&G

正确的示范:

$W SR5g8D:x V0RIk j0

reload(getvar("testname") &"\\..\acceptance_functions");

'L ^H#E;cUf}0

 

A&{;yH h"Z0

2采用缩进格式增强代码的可读性

 

-|#J ||4P'C A%Wg7\5l0

错误的示范:

C6b^!pH P;Ja+p {0

for(counter = count -24; counter < count -1; counter++)51Testing软件测试网 vFk qt0Fn X
{
j"t${%R)M/N5SQ:T5~U0
list_get_item("ListBox",counter,item);
*z`4ws \&I0f0str = str & item &
"\r\n";51Testing软件测试网p+e\g.}%?(F5@
}
51Testing软件测试网4^_p+Fp

 

4I]]2H e0

正确的示范一:

2@v;bC)DR0

for(counter = count -24; counter < count -1; counter++)

tM,|jC~x K0

{
-Z.{ ])vEl1?~0   
list_get_item("ListBox",counter,item);
0G~LWNB'wF8U0   str = str & item &
"\r\n";51Testing软件测试网D#[Sn0|I9y2c
}

O3R&jHM d,{0

 51Testing软件测试网ID1jA,B]pl3C6yR

正确的示范二:51Testing软件测试网.\3}9g]A2J(SR]

for(counter = count -24; counter < count -1; counter++){51Testing软件测试网;\"ua{6t]ZIu
   
list_get_item("ListBox",counter,item);51Testing软件测试网5H/~9Ohw+TO
   str = str & item &
"\r\n";51Testing软件测试网U3in }-Z
}
51Testing软件测试网/Z"e|$W]1BD

 

vRM"p2x#f0

3尽量避免将测试外部环境的依赖写死

 

*v+@,X4pN8E6y_Z0

不要将一些随着外部测试环境的变化而改变的信息写死。包括有:安装目录、DSN名、数据库服务器名、数据库用户名、数据库密码。最好在测试脚本的开始就将这些东东定义为变量,这样你就没有必要在环境变化后,在整个脚本中作多次的修改,只要改一个地方就好了。

n3@C pl4B0

 51Testing软件测试网&wt ^2qW8t7H

错误的示范一:51Testing软件测试网S/S$LGeTL%J~

set_window("SQL Server Login",10);51Testing软件测试网8S6T G_ ^"K
edit_set("Login ID:","sa");51Testing软件测试网'g#iYJ7MD8W~2]
edit_type("Password:","password");

3h_f HB+[9X S V3s0

 

#f'G AD&lT r0

正确的示范一:51Testing软件测试网A N.dn4I p[.F

db_username ="sa";
y2D z#B!WS|,x.@N0db_password =
"password";51Testing软件测试网)nr7p I7A r

 51Testing软件测试网__7Cc6Wx/R]4o*Y7{

set_window("SQL Server Login",10);
&F.?*?"T"zP[0
edit_set("Login ID:", db_username);
LY N;KW(@-FS3y0
edit_type("Password:", db_password);51Testing软件测试网;p:i jrX;a?

 51Testing软件测试网-d%IU'N:|

 

I N Q\.P0

错误的示范二:

G1O,IR,l3zm {Ri0

invoke_application("C:\\iAvenue\\Windows\\UAdmin.exe","","c:\\Power_db",SW_SHOW);51Testing软件测试网%uKHc(Y ]aH6m

 

'}T |)Yx:mj4Xy,B0

正确的示范二:51Testing软件测试网3rcwL_@

 51Testing软件测试网+Cv Wja1ev

install_dir ="c:\\iAvenue\\Windows";

+KG[8U\5T7Ic0

 

\9kl Y AZc0

invoke_application(install_dir &"\\UAdmin.exe","",getvar("testname") &"\\..\Power_db",SW_SHOW);51Testing软件测试网ejUp z#T_

 51Testing软件测试网G$`0T,af.}rW&E2K

4将文本识别作为你的最后一个选择

文本识别将占用大量的内存,而且还不稳定,同时在不同的操作系统可能会出现不同的结果。所以只有在没有其他的方法得到对象的信息的情况下才使用这种方式。不幸的是,这种情况经常发生,特别是当有对象不能被识别的时候。在下面的例子中,我们假设“Assign Date”是类:edit

@iFt C0

错误的示范:

V$} xEH^6Al'l0

obj_get_text("Assign Date", text);51Testing软件测试网 Kq4\5r9Whi&V5U

 51Testing软件测试网J.Xi$@z[

正确的示范:

_BK |7F#f#B0xy0G$f*`0

edit_get_text("Assign Date",text);

y$d;E p0E0

 51Testing软件测试网"nm O[o_XU

5不要使用额外的wait语句;在需要等待的时候,尽量使用同步函数

错误的示范:

` R [R Z4QE0

wait(40);

!q9rn"?k0

 51Testing软件测试网kn'KoE~t7|a

正确的示范:51Testing软件测试网Yp:gm"k*IFy9_

statusbar_wait_info("Status Bar","value","Sites processed = 20",40);51Testing软件测试网|/H,yz0uI*?0m1Z

 51Testing软件测试网5q,_VIM6lV(W#\

6不要将report_msg作为tl_step的替代

在寻找一个错误的原因的时候,没有人愿意看测试脚本中的每一行语句的测试结果。如果测试结果中不是红就是绿的话,就更加清晰明了了。所以使用tl_step标识失败的步骤还是挺不错的。

7_;fuigRTy.ir0

 

f(FT x?J/P0

错误的示范:51Testing软件测试网*B2c-kT8I {$e|7e L6k

if(win_exists("Active Information Manager",1) ==0)51Testing软件测试网rK2?1vx!D-Q7k
{51Testing软件测试网)j5C~w ?
   
set_window("Active Information Manager",1);
\6{ GfK0   
obj_get_text("AfxWnd42", text);51Testing软件测试网 I$T s+b1?4j!G!~
   my_gui_checkpoint(text,
"AIM.log");
Ls/_@+a2IJ0}
|l |"Z_$i]Dt:`0
else51Testing软件测试网$d3L"M |p1v
   
report_msg("AIM failure! Window absent at startup");

L/U0dAHF~~(T0

 51Testing软件测试网(Wne1R[-Qj6jm:b&[

正确的示范:51Testing软件测试网t l0Y+Ao[ `

if(win_exists("Active Information Manager",1) ==0)
g|d!_X(M%N~"C0{
`#B^e g9rS` D0   
set_window("Active Information Manager",1);51Testing软件测试网"~+Q7`Iew9W*O
   
obj_get_text("AfxWnd42", text);51Testing软件测试网t y t Kl
   my_gui_checkpoint(text,
"AIM.log");51Testing软件测试网AEr3MJO*q
}51Testing软件测试网j"e9](^S X'A
else
Z&g)g6S9g"p-q0   
tl_step("AimReportRuns",FAIL,"AIM window absent at startup");51Testing软件测试网2g)p M&O2Y-s

 

1^)QA'G%I,m$u0

7通过使用正则表达式避免将多个窗口实例放在一个gui map文件中

错误的示范:

)M4y3HTL$c.H&|M~0

51Testing软件测试网0BX6hC ~9W']|0BTw

 

J6ss$QU;u6g7e0

正确的示范:

b_L7J?U"xN0

51Testing软件测试网 Xr!\#b6l!{q2w

 51Testing软件测试网PL!t.Jk7m:}

8添加注释以增强脚本的可读性

#Please add comments

ZJA!{a2\B0

 51Testing软件测试网%s T4m d6[

 

z1F/`__Q6FxNP0

 51Testing软件测试网g"B9_'H:N,e


TAG: 自动化测试

 

评分:0

我来说两句

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 16033
  • 日志数: 23
  • 文件数: 2
  • 书签数: 8
  • 建立时间: 2007-05-30
  • 更新时间: 2009-05-15

RSS订阅

Open Toolbar