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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    點評性能測試工具OpenSTA

    發布: 2009-3-23 10:46 | 作者: 緱萍萍 | 來源: 測試時代采編 | 查看: 371次 | 進入軟件測試論壇討論

    領測軟件測試網

    下面,介紹如何在OpenSTA 的測試腳本中引入變量,并給變量賦不同值的過程。網絡應用系統一般都會有一個登陸網頁,需要用戶輸入正確的用戶名稱和密碼,經過系統驗證后,用戶才能進入該應用系統。在使用OpenSTA 錄制測試腳本時,輸入的用戶名稱和密碼將被OpenSTA 記錄在腳本中,錄制完成后,可以在腳本文件中發現如下語句:

     

    PRIMARY POST URI"http://demosite.opensta.org/gsg-v1

    HTTP/1.0"ON 2 &

    HEADER DEFAULT_HEADERS &

    ,WITH {"Accept: application/vnd.ms-excel, application/msword,

    application/vnd.ms-powerp" & "oint, image/gif,

    image/x-xbitmap,

    image/jpeg, image/pjpeg, */*", &

    "Referer: http://demosite.opensta.org/gsg-v1", &

    "Accept-Language: en-us", &
       "Content-Type: application/x-www-form-urlencoded", &
       "Content-Length: 22", &
       "Pragma: no-cache"} &

    BODY "loginid="mike&passwd=ekim""

    這里“mike”、“ekim”就是錄制腳本時登陸系統所輸入的用戶名稱和密碼。

    問題是在執行性能測試時,往往需要模擬很多個不同的用戶同時登陸系統,觀察系統的各項性能指標。為每個不同的系統用戶錄制單獨的測試腳本是不現實的。那么,如何修改已錄制好的測試腳本,使其在測試過程中可以模擬多個不同的虛擬用戶,而每個虛擬用戶的用戶名稱和密碼都被寫入測試腳本中呢?

    1、首先,在測試腳本的Definition 部分中增加變量USERNAME、PASSWORD 的定

    義:

    CHARACTER*512

    USERNAME ( "mike", "allan", "david" , "robert" ),

    SCRIPT

     

    CHARACTER*512

    PASSWORD ( "ekim", "nalla", "divad" , "trebor" ),

    SCRIPT

     

     

    這里假設mike、allan、david、robert 是該系統正確的用戶名稱,ekim、nalla、divad、trebor 分別是這些用戶的登陸密碼(說明:OpenSTA 測試腳本分三個部分, Environment、Definition、Code) 2、同時,在腳本的Definition 部分增加變量MY_USERNAME、MY_PASSWORD 的定義:

    CHARACTER*512 MY_USERNAME, LOCAL CHARACTER*512 MY_PASSWORD, LOCAL

    (注意,這兩個變量范圍是LOCAL 型) 3、在發送登陸請求的語句“PRIMARY POST URI"http://demosite.opensta.org/gsg-v1 HTTP/1.0"ON 2…….”之前, 添

    加下列語句:

    ACQUIRE MUTEX "LOGIN"
    NEXT USERNAME
    NEXT PASSWORD
    SET MY_USERNAME = USERNAME
    SET MY_PASSWORD = PASSWORD

    RELEASE MUTEX "LOGIN"

    其中:

    AQUIRE MUTEX 命令的含義是: 將變量USERNAME 和PASSWORD 設置為用戶名稱和密碼這兩個變量選擇值序列中的第一個值,并設置為local 形式,避免其他虛擬用戶使用這個值;

    RELEASE MUTEX 命令的含義是:釋放Mutex, 其他虛擬用戶可以選擇序列中的第一個值(序列中的值是被循環使用的);

    這里需要解釋一下MUTEX 鎖定機制的含義,是為了避免多個虛擬用戶測試時,自動從變量選擇值序列中進行選擇時,出現選擇同一值的現象(即選擇了同一個用戶的現象); 4、將發送登陸請求的PRIMARY POST 語句中BODY 的用戶名和密碼替換成變量:

    PRIMARY POST URI"http://demosite.opensta.org/gsg-v1

    HTTP/1.0"ON 2 & HEADER DEFAULT_HEADERS & ,WITH {"Accept: application/vnd.ms-excel, application/msword,

    application/vnd.ms-powerp" & "oint, image/gif,

    image/x-xbitmap, image/jpeg, image/pjpeg, */*", & "Referer: http://demosite.opensta.org/gsg-v1", & "Accept-Language: en-us", & "Content-Type: application/x-www-form-urlencoded", & "Content-Length: 22", & "Pragma: no-cache"} &

    ,BODY "loginid="mike&passwd=ekim""

    ,BODY "loginid="mike&passwd=ekim""

    改寫為:

    ,BODY "loginid="+MY_USERNAME+"&passwd="+MY_PASSWORD

    至此,對測試腳本的修改已經完成。按照本文前面所介紹的OpenSTA 操作步驟,設置性能測試收集器,設置虛擬用戶的個數為4,開始執行測試,OpenSTA 就會模擬mike、allan、david、robert 這4 個不同的用戶同時登陸系統的情況。說到這里,讀者可能又會問,怎么驗證在測試執行過程中,確實是模擬了這幾個用戶進行登陸的呢?我們可以通過將所有登陸系統的用戶名稱打印出來的方法進行驗證。

    方法是,在發送登陸請求的PRIMARY POST 語句之后,添加Report 語句:

    REPORT "USER ", MY_USERNAME 這樣在測試執行完成后,Test Report Log 中就可以看到打印出來的登陸用戶名稱。(是不是很簡單?大家可以來試試)

    作者在自己的測試腳本中進行實驗,設置虛擬用戶為3 個,在登陸請求語句之后增加Report 語句,以下是測試結束后Test Report Log 信息

     

    這里,“admin”、“sjcj”、“data”是被測試系統的三個用戶名稱。

    通過上邊的一系列闡述,大家對Web 性能測試工具OpenSTA 應該有了一定的了解。如何更有效的利用這個工具,收集系統的性能指標進行性能分析,希望大家共同探討。

    參考文獻:

    1.OpenSTA user manual

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

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