QTP自动化脚本开发应该注意的几点

上一篇 / 下一篇  2015-05-09 14:37:44 / 个人分类:QTP/UFT

一.脚本稳定性及等待时间
二.确定元素的index
三.如何写测试报告
四.保证脚本在异常出现时能正确写入报告51Testing软件测试网;p+Y4M~h,O r
51Testing软件测试网O6Peh&f2v0w
一.脚本稳定性及等待时间
qtp脚本中,为脚本的稳定性,经常需要添加等待时间,对于大量的测试脚本,与编写起来相对繁琐的waitporperty智能等待相比,使用wait是首选,但是会有个问题,存在滥用wait或等待时间过长的情况,自动化测试的初衷就是快速稳定的执行回归或冒烟测试,笔者见过一个自动化用例,其实很简单,但,垃圾时间就占去1大半,跑起来速度慢的都恨不得自己手工去操作,这样下来,执行各自动化用例,手工都可以执行8回了,意义何在?因此两者要兼而顾之。

$g OmW3hgV}Gj|0
二.确定元素的index
使用描述编程的框架中,在使用childobjects来查找子元素时,需要确定元素的index,如果页面有相同的不可见的元素,或者页面相同元素很多,可以使用highlight来先确定可见元素的index,如:
set po=browser("creationtime:=1").page("micclass:=page")
set desc=description.craeate()
odesc("micclass").value="WebElement"
odesc("html tag").value="DIV"
odesc("innertext").value="test"
set child=po.childobjects(odesc)
for i=0 to ochild.count-1
  if ochild(i).getroproperty("visible")=true then
   ochild(i).highlight
  print i
  end if
next
51Testing软件测试网j5~-[9QM0W8X
三.如何写测试报告
  我相信很多人包括笔者自己最开始写报告也是这样的,预期结果,实际结果
 if true then
'qtp的reporter或者自己框架的写报告函数
  reporter(……,"操作成功","操作成功")
else
  reporter(……,"操作成功","操作失败")
endif
这样的报告,如果pass了,那没有啥说的,一旦,功能或脚本出现问题,你会发现,想通过这样的报告去定位问题基本是不太可能,你通过这个报告唯一知道的就是脚本失败了,其他一无所知,也许还能看下截图,但说实话,截图参考意义也有限。
 因此,在写测试报告时,需要把检查点、数据、实际结果等都要考虑进去,比如,查询功能,你要写清楚,检查点是什么,是成功的提示,还是查询的结果,实际结果具体是什么,这样出现问题时,一目了然。

~$J%C r,Sg0
四.保证脚本在异常出现时能正确写入报告
 一般我们调试脚本,保证脚本的正常流程是可以通过的,往往忽略了脚本异常场景下的调试,例如我们测试修改记录,然后检查修改后的元素是否存在,如果存在则脚本通过,但因为可能时间或其他原因,就不会去检查元素不存在时,执行结果是否失败。
如:browser("creationtime:=1").exist,检查第二个页面是否存在
 事实上,即使第二个页面不存在,这里也会返回为true
 因此应该这样写:
 if browser("creationtime:=0").exist then
  hwnd1=browser("creationtime:=0").getroproperty("hwnd")
 hwnd2=browser("creationtime:=1").getroproperty("hwnd")
if hwnd1<>hwnd2
 print “第二个页面存在”
end if
  end if
要保证脚本正常流程下的正确性,同时当功能出错时也要能及时的发现问题
51Testing软件测试网X-C-k~k G/e*S+SZm

TAG: 开发

 

评分:0

我来说两句

Open Toolbar