• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • QTP中對用戶自定義環境變量的XML操作的幾個函數

    發表于:2012-07-25來源:Csdn作者:tulituqi點擊數: 標簽:qtp
    大家可能都知道怎么在一個Test里的多個action之間傳遞參數,可以用DataTable也可以用Parameter。 那么在多個Test之間如何傳遞參數呢,一般常用的有excel,這個方法應該比較普遍了。這里介紹一下我自己設計的方法。 就是用環境變量來傳遞參數,

      大家可能都知道怎么在一個Test里的多個action之間傳遞參數,可以用DataTable也可以用Parameter。

      那么在多個Test之間如何傳遞參數呢,一般常用的有excel,這個方法應該比較普遍了。這里介紹一下我自己設計的方法。

      就是用環境變量來傳遞參數,我們都知道有個Environment環境變量(在File-Test Setting下),其中有一個是user-define,用戶自定義的變量,而且這里還可以使用調用外部文件的方式來使用。那么我的方法就是基于此。

      這里面我自己寫了4個函數,

      addVar(filepath,varname,varvalue) 給指定地址的xml添加一個變量。

      delVar(filepath,varname) 刪除xml里的變量

      GetVars(filepath) 獲得xml里的所有變量,以dictionary對象返回

      updateVar(filepath,varname,varvalue) 更新xml里的變量的值。

      我自己寫的函數都不是很完善,沒有過多考慮異常處理,大部分還是以正常通過為主寫的,希望大家見諒。

      這里的XML文件是QTP支持的格式,具體格式大家可以自己先創建幾個環境變量,然后導出到外部文件,再看看那個xml的結構就行了。

      大體上是這樣的結構:

      

      

      upload

      T:/TestData/產險測試組/自動化公共庫/upload.gif

      

      

      newVar

      ssdfff

      

      

      所以我寫的代碼只能用于QTP這個環境變量的xml文件,對于其他的xml很可能不支持了。

      再談談具體的用法,我這里的Test每一個都是獨立的案例,其內部可以再調用其他可重用的action,也就是之前大家常用的方式,而我寫這些函數的用途是為了能讓多個獨立的案例串連起來執行,在QC中通過執行流依次調用。

      首先,在Test里開頭使用

      Environment.LoadFromFile(Path)

      這個方法來讀取環境變量文件。

      使用的時候只要知道變量名即可了,直接使用Environment("upload")就可以了。

      如果這個案例最后有需要傳遞出去的參數,就可以用addVar的方法。

      另外需要考慮的問題就是在使用環境變量前,xml文件里如果沒有那個變量就會報錯。這里需要慎重一些。

      這樣使用的好處,每一個案例都是獨立的,方便傳遞參數,同時,如果提出一個新的概念就是Test重用。我在做的一個項目就完整的使用我這套設計,把很長的案例都細化分解成一個個獨立的案例,我就是為了Test之間傳遞參數方便使用的這個方法。而且在使用中發現有很多關鍵環節的Test可以重用,這比action的重用范圍大了一些。不過我這些案例并沒有什么特殊的,本身也會用到action重用,比如登錄退出。

      關于Test重用的話題,改天我拿幾個例子來說比較好??上诸^沒有QC環境,不然可以截圖配合QC使用來詳細說明。

      [vb] view plaincopyprint?

      filepath="C:/UserDedinedEnvironment.xml"

      Set dics = GetVars(filepath)

      addVar filepath,"tttt","aaaa"

      Set dics = GetVars(filepath)

      updateVar filepath,"tttt","55555555"

      Set dics = GetVars(filepath)

      delVar filepath,"tttt"

      Set dics = GetVars(filepath)

      xx=1

      Function GetVars(filepath) '已完成

      Set objxml= CreateObject("MSXML.DOMDocument")

      objxml.load filepath

      Set Environ = objxml.lastChild '獲得節點

      Set dic = CreateObject("Scripting.Dictionary")

      allVar = Environ.childNodes.length '獲得節點的子節點數量,即變量個數。

      For i=0 To allVar-1

      Set vars=Environ.childNodes.item(i) '獲得節點

      var_name=vars.childNodes.item(0).nodeTypedValue

      var_value=vars.childNodes.item(1).nodeTypedValue

      dic.Add var_name,var_value

      Next

      Set GetVars = dic '返回dictionary的環境變量列表

      Set dic = Nothing

      End Function

      Function addVar(filepath,varname,varvalue) '已完成

      Set objxml= CreateObject("MSXML.DOMDocument")

      objxml.load filepath

      Set Environ = objxml.lastChild '獲得節點

      Set dic = CreateObject("Scripting.Dictionary")

      allVar = Environ.childNodes.length '獲得節點的子節點數量,即變量個數。

      For i=0 To allVar-1

      Set vars=Environ.childNodes.item(i) '獲得節點

      var_name=vars.childNodes.item(0).nodeTypedValue

      var_value=vars.childNodes.item(1).nodeTypedValue

      dic.Add var_name,var_value

      Next

      If dic.Exists(varname) Then

      updateVar filepath,varname,varvalue

      Exit Function

      End If

      Set vars =Environ.childNodes.item(0)

      Set newVar= vars.cloneNode(1) '復制

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>