`
xianglong_yin
  • 浏览: 10305 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

    博客分类:
  • QTP
 
阅读更多
这次是在上次写的文章“关于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,在实际使用中我们可以按照这种思路去开发自己的测试脚本。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics