對Rational Performance Tester的改進

發表于:2008-05-30來源:作者:點擊數: 標簽:rationalRationalPerformanceperformanceTester
前言 在 性能測試 中,我們往往遇到這樣的一些問題,比如需要通過不同的用戶進行登錄操作,或者需要動態的輸入數據,在 測試工具 中往往我們是通過數據池來進行完成的。比較全面的數據池的設計往往會考慮用戶數據的來源,比如文件, 數據庫 等多種形式,但其
前言

  在性能測試中,我們往往遇到這樣的一些問題,比如需要通過不同的用戶進行登錄操作,或者需要動態的輸入數據,在測試工具中往往我們是通過數據池來進行完成的。比較全面的數據池的設計往往會考慮用戶數據的來源,比如文件,數據庫等多種形式,但其實如果采用直接映射數據庫中的某些列來進行實現,雖然在操作上會省下很多數據加工的時間,但在實際運行過場中會有諸多缺點,主要體現在每個用戶每次獲取數據時就需要消耗大量的時間,因為往往數據庫在遠程的服務器上而非本地,如果頻繁的交互會使真正需要了解的響應時間大打折扣。出于測試盡可能反映真實的應用響應時間的考慮,Rational Performance Tester 采用了文件的方式來進行數據的導入。

  Rational Performance Tester 內置的 DataPool 的實現機制

  Rational Performance Tester 內置的數據池采用了 TPTP 的前身 Hyades 測試框架的實現方式,也就是通過 EMF 進行實現。其設計圖為:

  圖 1: 設計圖

設計圖

設計圖

 

設計圖

  其中比較主要的幾個概念是:

  •  Variable:主要指一個列,通常包含一個名字和建議的類型
  •  Record:行,包含多列的數據
  •  Cell:數據塊,對應的是某行某列
  •  EquivalenceClass:等價類,數據池中記錄的邏輯組合
  •  Datapool:數據池

  往往我們在通過 RPT 的界面建立數據池或者從 CSV 文件導入數據池時,會發現在我們的 workspaces 項目的根目錄下中生成了一個 .datapool 的文件,把文件通過 winrar 解開,可以看到是一個 xmi 文件,格式如下:

<?xml version="1.0" encoding="UTF-8"?><Common_Datapool:DPLDatapool xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"     xmlns:Common_Datapool="http://www.eclipse.org/hyades/models/common/datapool.xmi"     id="E123A884D00625FC60097F300AD111DC" name="aa">    <equivalenceClasses id="E123A884D00625FC6021E9300AD111DC" name="String">        <records>            <cells value="&lt;Literal>eric&lt;/Literal>"                 variable= "E123A884D00625FC600C8C700AD111DC "/>            <cells value="&lt;Literal>ericnie&lt;/Literal>"                 variable="E123A884D00625FC602062900AD111DC"/>        </records>        <records>            <cells value="&lt;Literal>eric1&lt;/Literal>"                 variable="E123A884D00625FC600C8C700AD111DC"/>            <cells value="&lt;Literal>ericnie1&lt;/Literal>"                 variable="E123A884D00625FC602062900AD111DC"/>        </records>        <records>            <cells value="&lt;Literal>eric2&lt;/Literal>"                 variable="E123A884D00625FC600C8C700AD111DC"/>            <cells value="&lt;Literal>ericnie2&lt;/Literal>"                 variable="E123A884D00625FC602062900AD111DC"/>        </records>        <records>            <cells variable="E123A884D00625FC600C8C700AD111DC"/>            <cells variable="E123A884D00625FC602062900AD111DC"/>        </records>    </equivalenceClasses>    <datapoolSpec id="E123A884D00625FC60097F310AD111DC">        <variables id="E123A884D00625FC600C8C700AD111DC" name="name" type="String”/>        <variables id="E123A884D00625FC602062900AD111DC" name="password"    type="String”/>    </datapoolSpec></Common_Datapool:DPLDatapool>

 這個 xmi 文件實際就是我們數據池實例 aa 的序列化后的形式,系統在實際調用時會將其反序列化同時將相關的數據 load 到內存中去。在 Rational Performance Tester 中打開這個 xmi 文件,可以清晰的看到它的層次結構,同時可以對它進行修改。

  圖 2: 層次結構

層次結構

層次結構

 

層次結構

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97