专注于自动化测试的培训、自动化测试解决方案、兼职自动化测试项目,欢迎志同道合的朋友一起合作共赢未来!电子信箱:yang-zhengjiang@163.com

关于qtp的测试对象的进一步改进

上一篇 / 下一篇  2009-04-19 14:05:20 / 个人分类:qtp

这次是在上次写的文章“关于qtp测试对象”,地址:http://www.51testing.com/index.php?uid-174344-action-viewspace-itemid-113944 的基础上的进一步讨论,这里的改进主要是针对完全的手动开发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,在实际使用中我们可以按照这种思路去开发自己的测试脚本。

以上仅是我自己的一点想法,欢迎大家讨论。


TAG: QTP qtp

Bamboo 引用 删除 yangzhengjiang   /   2009-04-19 14:37:51
在getText()函数中的cPath在世纪使用是要要又代码自动去获取到的,而不能写入到这个函数中,在这里仅仅是个测试程序而已。只要我们确定好了我们的框架结构,这path是很容易自动获取的。
 

评分:0

我来说两句

Open Toolbar