这次是在上次写的文章“关于qtp的测试对象”的基础上的进一步讨论,这里的改进主要是针对完全的手动开发qtp自动化测试脚本而言的,对于录制后简单的修改并不使用。在功能的自动化测试中,测试对象是基础,为了提高测试对象的高度可复用性以及便于日后的升级和维护,我们应该使用尽量少的属性去标示出这个对象,例如:创建一个javawindow对象:
set win = description.create
win("class description").value = "window"
这样就足可以来表示出给对象了,但是当有多个javawindow对象对象同时存在时,这样创建时明显有问题的,这时我们就不得不再去增加一个title来识别出每一个不同的javawindow对象了,但是如果我们直接把title属性写入到代码中,这样在升级版本或客户要就修改标题后,我们就不得不去相应的到我们的代码中去修改这个标题,在一个大型的项目中会有很多地方需要去修改,这样既不容易该全,也很麻烦。解决办法:
get the javawindow object
function getwindowbytitle(title)
set win = description.create
win("class description").value = "window"
win("title").value = title
set getwindowbytitle = win
end function
*********************************************
test.txt --this is the configure file
#the login dialog
title="backup express 3.1"
*********************************************
this function get the value by name
function gettext(name)
dim fso,cpath,f
cpath = "e:\javagui.txt"
set fso = createobject("scripting.filesystemobject")
set f = fso.opentextfile(cpath,1,false)
do while not f.atendofstream
str = f.readline()
if not instr(str,"#") > 0 then
tmparr = split(str,"=",-1,1)
if strcomp(tmparr(0),name) = 0 then
gettext = tmparr(1)
exit do
end if
end if
loop
set f = nothing
set fso = nothing
end function
*******************************************
qtp script. code
javawindow(getwindowbytitle(gettext(title))
我们都知道,在软件开发中,界面上显示的文字,都是属于软件的资源而已,是不会写入到代码中去的,而是配置中软件的资源文件中而已,那在我们开发测试脚本的时候,同样这些具体的用于识别集体对象的属性不过也是属于一种资源而已,我们同样可以把这样资源写到我们的资源文件中去配置,这样当修改修改时,我们同样只需要去维护一份或几份资源文件而已,而不需要去到代码中去修改,这样大大增加了我们代码的可维护性。写一个简单的例子程序,来说明这个问题:
这里只是一个简单demo,在实际使用中我们可以按照这种思路去开发自己的测试脚本。
set win = description.create
win("class description").value = "window"
这样就足可以来表示出给对象了,但是当有多个javawindow对象对象同时存在时,这样创建时明显有问题的,这时我们就不得不再去增加一个title来识别出每一个不同的javawindow对象了,但是如果我们直接把title属性写入到代码中,这样在升级版本或客户要就修改标题后,我们就不得不去相应的到我们的代码中去修改这个标题,在一个大型的项目中会有很多地方需要去修改,这样既不容易该全,也很麻烦。解决办法:
get the javawindow object
function getwindowbytitle(title)
set win = description.create
win("class description").value = "window"
win("title").value = title
set getwindowbytitle = win
end function
*********************************************
test.txt --this is the configure file
#the login dialog
title="backup express 3.1"
*********************************************
this function get the value by name
function gettext(name)
dim fso,cpath,f
cpath = "e:\javagui.txt"
set fso = createobject("scripting.filesystemobject")
set f = fso.opentextfile(cpath,1,false)
do while not f.atendofstream
str = f.readline()
if not instr(str,"#") > 0 then
tmparr = split(str,"=",-1,1)
if strcomp(tmparr(0),name) = 0 then
gettext = tmparr(1)
exit do
end if
end if
loop
set f = nothing
set fso = nothing
end function
*******************************************
qtp script. code
javawindow(getwindowbytitle(gettext(title))
我们都知道,在软件开发中,界面上显示的文字,都是属于软件的资源而已,是不会写入到代码中去的,而是配置中软件的资源文件中而已,那在我们开发测试脚本的时候,同样这些具体的用于识别集体对象的属性不过也是属于一种资源而已,我们同样可以把这样资源写到我们的资源文件中去配置,这样当修改修改时,我们同样只需要去维护一份或几份资源文件而已,而不需要去到代码中去修改,这样大大增加了我们代码的可维护性。写一个简单的例子程序,来说明这个问题:
这里只是一个简单demo,在实际使用中我们可以按照这种思路去开发自己的测试脚本。
本文讨论了QTP自动化测试中的测试对象复用性提升方法,通过将对象标识属性配置化来增强测试脚本的可维护性和灵活性。
903

被折叠的 条评论
为什么被折叠?



