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

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

  • <strong id="5koa6"></strong>
  • 性能測試工具的基本功能和可能出現的技術要點分析(5)

    發表于:2014-09-09來源:uml.org.cn作者:王玉亭點擊數: 標簽:性能測試
    在錄制之前設定辨別規則,錄制完畢,產生腳本的時候根據規則識別出需要關聯的動態內容,從而產生正確的腳本。 錄制完畢回放一遍,把回放結果與錄

      • 在錄制之前設定辨別規則,錄制完畢,產生腳本的時候根據規則識別出需要關聯的動態內容,從而產生正確的腳本。

      • 錄制完畢回放一遍,把回放結果與錄制結果進行自動對比,確定動態信息,進行自動關聯。

      • 錄制兩個一模一樣的腳本,對比其中的差異來確定需要關聯的動態信息,然后進行關聯。

      自動關聯的功能是否完整可靠,關系到我們能否借助 Vugen 快速開發出符合要求的腳本,因此關聯也是 Vugen 中非常重要的功能。

      • 腳本的問題

      Vugen 產生的最終結果是以源程序方式存在的腳本。為了編譯該腳本,用戶可以選用對應的編譯器,這不是 Vugen 的功能。建議 Vugen 產生腳本的時候應該生成對應的 Makefile 和 build.xml ,允許用戶以流行的 make 和 ant 命令來編譯 C 和 Java 的腳本。關于 make 和 ant ,讀者可以在互聯網上查詢相應的內容。

      Vugen 自動產生的腳本應該支持兩種語言, C / Java 。很顯然, Vugen 不可能產生一個腳本運行的全部的代碼,它需要額外的函數庫的支持。譬如,通過錄制 Tuxedo 協議產生的腳本應該是以 Tuxedo-API 的形式出現的。為了能夠編譯運行腳本,必需把 Tuxedo 的函數庫連接到腳本里面。目前動態庫的技術應用非常廣泛,因此為了運行 Tuxedo 腳本,必需在 Vugen 和 Player 機器上安裝相應的 Tuxedo 客戶端軟件,因為它包含相應操作。其它網絡協議也存在這個問題。對于 http 協議,已經有很多函數庫。 Vugen 產生的 http 腳本應該支持主流的函數庫。這樣帶來的好處是我們不需要自己開發 http 函數庫,可以直接引用已經經過實踐證明了的質量可靠的函數庫。選擇支持何種函數庫,需要慎重選擇,我們應該選擇應用最廣泛的函數庫。例如:關于 http 函數庫,可以采用 www.w3c.org 提供的 libwww ,該函數庫是開源的,質量可靠,遠勝于我們自己開發。

      • Conductor 和 Player 部分

      Conductor ,我們稱為 “ 指揮家 ” ,它是整個壓力測試的核心。 Player 是產生壓力的負載產生器,它們以進程或者線程的方式運行由 Vugen 生成腳本。 Player 如何運行腳本,由 Conductor 來決定。這好比一個交響樂隊在演奏。 Player 就是各種管弦樂演奏者, Conductor 是指揮者。

      Conductor 和 Player 實際上是一套框架程序。具體執行什么功能,是由腳本來完成的。 Conductor 和 Player 的體系結構如下圖所示:

      如上圖所示, Conductor 上面有若干進程 / 線程。每種進程的作用如下:

      • Center 進程是整個調度的核心進程,它負責聯系和用戶界面打交道的工作。

      • Agent 進程負責和遠端的 Player 機器中對應的 Agent 進程通訊。負責把編譯好的腳本傳送到 Player 機器上。在腳本運行的時候,定期從 Player 機器上獲取 Player 的運行狀態,每個虛擬用戶運行的日志。

      • Monitor 進程負責對被測試系統的各個環節進行監控,并把監控的內容一方面寫入 Conductor 機器的本地磁盤,另外一方面把監控的內容傳送給 Center 進程,實時地顯示在用戶界面上。

      Player 的進程有兩種,一個是 Agent 進程,一個是 Player 進程。 Agent 負責和 Conductor 機器通訊,它根據 Conductor 的指示,在本機器上派生出指定數目的 Player 進程,這些 Player 進程負責具體執行相應的腳本。 Player 進程個數就是虛擬用戶的個數。

      Player 需要解決的一個問題是 IP 問題。為了防止黑客的攻擊,某些后臺的負載均衡設備一旦發現來自某一個 IP 的請求特別頻繁時,就會拒絕為該 IP 提供服務。這樣的功能造成的結果是 Player 無法把真正的壓力加到后臺系統中。解決方法就是在 Player 機器上偽裝多個 IP 地址發送請求。這項技術稱為 IP 欺騙 (IP Spoofling) 。 Conductor 和 Player 必需實現該項功能。

      • Conductor 和 Player 的技術要點

      關于 Conductor 和 Player 的技術要點有哪些,目前我還沒有做深入的研究工作,但是我認為其技術要點主要涉及多進程 / 線程的編程,網絡編程技術??赡苓@里面最大的難點是監控問題。當把被測系統的各個環節都監控起來,需要監控的參數會有成百上千個。如果采用集中式監控的方式,采集數據本身就對系統造成很大的影響,所以必需支持分布式監控方式。由于采集的數據是來自不同機器上的,由于各種的延遲,數據之間的時間同步將是一個重大的問題。

    原文轉自:http://www.uml.org.cn/Test/200503183.htm

    老湿亚洲永久精品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>