日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版

發(fā)布時(shí)間:2025/3/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

LoadRunner 12.02教程獨(dú)家中文版

Tylan獨(dú)家嘔血翻譯

轉(zhuǎn)載請(qǐng)注明出自“天外歸云”的博客園?

Welcome to the LoadRunner Tutorial

LoadRunner所包含的組件

?如下所示:

?

Vugen:Virtual User Generator,虛擬用戶發(fā)生器的簡(jiǎn)稱,用來(lái)錄制用戶的業(yè)務(wù)流程,創(chuàng)建自動(dòng)化性能測(cè)試腳本,亦稱之為Vuser腳本。

Controller:控制器,用于組織、驅(qū)動(dòng)、管理并監(jiān)控負(fù)載測(cè)試。

Analysis:分析器,幫助你查看,剖析并比較負(fù)載測(cè)的結(jié)果報(bào)告。

Load Generator:負(fù)載發(fā)生器,用來(lái)攢動(dòng)與運(yùn)行虛擬用戶以對(duì)目標(biāo)系統(tǒng)產(chǎn)生負(fù)載的計(jì)算機(jī)。

LoadRunner術(shù)語(yǔ)

場(chǎng)景:在場(chǎng)景中將根據(jù)性能需求來(lái)定義測(cè)試過(guò)程中所發(fā)生的事件。

虛擬用戶:虛擬用戶會(huì)在系統(tǒng)中模仿真實(shí)用戶的行為。一個(gè)場(chǎng)景可以包含數(shù)以千計(jì)的虛擬用戶。

虛擬用戶腳本:錄制了你在程序中所操作的業(yè)務(wù)流程。

協(xié)議:協(xié)議就是客戶端和服務(wù)器之間的交流方式。

事務(wù):事務(wù)用以衡量你的系統(tǒng)性能。一個(gè)事務(wù)代表了一個(gè)或多個(gè)終端用戶的業(yè)務(wù)流程。一個(gè)事務(wù)讓你衡量業(yè)務(wù)流程所花費(fèi)的時(shí)間成為可能。

腳本足跡:由負(fù)載發(fā)生器所需的大量不同資源所定義,以執(zhí)行Vuser腳本為目的。典型的資源包括內(nèi)存,CPU能源,硬盤(pán)空間。

LoadRunner負(fù)載測(cè)試流程:

  • 計(jì)劃負(fù)載測(cè)試:計(jì)劃你的負(fù)載測(cè)試都需要做哪些準(zhǔn)備,比如:并發(fā)的用戶數(shù),主要的業(yè)務(wù)流程,和需要的相應(yīng)次數(shù)等。
  • 創(chuàng)建Vuser腳本:用VuGen把終端用戶的操作活動(dòng)錄制成腳本。
  • 設(shè)計(jì)場(chǎng)景:用Controller創(chuàng)建一個(gè)負(fù)載測(cè)試的環(huán)境。
  • 運(yùn)行場(chǎng)景:用Controller驅(qū)動(dòng),管理并監(jiān)控這個(gè)負(fù)載測(cè)試。
  • 分析結(jié)果:用LoadRunner Analysis生成圖表與報(bào)表,對(duì)系統(tǒng)的性能進(jìn)行評(píng)估。
  • ?

    ?

    開(kāi)始HP Web Tours(惠普在線旅游)

    為了理解LoadRunner是如何做為負(fù)載測(cè)試的解決方案,這個(gè)教程將用性能需求作為一個(gè)樣本應(yīng)用。這個(gè)樣本應(yīng)用——HP Web Tours(惠普在線旅游),是一個(gè)web-based(基于網(wǎng)絡(luò)的)旅游代理系統(tǒng)。HP Web Tours的用戶連接到一個(gè)web服務(wù)器,用于搜索與預(yù)訂航班,檢查航班行程。

    LoadRunner支持超過(guò)50種應(yīng)用,這個(gè)教程僅僅用來(lái)講述怎樣來(lái)對(duì)一個(gè)web-based類型的應(yīng)用進(jìn)行負(fù)載測(cè)試。如果你要對(duì)其他類型的應(yīng)用進(jìn)行負(fù)載測(cè)試,請(qǐng)聯(lián)系惠普以求幫助。

    在教程的這一部分中,你將會(huì)學(xué)到如何開(kāi)始并登錄HP Web Tours。

  • 打開(kāi)樣本的web server:選擇Start > All Programs > HP Software > HP LoadRunner > Samples > Web >Start HP Web Tours Server,在基于圖標(biāo)的桌面中,比如Win8,查找"Start HP",在Search結(jié)果中選擇并打開(kāi)"Start HP Web Tours Server"

    在你訪問(wèn)這個(gè)應(yīng)用的同時(shí)你一定要讓 "Start HP Web Tours Server"的窗口始終開(kāi)著。

  • 打開(kāi)HP Web Tours:選擇Start > All Programs > HP Software > HP LoadRunner > Samples > Web > HP Web Tours Application。Win8同上,搜索HP Web,選擇HP Web Tours Application。(確保你的LoadRunner安在你的計(jì)算機(jī)的默認(rèn)文件夾中,否則HP Web Tours Application不會(huì)被打開(kāi)。)
  • 登陸HP Web Tours:
  • 用戶名和密碼分別輸入jojo和bean
  • 點(diǎn)擊login。
  • 預(yù)訂航班:
  • 在左側(cè)導(dǎo)航欄中點(diǎn)擊Flights,Find Flight頁(yè)面被打開(kāi);
  • Arrival City選擇Los Angeles;
  • 點(diǎn)擊Continue;
  • 在跳轉(zhuǎn)頁(yè)面保持默認(rèn)設(shè)置,點(diǎn)擊Continue;
  • 在Payment Details頁(yè)面,點(diǎn)擊Continue,Invoice頁(yè)面顯示了你的機(jī)票預(yù)訂信息;
  • 在左側(cè)導(dǎo)航欄中點(diǎn)擊Sign Off。
  • 定義應(yīng)用的性能需求

    現(xiàn)在你已經(jīng)熟悉了HP Web Tours,設(shè)想你是性能工程師,你要對(duì)HP Web Tours的性能負(fù)責(zé)并讓其符合HP Web Tours的商業(yè)需求。你的產(chǎn)品經(jīng)理已經(jīng)給出了四點(diǎn)產(chǎn)品的發(fā)布標(biāo)準(zhǔn):

  • HP Web Tours必須能撐得住10個(gè)并發(fā)的旅游客戶端;
  • HP Web Tours必須能同時(shí)運(yùn)行十個(gè)航班預(yù)訂,并且響應(yīng)時(shí)間不得超過(guò)90秒;
  • HP Web Tours必須能夠撐住10個(gè)旅游客戶端同時(shí)運(yùn)行itinerary checks,并且響應(yīng)時(shí)間不得超過(guò)120s;
  • 這個(gè)教程將教你如何建立一個(gè)滿足所有這些需求的負(fù)載測(cè)試,以便于在產(chǎn)品發(fā)布前你可以給出諸如產(chǎn)品性能通過(guò)或失敗的數(shù)據(jù)。

    第一課:建立一個(gè)Vuser腳本

    要對(duì)你的系統(tǒng)產(chǎn)生負(fù)載,首先你要?jiǎng)?chuàng)建一個(gè)可以運(yùn)行的能夠模仿真實(shí)用戶操作的Vuser腳本。這里,你需要用Vugen來(lái)完成這一需求。

    介紹一下Vugen——Virtual User Generator(虛擬用戶發(fā)生器)

    在一個(gè)性能測(cè)試環(huán)境中,LoadRunner用虛擬用戶代替了真實(shí)用戶,虛擬用戶也叫Vusers,虛擬用戶通過(guò)可預(yù)見(jiàn)的,重復(fù)性的模擬真實(shí)用戶操作來(lái)對(duì)系統(tǒng)產(chǎn)生負(fù)載。

    Vugen幫你創(chuàng)建虛擬用戶腳本,它以錄制與回放的原則去工作。當(dāng)你在你的應(yīng)用中完成一遍業(yè)務(wù)流程的同時(shí),Vugen會(huì)記錄你的操作并將其按步驟翻譯成虛擬用戶腳本。虛擬用戶腳本是你負(fù)載測(cè)試的基礎(chǔ)構(gòu)成。

    創(chuàng)建一個(gè)空的虛擬用戶(Vuser)腳本

    去開(kāi)發(fā)一個(gè)虛擬用戶腳本,你首先要打開(kāi)Vugen并創(chuàng)建一個(gè)空腳本。此后你才可以通過(guò)錄制事件或加入人為改善的方式來(lái)改善這個(gè)空腳本。

    本節(jié)你將創(chuàng)建一個(gè)基于Web-based HTTP/HTML協(xié)議的虛擬用戶腳本。

    定義:協(xié)議是服務(wù)器與客戶端之間的交流方式。

    接下來(lái)我們創(chuàng)建一個(gè)空的虛擬用戶腳本:

  • 點(diǎn)擊你桌面上的Virtual User Generator圖標(biāo)打開(kāi)Vugen。

  • 點(diǎn)擊File>New Script and Solution,在彈出頁(yè)中選擇Web-based HTTP/HTML協(xié)議。(左側(cè)的Vugen Category一定確保是Single Protocol)

  • 錄制一個(gè)虛擬用戶腳本

    這部分內(nèi)容將幫你完成之前預(yù)訂航班和檢查行程的錄制。

    首先,你要點(diǎn)擊Record>Recording Options:

    確保Track processes created as COM local servers這一項(xiàng)是沒(méi)有勾選的,然后點(diǎn)擊OK。

    接下來(lái)我們錄制虛擬用戶腳本:

  • 開(kāi)始在HP Web Tours網(wǎng)站上的錄制;
  • 點(diǎn)擊錄制按鈕:

  • url處填寫(xiě):http://localhost:1080/WebTours/,其他保持默認(rèn),然后點(diǎn)擊Start Recording:
  • 注意:確保你的Start HP Web Tours Server是打開(kāi)的,否則可能打不開(kāi)HP Web Tours頁(yè)面。之后你會(huì)看到錄制框出來(lái)了:
  • 在彈出的HP Web Tours頁(yè)面輸入用戶名和密碼:jojo和bean,然后點(diǎn)擊login;
  • Arrival City選擇Los Angeles,Seating Preference選擇Aisle其他保持默認(rèn),點(diǎn)擊Continue;
  • 點(diǎn)擊Continue;
  • Credit Card欄輸入12345678,Exp Date欄填06/14,點(diǎn)擊Continue;
  • 點(diǎn)擊左側(cè)Itinerary;
  • 點(diǎn)擊左側(cè)Sign Off;
  • 點(diǎn)擊Stop Recording按鈕: ,彈出的頁(yè)面點(diǎn)擊Close按鈕;
  • 保存腳本:
  • File>Save Script As
  • 名字取為basic_tutorial
  • 查看虛擬用戶腳本

    左側(cè)的Solution Explorer給出了Vuser腳本的各個(gè)組成部分與相關(guān)文件。

    Step Navigator以小圖標(biāo)的形式列出了虛擬用戶各個(gè)步驟的操作,你在錄制腳本的過(guò)程中所做的每一個(gè)操作,Vugen都會(huì)在Step Navigator中生成相應(yīng)的步驟。

    每個(gè)步驟名字右側(cè)的小圖標(biāo)代表有截圖:

    用戶的操作是以API函數(shù)的形式顯示在右邊的編輯器中的,你可以用C語(yǔ)言或者LoadRunner API函數(shù)或是一些流程控制語(yǔ)句在其中直接進(jìn)行編寫(xiě)。

    第二課:回放你的腳本

    上一節(jié),你錄制了腳本。但是在你把你的腳本放到場(chǎng)景中執(zhí)行前,你需要回放你的腳本以檢查你錄制的Vuser腳本是否能正常工作。

    在你回放腳本之前,你必須配置腳本的runtime settings,它定義了虛擬用戶的行為。

    怎樣設(shè)置虛擬用戶的runtime行為?

    LoadRunner的運(yùn)行時(shí)設(shè)置(runtime settings)讓你能夠模擬不同種類的用戶活動(dòng)和行為。例如:你可以模擬一個(gè)對(duì)服務(wù)器的輸出立刻做出響應(yīng)的用戶,或者你也可以模擬一個(gè)每一步都要思考才能做出響應(yīng)的用戶。你可以配置運(yùn)行時(shí)設(shè)置(runtime settings)來(lái)具化虛擬用戶需要重復(fù)多少次腳本中的操作。

    本節(jié)介紹通用的可以應(yīng)用與所有的虛擬用戶協(xié)議的runtime settings該如何配置,關(guān)于特殊的協(xié)議在第四節(jié)課中將會(huì)講到。General runtime settings包括:

    Run Logic(運(yùn)行邏輯):Vuser重復(fù)不同部分Vuser腳本的次數(shù)。

    Pacing(節(jié)奏):每?jī)纱沃貜?fù)之間的等待時(shí)間。

    Think Time(思考時(shí)間):腳本之中步驟之間Vuser所需要停頓的時(shí)間。

    Log:設(shè)置在你回放腳本過(guò)程中所需要收集的信息的level(等級(jí))。

    本節(jié)課介紹用Vugen修改runtime settings,之后的課程將介紹如何用Controller修改runtime settings。

    修改runtime settings:

  • 打開(kāi)你上節(jié)課保存的Vuser腳本;
  • 打開(kāi)runtime settings對(duì)話框,點(diǎn)擊Replay>Runtime Settings(按F4)出現(xiàn)編輯界面:

  • 設(shè)置Run Logic配置:

    在左側(cè)欄中選擇Run Logic,設(shè)置Number of iterations(重復(fù)次數(shù))為2,這個(gè)是用來(lái)設(shè)置腳本中Action部分的重復(fù)次數(shù):

  • 設(shè)置Pacing settings:

    在這里你可以設(shè)置每?jī)纱沃貜?fù)之間的等待時(shí)間,你可以設(shè)置一個(gè)隨機(jī)值,這將以一個(gè)隨機(jī)的間隔時(shí)間更加精確的模擬真實(shí)用戶在重復(fù)操作之間等待所用的時(shí)間,比如你不會(huì)看到真實(shí)用戶在每?jī)纱沃貜?fù)操作之間總是等待六十秒。

    選擇第三個(gè)圓按鈕,設(shè)置隨機(jī)時(shí)間間隔為60到90秒:

  • 設(shè)置Log settings:

    這里設(shè)置在運(yùn)行時(shí)要記錄那些log信息。在你開(kāi)發(fā)腳本的時(shí)候你可能會(huì)為了debug方便而想要得到一些特別的log信息,但是一旦你調(diào)試通過(guò)了,你可能以后只需要得到error的log信息,或根本不需要log信息了。

    選擇Extended log并勾選parameter substitution。這個(gè)選項(xiàng)和以后課程中將要討論的點(diǎn)相關(guān)。

  • 設(shè)置Think Time:

    保持默認(rèn)設(shè)置,忽略Think Time時(shí)間。你可以在Controller中設(shè)置。

  • 我怎么運(yùn)行我的Vuser腳本?

    在錄制好腳本并設(shè)置好runtime settings后,你就做好了運(yùn)行腳本所需要的準(zhǔn)備。Vugen在你運(yùn)行腳本的過(guò)程中會(huì)給予你一些的指示器。

  • 左下角會(huì)出現(xiàn)"Running"字樣。
  • 編輯器中會(huì)出現(xiàn)小黃箭頭,它會(huì)指向正在被回放的腳本。
  • 下面output中會(huì)顯示回放過(guò)程中的消息。
  • 介紹完界面上的東西,下面我們來(lái)運(yùn)行錄制好的腳本:

  • 在Vugen中打開(kāi)Vuser腳本;
  • 點(diǎn)擊Replay>Run或者直接點(diǎn)擊工具欄上的按鈕。

    在回放結(jié)束后會(huì)彈出個(gè)東東建議你檢查相關(guān)的,點(diǎn)擊NO。

  • 我在哪里可以看到回放信息?

    當(dāng)Vuser腳本停止運(yùn)行,你可以看到回放的一個(gè)總結(jié),回放的總結(jié)會(huì)顯示在Replay Summary 標(biāo)簽下。

    回放總結(jié)標(biāo)簽下列出了關(guān)于腳本運(yùn)行的基本信息,比如回放時(shí)間間隔,回放的開(kāi)始與截止時(shí)間。下面的兩個(gè)link分別是腳本運(yùn)行的詳細(xì)結(jié)果和回放時(shí)所收集的log。

    回放的log里記錄了回訪時(shí)所發(fā)生的事件,在Vugen的output欄里顯示。

    在教材的這一部分,你將打開(kāi)log,在log中找到指定的事件和提示。

    查看回放log:

  • 在腳本回放完成后,點(diǎn)擊View>Output或在Vugen工具欄中點(diǎn)擊Output按鈕。或者你也可以在Replay Summary標(biāo)簽下點(diǎn)擊The Replay Log的鏈接;
  • 確認(rèn)你的Output欄中Replay已經(jīng)被選擇:

  • 在Vugen菜單中點(diǎn)擊Search>Quick Find去打開(kāi)Search對(duì)話框;
  • 在Scope中選擇Current Script;
  • 點(diǎn)擊展開(kāi)Include in search,之后勾選Logs;
  • 通過(guò)Search對(duì)話框在回放log中定位以下信息:
  • "Virtual User Script Started"——腳本運(yùn)行的開(kāi)始;
  • "Vuser Terminated"——腳本運(yùn)行的結(jié)束;
  • "Iteration"——每一次重復(fù)的開(kāi)始和結(jié)尾以及重復(fù)的次數(shù)。(橘色字體的文本)
  • 注意:Output欄中綠色的是成功信息,紅色的是失敗信息。Output欄中也會(huì)指出出現(xiàn)的的error在腳本中對(duì)應(yīng)的行號(hào)。

    雙擊Output欄中的行,將會(huì)定位到相應(yīng)的腳本行。

    我怎么知道我的腳本回放是否成功?

    在你回放了你所錄制的腳本后,你需要查看回放結(jié)果去判斷腳本是否回放成功。如果有哪有東西失敗了,你想知道什么時(shí)候?yàn)槭裁词×恕?/p>

    這一部分你將學(xué)會(huì)檢查和分析腳本運(yùn)行結(jié)果。Vugen在Test Results窗口中總結(jié)了回放結(jié)果。

    你打開(kāi)Test Results窗口后會(huì)發(fā)現(xiàn)它有兩個(gè)欄,左側(cè)的樹(shù)欄和右側(cè)的結(jié)果總結(jié)欄。

    • 樹(shù)欄包括結(jié)果樹(shù),每一次重復(fù)在樹(shù)中都被標(biāo)注了數(shù)字。
    • 結(jié)果總結(jié)欄包含了腳本回放的詳細(xì)信息,當(dāng)然也包括了屏幕錄制器(Screen Recorder)的移動(dòng),如果有的話。頂部的表告訴你哪些次重復(fù)(Iteration)失敗了,哪些次成功了。和原始錄制的過(guò)程相比較,如果虛擬用戶順利完成了整個(gè)過(guò)程,那么這次測(cè)試將被認(rèn)為是通過(guò)的。底部的表告訴你事務(wù)(Transactions)檢查點(diǎn)(CheckPoints)是否成功或失敗。在教程的后續(xù)章節(jié)你將學(xué)到如何添加這些特色(指事務(wù)或檢查點(diǎn))。

    可以通過(guò)下面兩種方法來(lái)查看回放結(jié)果:

  • 點(diǎn)擊Replay Summary標(biāo)簽;
  • 點(diǎn)擊Reply>Test Results,Test Results窗口打開(kāi)了并顯示了Results Summary。
  • 下一部分,你將鉆入回放結(jié)果中仔細(xì)研究,從而判斷腳本在回放過(guò)程中是否到達(dá)了預(yù)期的web頁(yè)面。

    我應(yīng)該怎樣查找或過(guò)濾回放結(jié)果?

    如果你的回放結(jié)果表示有什么東西失敗了,你可以進(jìn)一步定位失敗的原因。

    在Test Results窗口中左側(cè)的樹(shù)欄,你可以展開(kāi)你的測(cè)試樹(shù),分別查看每一次重復(fù)中每一步的結(jié)果。右側(cè)的總結(jié)欄中會(huì)顯示該次重復(fù)過(guò)程中對(duì)應(yīng)的回放截圖。

  • 展開(kāi)樹(shù)上的一個(gè)重復(fù)節(jié)點(diǎn):
  • 在結(jié)果樹(shù)上展開(kāi)basic_tutorial Iteration 1節(jié)點(diǎn);
  • 展開(kāi)Action Summary節(jié)點(diǎn),展開(kāi)的列表將按順序顯示該次循環(huán)中所執(zhí)行的操作步驟;
  • 查看結(jié)果截圖:
  • 點(diǎn)擊Submit Form:reservations.pl,右側(cè)總結(jié)欄將顯示該步操作時(shí)所對(duì)應(yīng)的截圖:

  • 查看步驟總結(jié):

    總結(jié)欄顯示關(guān)于步驟的總結(jié)性信息:如對(duì)象或步驟名,詳細(xì)的關(guān)于頁(yè)面是否成功加載,結(jié)果是否通過(guò),每一步的發(fā)生時(shí)間等。

  • 查找結(jié)果狀態(tài):

    你可以在回放結(jié)果中搜索"Passed"或"Failed"。

    這是非常有幫助的,因?yàn)槿绻愕幕胤沤Y(jié)果總結(jié)中告訴你失敗了,它可以幫你找到哪里失敗了。

  • 想要查詢回放結(jié)果,點(diǎn)擊Tools>Find或者點(diǎn)擊工具欄中的Find按鈕,查詢對(duì)話框就會(huì)被打開(kāi);

  • 勾選"Passed",其他的不勾選,點(diǎn)擊"Find Next",測(cè)試樹(shù)欄中將把第一個(gè)通過(guò)的(Passed)步驟高亮顯示出來(lái),如果沒(méi)有通過(guò)的則不高亮顯示。
  • 過(guò)濾結(jié)果:

    你可以過(guò)濾測(cè)試樹(shù)欄來(lái)顯示一個(gè)指定的循環(huán)或狀態(tài)。比如,你可以過(guò)濾它只顯示"Failed"狀態(tài)的。

  • 點(diǎn)擊View>Filters或點(diǎn)擊工具欄中的Filters按鈕,Filters對(duì)話框就會(huì)被打開(kāi);

  • Status選擇Fail選項(xiàng);
  • Content選擇All選項(xiàng),點(diǎn)擊OK。

    可以看到左面的樹(shù)欄空了,這是因?yàn)檫^(guò)程中不存在失敗。

  • 關(guān)閉Test Results窗口:

    點(diǎn)擊File>Exit。

  • 第三課:解決回放過(guò)程中所遇到的一般問(wèn)題

    當(dāng)你錄制好一個(gè)腳本后,你通過(guò)在VuGen中運(yùn)行來(lái)驗(yàn)證該腳本是否通過(guò)。有時(shí)回放會(huì)失敗,即便同樣的操作在錄制時(shí)是成功的。

    有很多應(yīng)用是動(dòng)態(tài)生成值的,你每次打開(kāi)這個(gè)應(yīng)用的時(shí)候都不一樣。比如,有些服務(wù)器為每一個(gè)新的會(huì)話都賦予一個(gè)獨(dú)一無(wú)二的會(huì)話ID。當(dāng)你試著回放一個(gè)錄制好的會(huì)話時(shí),會(huì)話會(huì)生成一個(gè)與錄制時(shí)不同的新的會(huì)話ID。當(dāng)你回放特定的腳本時(shí),像會(huì)話ID這樣的動(dòng)態(tài)值將會(huì)給你帶來(lái)麻煩。比如當(dāng)你回放Web-HTTP/HTML類型的腳本時(shí)動(dòng)態(tài)的會(huì)話ID就會(huì)帶來(lái)麻煩,但是當(dāng)回放Web-TruClient類型腳本時(shí)就不會(huì)。

    LoadRunner利用關(guān)聯(lián)性來(lái)定位與解決這種動(dòng)態(tài)值的問(wèn)題。關(guān)聯(lián)性保存這種變化的值到一個(gè)參數(shù)中,就像我們這個(gè)例子中的會(huì)話ID。當(dāng)我們運(yùn)行腳本時(shí),虛擬用戶將不會(huì)采用事先錄制的值,取而代之,會(huì)采服務(wù)器所賦予其的新會(huì)話ID。

    這節(jié)課你講學(xué)習(xí)LoadRunner是如何解決在Web-HTTP/HTML類型Vuser腳本運(yùn)行時(shí)產(chǎn)生的動(dòng)態(tài)值問(wèn)題。

    為HP Web Tours的回放錯(cuò)誤做準(zhǔn)備

    為了說(shuō)明一個(gè)普遍存在的回放失敗,你需要在HP Web Tours應(yīng)用中修改一個(gè)設(shè)置。這個(gè)設(shè)置會(huì)讓HP Web Tours服務(wù)器需要獨(dú)一無(wú)二的會(huì)話ID。

  • 打開(kāi)HP Web Tours:

    Start > All Programs > HP Software > HP LoadRunner > Samples > Web > HP Web Tours Application. 之后HP Web Tours的Home Page頁(yè)面就被打開(kāi)了。(Win8的話在界面輸入HP Web進(jìn)行搜索)

  • 改變服務(wù)器選項(xiàng):
  • 在頁(yè)面點(diǎn)擊"administration"鏈接,Administration頁(yè)面就被打開(kāi)了;
  • 選擇"Set LOGIN form's action tag to an error page.",這個(gè)設(shè)置將不允許服務(wù)器復(fù)制會(huì)話ID;
  • 點(diǎn)擊"Update"按鈕;
  • 點(diǎn)擊頁(yè)面底部的"Return to the Web Tours Homepage"鏈接。
  •       

    我們對(duì)于獨(dú)一無(wú)二的服務(wù)器值是如何處理的?

    在HP Web Tours被修改的配置中,服務(wù)器給每一個(gè)虛擬用戶一個(gè)獨(dú)一無(wú)二的值。如果你試著回放沒(méi)有修改過(guò)的在第一課中所錄制的虛擬用戶腳本,回放的結(jié)果將是失敗的。

    為了克服這個(gè)問(wèn)題,你需要用VuGen去實(shí)現(xiàn)這個(gè)關(guān)聯(lián)會(huì)話 ID的需求。你需要在VuGen中添加一步把這個(gè)獨(dú)特的會(huì)話ID添加到一個(gè)參數(shù)中。在后續(xù)的每一個(gè)會(huì)話中,VuGen都會(huì)將新的獨(dú)一無(wú)二的會(huì)話ID存入一個(gè)參數(shù)中。在虛擬用戶運(yùn)行Vuser腳本中的步驟時(shí),虛擬用戶會(huì)使用已經(jīng)保存的會(huì)話ID值,而不是原先錄制好的值。

  • 錄制一個(gè)新的包含動(dòng)態(tài)值的腳本:
  • 錄制一個(gè)新的包含和第一課中所錄制的腳本具有相同步驟的虛擬用戶腳本;
  • 將腳本保存為"basic_tutorial_Cor"。
  • 回放新錄制的腳本:

    點(diǎn)擊錄制按鈕進(jìn)行錄制,VuGen運(yùn)行這個(gè)新的腳本,你會(huì)注意到回放log中有一些紅色字體的錯(cuò)誤信息出現(xiàn)。

    回訪結(jié)束后,一個(gè)消息對(duì)話框會(huì)彈出提醒你檢查關(guān)聯(lián),點(diǎn)擊"No"。

  • 檢查回放總結(jié):

    觀察回放總結(jié)欄(Replay Summary Tab),總結(jié)中會(huì)指出你的回放失敗了。

  • 檢查腳本中的關(guān)聯(lián)(Scan for correlations):

    選擇"Design > Design Studio"

    VuGen檢查腳本和它所關(guān)聯(lián)的數(shù)據(jù),查找可能的動(dòng)態(tài)值。Design Studio下Correlation這個(gè)欄列出了三個(gè)需要關(guān)聯(lián)的動(dòng)態(tài)值。這三個(gè)值中最長(zhǎng)的那個(gè)是會(huì)話ID。

  • 關(guān)聯(lián)會(huì)話ID:
  • 在Correlation欄選擇會(huì)話ID那一行,并點(diǎn)擊Correlate。VuGen會(huì)把會(huì)話ID的狀態(tài)變化Applied,并會(huì)在腳本的頂部插入一個(gè)新的方法,這個(gè)方法將把原始的會(huì)話ID存入一個(gè)參數(shù)中。

    在之后的每一個(gè)回放會(huì)話中,VuGen都將保存新的獨(dú)一無(wú)二的會(huì)話ID到參數(shù)中。當(dāng)虛擬用戶運(yùn)行腳本時(shí),會(huì)以該參數(shù)取代原先錄制的值;

  • 點(diǎn)擊"Close"關(guān)閉Design Studio。
  • 來(lái)查看一下關(guān)聯(lián)語(yǔ)句的語(yǔ)法:

    在VuGen編輯器中個(gè),定位到VuGen加到腳本中的語(yǔ)句。新的語(yǔ)句看起來(lái)就像下面這樣:

    這個(gè)語(yǔ)句告訴VuGen將第一次包含在正則表達(dá)式中的值(獨(dú)一無(wú)二的會(huì)話ID)存入?yún)?shù)中并叫CorrelationParameter這個(gè)名字。

  • 重新運(yùn)行腳本:
  • 點(diǎn)擊回放按鈕,結(jié)束運(yùn)行后在Output欄中查看回放log,發(fā)現(xiàn)沒(méi)有錯(cuò)誤信息了;
  • 在腳本中,右鍵點(diǎn)擊web_reg_save_param_regexp選擇Go to step in Replay Log,VuGen將鼠標(biāo)定位在Replay Log中所對(duì)應(yīng)的行處。Log表明方法web_reg_save_param_regexp方法執(zhí)行成功,關(guān)聯(lián)順利。
  • 重置HP Web Tours服務(wù)器以忽略獨(dú)一的會(huì)話ID:
  • 打開(kāi)HP Web Tours Application;
  • 在Home Page頁(yè)面點(diǎn)擊Administration鏈接;
  • 取消勾選"Set LOGIN form's action tag to an error page";
  • 在頁(yè)面底部點(diǎn)擊"Update"。
  • 現(xiàn)在你對(duì)回放中的錯(cuò)誤有一定的了解了,可以去學(xué)習(xí)第四課了。

    第四課:為負(fù)載測(cè)試準(zhǔn)備一個(gè)虛擬用戶腳本

    在之前的課程中,你已經(jīng)確認(rèn)你的腳本回放的過(guò)程精確的模擬了真實(shí)用戶的行為。下一步,就是為了負(fù)載測(cè)試準(zhǔn)備腳本。那么,多個(gè)用戶同時(shí)并發(fā)的在系統(tǒng)上工作會(huì)怎樣呢?系統(tǒng)會(huì)不會(huì)慢到一個(gè)不可接受的程度?

    在這一課中,你將會(huì)學(xué)到不同的方法去豐富你的腳本,讓它在負(fù)載測(cè)試的過(guò)程中更加有效率。

    怎樣去估量一個(gè)業(yè)務(wù)流程的持續(xù)時(shí)間呢?

    當(dāng)你為一個(gè)應(yīng)用做部署時(shí),一定要準(zhǔn)確的估測(cè)業(yè)務(wù)流程的持續(xù)時(shí)間——登陸需要多久,訂飛機(jī)票等等。每一個(gè)業(yè)務(wù)流程都由你腳本中的一步或多步組成。在一個(gè)虛擬用戶腳本中,你通過(guò)把這些步驟加到一個(gè)事務(wù)(transaction)中來(lái)設(shè)計(jì)一系列你想要估測(cè)的行為。

    當(dāng)你運(yùn)行一個(gè)包含事務(wù)的腳本時(shí),LoadRunner將會(huì)收集關(guān)于事務(wù)所花費(fèi)時(shí)間的信息,并且以彩色編碼的段落顯示結(jié)果和報(bào)告。你通過(guò)這個(gè)信息去判斷這個(gè)應(yīng)用是否能滿足你的性能需求。

    你可以手動(dòng) 的在虛擬腳本中的任何位置插入一段事務(wù)。為了將一系列步驟組成事務(wù),在第一步之前插入一個(gè)事務(wù)開(kāi)始(start_transaction)標(biāo)識(shí),在最后一步之后插入一個(gè)事務(wù)結(jié)束(end_transaction)標(biāo)識(shí)。

    這部分你將在你的腳本中插入一段事務(wù)來(lái)衡量用戶查找和預(yù)訂機(jī)票這個(gè)過(guò)程所花費(fèi)的時(shí)間。

    在虛擬用戶腳本中插入一段事務(wù)(transaction):

  • 在VuGen中,打開(kāi)在第一課時(shí)你所創(chuàng)建的Basic_Turorial腳本;
  • 點(diǎn)擊"Step Navigator"欄;
  • 插入一個(gè)事務(wù)開(kāi)始標(biāo)識(shí):
  • 在Step Navigator中,定位到步驟:Image: Search Flights Button.
  • 雙擊該步驟以找到對(duì)應(yīng)在編輯器中的位置;
  • 點(diǎn)擊View >Steps Toolbox,右側(cè)將出現(xiàn)工具欄;
  • 在工具欄中Common下,找到lr_start_transaction并把他拖進(jìn)編輯器中,并把它放在web_image步驟前。此時(shí)開(kāi)始事務(wù)對(duì)話框會(huì)被打開(kāi);
  • 在Transaction Name欄中填寫(xiě)"find_confirm_flight"并點(diǎn)擊"OK"。Vugen將在Step Navigator中插入一個(gè)lr_start_transaction的步驟以及一個(gè)相應(yīng)的叫做lr_start_transaction的方法在編輯器中。
  • 插入一個(gè)事務(wù)結(jié)束標(biāo)識(shí):
  • 在Step Navigator中,定位到步驟:Submit Data: reservations.pl_2;
  • 雙擊,定位到編輯器中相應(yīng)的代碼行;
  • 在Steps Toolbox的Common下找到lr_end_transaction,并把它拖到web_submit_data這部分代碼的后面,此時(shí)結(jié)束事務(wù)對(duì)話框會(huì)被打開(kāi);
  • 確認(rèn)Transaction Name為"find_confirm_flight",然后點(diǎn)擊"OK"。Vugen會(huì)在左側(cè)的Step Navigator中插入一個(gè)lr_end_transaction步驟,并在編輯器相應(yīng)的位置插入一個(gè)lr_end_transaction方法。
  • 現(xiàn)在你知道該怎么樣去定義"find_confirm_flight"這個(gè)事務(wù)了。

    要怎樣才能模仿多個(gè)用戶?

    在你的模仿中,你記錄了一個(gè)預(yù)定航班和選座的過(guò)程。但是真實(shí)的生活中,往往多個(gè)用戶會(huì)有不同的選擇。為了改進(jìn)你的測(cè)試,你需要檢查當(dāng)多個(gè)用戶做出不同的選擇時(shí)(Aisle,Window或None)預(yù)定是否依然能正常工作。

    為了完成這個(gè)愿望,你需要參數(shù)化你的腳本。這就意味著你要把你錄制的值,比如Aisle,用參數(shù)來(lái)替代。你將在一個(gè)參數(shù)文件中替換這些參數(shù)的值。當(dāng)你運(yùn)行腳本時(shí),虛擬用戶將會(huì)使用參數(shù)文件中的值(Aisle,Window或None)以便更加真實(shí)的模擬一個(gè)客戶端環(huán)境。

    參數(shù)化你的腳本:

  • 找到你想要更改值的區(qū)域:
  • 選擇View>Step Navigator,在左側(cè)欄中打開(kāi)Step Navigator;
  • 在Step Navigator中定位到Submit Data:reservations.pl這一步;
  • 右鍵點(diǎn)擊Submit Form:reservations.pl這一步,選擇Show Arguments。Submit Form Step Properties對(duì)話框打開(kāi)了:

    這個(gè)圖標(biāo)代表有定值。

  • 改變定值為可變值:
  • 在Submit Form Step Properties對(duì)話框中選擇第七行seatPref;
  • 點(diǎn)擊seatPref右側(cè)的按鈕,Select Or Create對(duì)話框出現(xiàn):
  • 創(chuàng)建一個(gè)參數(shù):
  • 在Parameter name處填寫(xiě)seat;
  • 點(diǎn)擊"OK",Submit Form Step Properties對(duì)話框中VuGen將圖標(biāo)替換成圖標(biāo)。

  • 點(diǎn)擊圖標(biāo),Parameter Properties對(duì)話框打開(kāi):
  • 為參數(shù)指定值:
  • 點(diǎn)擊Add Row;
  • 將Value改成Window;
  • 點(diǎn)擊Add Row;
  • 將Value改成None;

    備注:值并不是大小寫(xiě)敏感的。

  • 對(duì)話框的Select Column和File Format部分保持默認(rèn)設(shè)置。
  • 定義測(cè)試將如何改變數(shù)據(jù):
  • Update value on保持默認(rèn)設(shè)置:Each Iteration;
  • 點(diǎn)擊"Close"關(guān)閉Parameter Properties對(duì)話框;
  • 點(diǎn)擊"OK"關(guān)閉Submit Form Step Properties對(duì)話框。

    你現(xiàn)在已經(jīng)為seating preference創(chuàng)建了一個(gè)參數(shù),當(dāng)你運(yùn)行負(fù)載測(cè)試時(shí),虛擬用戶會(huì)使用參數(shù)中的值而不使用你事先錄制好的腳本中的值——Aisle。

    當(dāng)你運(yùn)行腳本時(shí),Replay log里將會(huì)告訴你每次重復(fù)所用到的參數(shù)中的值。虛擬用戶第一次運(yùn)行使用的是Aisle,第二次是Window,第三次是None。

  • 我怎樣確認(rèn)網(wǎng)頁(yè)上的內(nèi)容?

    當(dāng)你運(yùn)行一個(gè)測(cè)試時(shí),你經(jīng)常需要確認(rèn)返回頁(yè)面上是否包含某些特定內(nèi)容。Content check功能將會(huì)在腳本運(yùn)行時(shí)自動(dòng)幫你在頁(yè)面上檢查你的預(yù)期信息。你可以插入兩種內(nèi)容檢查:

    Text Check:在網(wǎng)頁(yè)上檢查一段文字;

    Image Check:在網(wǎng)頁(yè)上檢查一張圖片。

    在這一部分你將插入一個(gè)text check去檢查是否Find Flight字樣出現(xiàn)在HP Web Tours的Reservations頁(yè)面上。

    插入一個(gè)text check:

  • 點(diǎn)擊切換到Step Navigator欄;
  • 在Step Navigator欄中定位到Submit Form:reservations.pl這一步;
  • 在VuGen工具欄上,點(diǎn)擊Show Snapshot pane按鈕讓Snapshot欄顯示出來(lái);

  • 在Step Navigator中Submit Form:reservations.pl的截圖標(biāo)志,相應(yīng)的截圖將出現(xiàn)在Snapshot欄中:

  • 從VuGen的菜單中點(diǎn)擊View>Steps Toolbox。Steps Toolbox欄出現(xiàn);

  • 在Steps Toolbox的Search框中輸入web_reg并在Filter Results中定位到web_reg_find這一步;
  • 將web_reg_find這一步拖拽到web_submit_form方法前:

    Find Text Dialog打開(kāi)了:

  • 在Find Text對(duì)話框中,在Search for specific Text框中輸入Find Flight,并點(diǎn)擊"OK";

  • VuGen插入一個(gè)web_reg_find步驟到Step Navigator中,和一個(gè)相應(yīng)的web_reg_find方法到編輯器中。

    當(dāng)你回放腳本時(shí),VuGen將會(huì)查找文字"Find Flight"并在回放log中表明是否找到相應(yīng)文字。

  • 我應(yīng)該怎樣去生成調(diào)試信息?

    在測(cè)試中 的一些點(diǎn)上,你想讓LoadRunner生成并發(fā)送一些和腳本運(yùn)行時(shí)相關(guān)的消息,這些消息既會(huì)顯示在Output欄中的Replay log中,也會(huì)顯示在Controller的Output窗口中。你可以生成標(biāo)準(zhǔn)輸出信息,或生成信息以指出錯(cuò)誤所在之處。

    對(duì)待錯(cuò)誤消息的推薦處理方式是檢查Failed狀態(tài),如果發(fā)現(xiàn)了狀態(tài)為Failed的信息,你讓VuGen去生成一個(gè)錯(cuò)誤消息。更多的詳細(xì)信息請(qǐng)查看HP LoadRunner Function Reference中的例子。

    在教程的本部分,你將讓VuGen在應(yīng)用完成一次完整的預(yù)訂后插入一條輸出信息(Output Message)。

    插入一條輸出信息:

  • 點(diǎn)擊Step Navigator欄;
  • 在Step Navigator欄中定位到最后一步:Image:SignOffButton;
  • 雙擊Image:SignOffButton這一步,編輯器中顯示相應(yīng)的web_image方法;
  • 在Steps Toolbox中Common下定位到lr_output_message方法;
  • 將lr_output_message方法拖拽到web_image方法后,Output Message對(duì)話框打開(kāi);

  • Message Text中填寫(xiě):The flight was booked;
  • 點(diǎn)擊"OK"。VuGen添加一個(gè)lr_output_message的方法到腳本中,并且在Step Navigator中生成相應(yīng)的一步。

  • 點(diǎn)擊VuGen工具欄中的Save按鈕保存腳本。

    請(qǐng)注意,插入一條錯(cuò)誤消息你要重復(fù)相同的過(guò)程,除非在Steps Toolbox中選擇lr_error_message方法而不是lr_output_message方法。

  • 我的腳本回放真的成功了嗎?

    在這一部分,你將學(xué)習(xí)運(yùn)行強(qiáng)化后的腳本并在Replay log中查找text check信息。你將會(huì)檢查text check的結(jié)果以及事務(wù)和參數(shù)化的詳細(xì)信息。

    默認(rèn)情況下,image(圖片)和text(文本)的檢查在回放過(guò)程中是禁用的,因?yàn)樗鼈冃枰嗟膬?nèi)存。如果你想要執(zhí)行圖片或文本的檢查,你需要在runtime settings中enable他們(使它們可用)。

  • 使圖片和文本檢查可用:
  • 點(diǎn)擊Replay>Runtime Settings;
  • 選擇nternet Protocol>Preferences;
  • Enable image and text check;
  • 點(diǎn)擊"OK"。
  • 運(yùn)行腳本:

    點(diǎn)擊VuGen工具欄上的Replay按鈕,VuGen開(kāi)始運(yùn)行腳本,在Output欄的Replay log中生成條目信息。

    等待腳本完成運(yùn)行。

  • 定位文本檢查:
  • 點(diǎn)擊Output欄,選擇Replay;
  • 在Replay log中點(diǎn)擊鼠標(biāo),按Ctrl+F進(jìn)行搜索;
  • 搜索web_reg_find;

    點(diǎn)擊Find Next,你先后會(huì)搜索到符合的信息:

    web_reg_find started

    Registering web_reg_find was successful.

    這其實(shí)不是真正的text check,這是在表單提交后進(jìn)行的查詢。

    點(diǎn)擊Find Next顯示下一處包含web_reg_find的地方:

    Registered web_reg_find successful for "Text=Find Flight" (count=1)

    這行表明text被找到,如果有人改變了網(wǎng)頁(yè)并移除了Find Flight字樣,那么在之后的運(yùn)行中,Output將指出找不到相應(yīng)的text。

  • 定位一個(gè)事務(wù)的開(kāi)端:
  • 在Replay log中點(diǎn)擊Ctrl+F打開(kāi)搜索對(duì)話框;
  • 搜索"Transaction",提示會(huì)以藍(lán)色字體表現(xiàn)。
  • 檢查參數(shù)的替代值:
  • 在Replay log中點(diǎn)擊Ctrl+F打開(kāi)搜索對(duì)話框;
  • 搜索"Parameter",log中告訴你"seat"="Aisle"。
  • 選擇File>Save或點(diǎn)擊VuGen工具欄上的Save按鈕保存。
  • 第五課:創(chuàng)建一個(gè)負(fù)載測(cè)試場(chǎng)景

    在之前的課程中,你用VuGen來(lái)驗(yàn)證你的虛擬用戶腳本。在本節(jié)課中,你將在多個(gè)虛擬用戶負(fù)載你的系統(tǒng)下來(lái)測(cè)評(píng)你的系統(tǒng),你將模擬10個(gè)客戶端不同程度的同時(shí)使用訂票系統(tǒng),并在此負(fù)載下觀察系統(tǒng)的運(yùn)行。為了設(shè)計(jì)并運(yùn)行這個(gè)測(cè)試,你需要使用LoadRunner Controller。

    場(chǎng)景目標(biāo):

    在本節(jié)課中,你的目標(biāo)是創(chuàng)建一個(gè)場(chǎng)景來(lái)模擬十個(gè)不同的用戶并發(fā)的進(jìn)行登陸,查詢飛機(jī)票,預(yù)訂飛機(jī)票,檢查旅程與注銷的行為。

    介紹一下LoadRunner Controller

    負(fù)載測(cè)試意味著要在典型的工作場(chǎng)景下測(cè)試你的系統(tǒng)。比如,你需要對(duì)許多旅游客戶同時(shí)在網(wǎng)上對(duì)同一個(gè)票務(wù)預(yù)訂系統(tǒng)進(jìn)行操作的情況進(jìn)行測(cè)試。

    你設(shè)計(jì)場(chǎng)景是為了模擬真實(shí)的情況。為了達(dá)到這個(gè)目的,你需要能夠?qū)δ愕南到y(tǒng)產(chǎn)生負(fù)載,并且對(duì)負(fù)載進(jìn)行時(shí)間上的編排(因?yàn)橛脩舨粫?huì)同時(shí)登陸和注銷)。你也需要模擬不同用戶的不同行為。比如有些用戶用火狐瀏覽器去訪問(wèn)這個(gè)系統(tǒng),而其他的用戶則用IE。用戶也會(huì)通過(guò)不同的網(wǎng)絡(luò)連接到該系統(tǒng),比如modem,DSL,或cable。你在場(chǎng)景中創(chuàng)建并保存這些設(shè)置。

    Controller為你提供能夠讓你真實(shí)的模擬你的工作環(huán)境而創(chuàng)建與運(yùn)行測(cè)試所需要的所有工具。

    我怎么樣開(kāi)始使用Controller?

    要?jiǎng)?chuàng)建一個(gè)場(chǎng)景,你首先要打開(kāi)LoadRunner Controller。

  • 打開(kāi)HP LoadRunner Controller:

    HP LoadRunner Controller打開(kāi)并顯示New Scenario對(duì)話框。

  • 選擇一個(gè)Scenario Type(場(chǎng)景類別)。

    有兩種Scenario Type:

    Manual Scenario:讓你能夠控制虛擬用戶的數(shù)量以及他們分別運(yùn)行腳本的次數(shù),并且能夠讓你測(cè)試你的系統(tǒng)同時(shí)能夠響應(yīng)多少用戶的操作。

    你可以根據(jù)你的業(yè)務(wù)需求分析用百分比模式(Percentage Mode)來(lái)對(duì)腳本間虛擬用戶的總數(shù)進(jìn)行分配。如果你正常安裝LoadRunner的話Percentage Mode這個(gè)默認(rèn)是被勾選的。如果它被勾選了,你要把它取消勾選。

    Goal-Oriented Scenario:為了驗(yàn)證你的系統(tǒng)是否可以達(dá)到一個(gè)特殊的目標(biāo)。例如,你可以基于一個(gè)事務(wù)的響應(yīng)時(shí)間或一秒鐘執(zhí)行的事務(wù)數(shù)來(lái)驗(yàn)證,那么LoadRunner會(huì)為你基于這些目標(biāo)自動(dòng)的創(chuàng)建一個(gè)場(chǎng)景。

  • 添加一個(gè)Vuser腳本到負(fù)載測(cè)試中:

    在本次教程中,你只會(huì)使用一個(gè)腳本,讓所有的用戶都模擬相同的操作。想要多方面多角度的模仿真實(shí)世界中的用戶操作,你可以創(chuàng)建不同的虛擬用戶群,每一個(gè)群都用不同的腳本和不同的用戶設(shè)置。

    你之前在VuGen中錄制的腳本包含了你想要測(cè)試的業(yè)務(wù)流程,包括登陸,搜索飛機(jī)票,買(mǎi)飛機(jī)票,檢查飛機(jī)票,以及退出網(wǎng)站。你將要把類似的腳本添加到場(chǎng)景中,并配置場(chǎng)景,以實(shí)現(xiàn)8個(gè)不同的用戶同時(shí)在這個(gè)飛機(jī)票預(yù)訂系統(tǒng)上進(jìn)行并發(fā)操作。在本次的測(cè)試中,你還需要額外添加兩名虛擬用戶。

    為了實(shí)現(xiàn)這個(gè)目的,你需要提供一個(gè)和你之前創(chuàng)建的那個(gè)腳本類似的腳本。在這里我們建議你使用給出的樣本腳本。

  • 如果basic_script已經(jīng)在Available Scripts欄中(我們之前創(chuàng)建的那個(gè)叫basic_tutorial,這里教程說(shuō)的有些偏差,大家理解意思就可以,實(shí)際操作可以隨便一點(diǎn),不用一板一眼的照書(shū)來(lái)),點(diǎn)擊add按鈕將腳本添加到Scripts in Scenario欄中。

  • 如果這個(gè)basic_script沒(méi)有在左側(cè)的Available Scripts中列出,點(diǎn)擊Browse按鈕找到它并把它加到Scripts in Scenario欄中來(lái)。
  • 點(diǎn)擊OK,LoadRunner Controller打開(kāi)了并顯示你所創(chuàng)建的新場(chǎng)景的Design欄。
  • 初識(shí)Controller

    Controller的Design欄是你設(shè)計(jì)你的負(fù)載測(cè)試的主要接口。Design欄又分為三欄:

  • Scenario Groups欄:你在該欄中配置虛擬用戶組。你創(chuàng)建不同的用戶組來(lái)模擬系統(tǒng)的用戶種類并指定操作該應(yīng)用系統(tǒng)的虛擬用戶數(shù)量以及這些虛擬用戶所用的機(jī)器種類。
  • Service Level Agreement欄:當(dāng)你設(shè)計(jì)一個(gè)負(fù)載測(cè)試場(chǎng)景時(shí),你可以為性能的度量定義goals或SLAs(Service Level Agreements)。當(dāng)你運(yùn)行場(chǎng)景時(shí),LoadRunner收集并存儲(chǔ)性能相關(guān)的數(shù)據(jù),Analysis將收集的數(shù)據(jù)和SLAs做對(duì)比好對(duì)定義好的度量確定SLA的狀態(tài)。
  • Scenario Schedule欄:在Scenario Schedule欄,你設(shè)定負(fù)載行為以精確模仿真實(shí)世界中的用戶行為。你通過(guò)虛擬用戶將要運(yùn)行的應(yīng)用,該應(yīng)用相應(yīng)部分的負(fù)載比率,負(fù)載測(cè)試的持續(xù)時(shí)間,以及負(fù)載是如何結(jié)束的來(lái)定義用戶的操作。
  • 我怎樣修改腳本中的細(xì)節(jié)?

    按照以下的方法來(lái)修改腳本中的細(xì)節(jié):

  • 在Scenario Groups欄中檢查一下Group Name列下的Script名為:basic_tutorial

  • 改變Group的名字:
  • 在Scenario Groups欄中選擇basic_tutorial并點(diǎn)擊Details按鈕,于是Group Information對(duì)話框打開(kāi)了:
  • 將Name改為一個(gè)更有意義的名字,比如:travel_agent;
  • 點(diǎn)擊OK,新名字將顯示在Design欄的Scenario Groups欄下。
  • 我怎樣對(duì)系統(tǒng)產(chǎn)生一個(gè)負(fù)載?

    在你添加你的虛擬用戶腳本到你的場(chǎng)景后,你將要配置負(fù)載發(fā)生器(load generator),也就是你對(duì)目標(biāo)系統(tǒng)產(chǎn)生負(fù)載的計(jì)算機(jī)。

    定義:一個(gè)負(fù)載發(fā)生器意味著一臺(tái)能夠運(yùn)行多個(gè)虛擬用戶并對(duì)系統(tǒng)產(chǎn)生負(fù)載的計(jì)算機(jī)。你可以用許多負(fù)載發(fā)生器,每個(gè)發(fā)生器主持著多個(gè)虛擬用戶。

    在這一部分,你將學(xué)習(xí)關(guān)于向場(chǎng)景中添加負(fù)載發(fā)生器,測(cè)試負(fù)載發(fā)生器的連接。

    添加負(fù)載發(fā)生器:

    在Controller工具欄中點(diǎn)擊Load Generator按鈕。負(fù)載發(fā)生器對(duì)話框打開(kāi)了:

    Load Generator對(duì)話框允許你查看與配置你場(chǎng)景中定義的負(fù)載發(fā)生器,上圖中顯示了一個(gè)叫l(wèi)ocalhost的負(fù)載發(fā)生器的詳細(xì)信息。localhost這個(gè)負(fù)載發(fā)生器的狀態(tài)為"Down"。這表明Controller沒(méi)有連接到loadhost這個(gè)負(fù)載發(fā)生器。

    在本教程中,你將用你的計(jì)算機(jī)作為復(fù)雜發(fā)生器。

    備注:在一個(gè)典型的操作型系統(tǒng)中,你可能會(huì)有多個(gè)負(fù)載發(fā)生器,每一個(gè)負(fù)載發(fā)生器都擁有多個(gè)虛擬用戶。

    測(cè)試負(fù)載發(fā)生器的連接:

    當(dāng)你運(yùn)行一個(gè)場(chǎng)景時(shí),Controller會(huì)自動(dòng)連接負(fù)載發(fā)生器所在的機(jī)器(load generator machine)。然而,你可以在嘗試運(yùn)行腳本前測(cè)試這些連接。

  • 在Load Generator對(duì)話框,選擇localhost并點(diǎn)擊"Connect":

    Controller嘗試連接負(fù)載發(fā)生器所在機(jī)器。當(dāng)連接已經(jīng)建立,負(fù)載發(fā)生器的狀態(tài)就會(huì)從"Down"變成"Ready";

  • 點(diǎn)擊Close。
  • 我怎樣去模仿真實(shí)的負(fù)載行為呢?

    當(dāng)你已經(jīng)添加了負(fù)載發(fā)生器,你就可以準(zhǔn)備配置負(fù)載行為(load behavior)了。

    典型的用戶基本不可能精確的在同一時(shí)間log on以及l(fā)og off系統(tǒng)。LoadRunner允許用戶逐步的log on以及l(fā)og off系統(tǒng)。它也允許你決定場(chǎng)景的持續(xù)時(shí)間,以及場(chǎng)景結(jié)束的方式。你下面將要進(jìn)行配置的場(chǎng)景將會(huì)相對(duì)簡(jiǎn)單。然而,當(dāng)你要設(shè)計(jì)一個(gè)更加貼近真實(shí)的場(chǎng)景時(shí),你可以定義更多逼真的虛擬用戶行為。

    你在Controller的Scenario Schedule欄中為manual scenario配置負(fù)載行為(load behavior)。Scenario Schedule欄被分成三個(gè)部分:Schedule Definition區(qū)域,Actions格表,以及Interactive Schedule圖表。

    你現(xiàn)在將要更改默認(rèn)的負(fù)載設(shè)置并配置一個(gè)Scenario Schedule(場(chǎng)景時(shí)間安排計(jì)劃):

  • 選擇schedule類型與run mode:

    在Schedule Scenario欄中,確定你選擇了Schedule By:Scenario,Run Mode:Real-world schedule。

  • 設(shè)定Scheduled Actions定義:

    你可以在Global Schedule格表中或通過(guò)操作Interactive Graph圖表來(lái)對(duì)Scenario Schedules設(shè)置Start Vusers,Duration,以及Stop Vusers actions。當(dāng)你在圖表中進(jìn)行定義時(shí),對(duì)應(yīng)在格表中的屬性也會(huì)有相應(yīng)的變化與調(diào)整。

    現(xiàn)在你要進(jìn)行設(shè)置,來(lái)讓Global Schedule的格表像下面一樣顯示:

  • 建立虛擬用戶初始化:
  • 初始化意味著通過(guò)運(yùn)行腳本中的"vuser_init "action來(lái)為一個(gè)負(fù)載測(cè)試準(zhǔn)備虛擬用戶(Vusers)和負(fù)載發(fā)生器(load generators)。依于你系統(tǒng)的配置,在運(yùn)行前初始化Vusers會(huì)帶來(lái)更加真實(shí)的結(jié)果。

  • 雙擊Global Schedule格表中的Initialize(上圖中Action下的第一行)。Edit Action對(duì)話框彈出并顯示Initialize action;
  • 選擇Initialize all Vusers simultaneously;
  • 點(diǎn)擊OK。
  • 為Vusers指定一個(gè)陸續(xù)開(kāi)始的時(shí)間(gradual start):

    也就是說(shuō)每隔幾分鐘增加幾個(gè)Vuser對(duì)系統(tǒng)產(chǎn)生負(fù)載是在這里設(shè)置的。

  • 在Global Schedule格表中雙擊Start Vusers,Edit Action對(duì)話框彈出并顯示Start Vusers;

  • 如上圖中進(jìn)行設(shè)置,Start 8 Vusers,2 Vusers every 30 seconds;
  • 點(diǎn)擊OK。
  • 計(jì)劃持續(xù)時(shí)間:

    你需要確定一個(gè)持續(xù)時(shí)間以確保虛擬用戶能夠在指定的時(shí)間段內(nèi)持續(xù)執(zhí)行Schedule action,持續(xù)產(chǎn)生負(fù)載。如果你設(shè)定一個(gè)時(shí)間段(Duration),腳本會(huì)在該時(shí)間段內(nèi)盡可能多的重復(fù)運(yùn)行來(lái)滿足需求而忽略掉你在腳本runtime settings中設(shè)置的重復(fù)次數(shù)。

  • 確保Interactive Schedule Graph是Edit模式(通過(guò)點(diǎn)擊Interactive Schedule Graph工具欄中的Edit Mode按鈕)。
  • 在Interactive Schedule Graph中點(diǎn)擊代表Duration的水平線。線被高亮顯示,如下圖:

  • ????????備注:說(shuō)明會(huì)顯示在結(jié)束點(diǎn)的上面,點(diǎn)擊Interactive Schedule Graph工具欄中的隱藏說(shuō)明按鈕來(lái)控制它的顯示。

  • 向右拖拽鉆石形狀的結(jié)束點(diǎn),到11:30的位置,這樣你就設(shè)置好了讓虛擬用戶運(yùn)行10分鐘腳本。

  • 設(shè)置一個(gè)逐步的關(guān)閉:

    當(dāng)應(yīng)用運(yùn)行到一個(gè)臨界值的時(shí)候,逐步關(guān)閉虛擬用戶有助,檢查內(nèi)存泄露以及系統(tǒng)恢復(fù)。

  • 在Global Schedule格表中雙擊Stop Vusers。Edit Action對(duì)話框被打開(kāi):
  • 如上圖所示,選擇All-2 Users every 30 seconds;
  • 點(diǎn)擊"OK"。
  • ?

    配置好的Global Schedule如下:

    我應(yīng)該怎樣模擬不同種類的用戶呢?

    現(xiàn)在你已經(jīng)配置了一個(gè)負(fù)載計(jì)劃表,你需要進(jìn)一步指定用戶在測(cè)試的時(shí)候是如何"行為"的。

    當(dāng)你去模擬一個(gè)真實(shí)用戶的時(shí)候,你需要考慮用戶的實(shí)際"行為"。這里的"行為"指的是:一個(gè)用戶兩個(gè)操作步驟之間所需要的停頓時(shí)間,對(duì)于一個(gè)步驟用戶所重復(fù)的次數(shù),等等。

    在這一部分,你會(huì)學(xué)到更多關(guān)于LoadRunner的runtime settings,并且你會(huì)使用到Think Time和Logging。

  • 打開(kāi)runtime settings:
  • 在Controller中點(diǎn)擊Design欄;
  • 在Scenario Groups欄中選擇travel_agents組;
  • 點(diǎn)擊Runtime Settings按鈕,runtime settings對(duì)話框?qū)⒈淮蜷_(kāi):

    Runtime settings允許你模擬不同種類的用戶活動(dòng)與行為。它們包括:

    Run Logic,一個(gè)虛擬用戶重復(fù)一組操作的次數(shù)。

    Pacing,重復(fù)操作前需要等待的時(shí)間。

    Log,在測(cè)試過(guò)程中你想要收集的信息等級(jí)。你第一次運(yùn)行場(chǎng)景時(shí)是推薦你生成log信息的,以防你第一次運(yùn)行時(shí)會(huì)失敗,log會(huì)提供你有關(guān)的調(diào)試信息。

    Think Time,用戶步與步操作之間的停頓時(shí)間。由于新老用戶對(duì)系統(tǒng)的熟悉度不同,步與步之間的停頓時(shí)間也不同,老用戶肯定比新用戶嫻熟的多。虛擬用戶通過(guò)think time可以更加真實(shí)的模仿真實(shí)用戶步與步之間的停頓。

    Speed Simulation,用戶通過(guò)不同的網(wǎng)絡(luò)連接,包括modem,DSL以及cable。

    Browser Emulation,用戶通過(guò)不同的瀏覽器來(lái)查看應(yīng)用的性能。

    Content Check,能夠自動(dòng)的檢查用戶定義的錯(cuò)誤。

    假設(shè)你的應(yīng)用在出錯(cuò)時(shí)會(huì)發(fā)送一個(gè)自定義的頁(yè)面,這個(gè)自定義頁(yè)面包含ASP Error這個(gè)字樣,你需要查找服務(wù)器所返回的所有頁(yè)面來(lái)檢查這些字樣是否包含在內(nèi)。

    你可以讓LoadRunner通過(guò)runtime settings中的Content Check在測(cè)試過(guò)程中自動(dòng)的完成這個(gè)檢查的過(guò)程,LoadRunner會(huì)自動(dòng)的檢查你設(shè)定的字樣,如果發(fā)現(xiàn)則會(huì)產(chǎn)生一個(gè)錯(cuò)誤信息。在場(chǎng)景運(yùn)行時(shí),你可以確認(rèn)這些內(nèi)容檢查方面的錯(cuò)誤。

  • 使用Think Time:
  • 在Runtime Settings對(duì)話框,點(diǎn)擊General>Think Time;
  • 選擇Replay think time,并選擇Use random percentage of recorded think;
  • Min選50%,Max選150%;以上的設(shè)定將會(huì)對(duì)錄制的think time使用一個(gè)隨機(jī)的百分比。例如,如果選擇一個(gè)航班時(shí)錄制的think time為4s,那么隨機(jī)的think time將會(huì)在2-6s內(nèi)(4的50%或150%)生成。(筆者認(rèn)為:這很好的模擬了新老用戶由于對(duì)應(yīng)用的熟悉程度不同而導(dǎo)致了think time不同這一特點(diǎn))
  • 使用Logging:
  • 在Runtime Settings對(duì)話框中,點(diǎn)擊General>Log;
  • 選擇Enable Logging;
  • 在Log options下,選擇Always send messages;
  • 點(diǎn)擊Extended log,選擇Data returned by server;備注:在初始的調(diào)試運(yùn)行階段之后,不建議對(duì)負(fù)載測(cè)試開(kāi)啟Extend Log模式。本教程中使用它的目的僅在于想要輸出Vuser的log。
  • 點(diǎn)擊OK關(guān)閉Runtime Settings對(duì)話框;
  • 保存場(chǎng)景。
  • 在負(fù)載的情況下我要怎樣監(jiān)控系統(tǒng)?

    現(xiàn)在你已經(jīng)定義了你的虛擬用戶在測(cè)試中的行為,已經(jīng)為建立監(jiān)控器做好準(zhǔn)備。

    當(dāng)你對(duì)一個(gè)應(yīng)用產(chǎn)生負(fù)載時(shí),你想要實(shí)時(shí)的查看這個(gè)應(yīng)用的性能以及潛在的瓶頸所存在的地方。你將在負(fù)載測(cè)試的過(guò)程中使用LoadRunner的monitor來(lái)監(jiān)控每一層次結(jié)構(gòu)的性能,包括服務(wù)器,系統(tǒng)的組件。LoadRunner提供了許多主要的后臺(tái)系統(tǒng)組件(包括Web,Application,Database,以及ERP/CRM服務(wù)器)的監(jiān)控器。

    例如,你可以根據(jù)正在運(yùn)行的Web Server的類別選擇一個(gè)Web Server Resources監(jiān)控器。你可以為相關(guān)的監(jiān)控器買(mǎi)一個(gè)證書(shū),比如IIS,并用這個(gè)監(jiān)控器來(lái)找出反映在IIS resources中的問(wèn)題。

    在這一章節(jié),你將學(xué)會(huì)怎樣添加以及配置Windows Resources監(jiān)控器(monitor)。你可以用監(jiān)控器來(lái)確定負(fù)載對(duì)你CPU(處理器),disk(硬盤(pán))以及memory resources(內(nèi)存資源)的影響。

  • 選擇Windows Resources Monitor:
  • 在Controller的左下角點(diǎn)擊Run欄:

    Windows Resources圖標(biāo)是顯示在圖表視圖區(qū)域四個(gè)默認(rèn)圖表中的一個(gè)。你將在下一節(jié)課中學(xué)會(huì)如何打開(kāi)其他的圖表。

  • 右鍵點(diǎn)擊Windows Resources圖表并選擇Add Measurements。Windows Resources對(duì)話框打開(kāi)了:

  • 選擇要監(jiān)控的server:
  • 在Windows Resources 對(duì)話框中的Monitored Server Machines區(qū)域,點(diǎn)擊Add。Add Machine對(duì)話框打開(kāi)了:

  • 在Name欄中填寫(xiě)localhost(如果你的負(fù)載發(fā)生器在其他的機(jī)器上,你可以填寫(xiě)那臺(tái)機(jī)器的server名或IP地址);
  • 在Platform列表中,選擇負(fù)載發(fā)生器所在機(jī)器的操作平臺(tái);
  • 點(diǎn)擊"OK"。

    默認(rèn)的Windows Resources measurements會(huì)在Resource Measurements on <server machine>列表中列舉出來(lái)。

  • 激活監(jiān)控器(monitor):

    在Windows Resources對(duì)話框中點(diǎn)擊"OK"關(guān)閉對(duì)話框,monitor就被激活了。

  • 第六課:運(yùn)行負(fù)載測(cè)試

    當(dāng)你運(yùn)行負(fù)載測(cè)試時(shí),LoadRunner會(huì)對(duì)系統(tǒng)產(chǎn)生負(fù)載。你可以隨后用LoadRunner的監(jiān)控器和圖標(biāo)來(lái)觀察負(fù)載的情況下系統(tǒng)的性能。

    初始Controller Run視圖

    Controller的Run欄是場(chǎng)景的管理和監(jiān)控中心。它包含五個(gè)欄:

  • Scenario Group欄:左上角的欄,你可以觀察組中虛擬用戶的狀態(tài),你可以通過(guò)右邊的按鈕開(kāi)始、停止、重置場(chǎng)景。去查看獨(dú)立的虛擬用戶狀態(tài),在場(chǎng)景中通過(guò)手動(dòng)添加更多虛擬用戶來(lái)對(duì)應(yīng)用增加負(fù)載;
  • Scenario Status欄:右上角的欄,你可以在此查看負(fù)載測(cè)試的一個(gè)總結(jié),包括運(yùn)行的虛擬用戶的數(shù)量,以及每一個(gè)虛擬用戶操作的狀態(tài);
  • Available Graphs欄:在中間左側(cè)的欄,你可以看到一列LoadRunner的圖表。為了打開(kāi)一個(gè)圖表,選擇一個(gè)樹(shù)中的圖表,把它拖拽到Graph Viewing區(qū)域;
  • Graph Display欄:在中間右側(cè)的欄,你可以自定義顯示一個(gè)到八個(gè)圖表(View>View Graphs);
  • Graph Legend欄:在底部的欄,你可以查看你所選擇的圖表中的數(shù)據(jù)。備注:Run欄在Controller的底部。

    我怎樣運(yùn)行一個(gè)負(fù)載測(cè)試場(chǎng)景?

    在這一部分,你將打開(kāi)場(chǎng)景:

  • 打開(kāi)Controller Run視圖:

    點(diǎn)擊Controller底部的Run欄。

    注意到Scenario Groups欄中的Down列下有8個(gè)虛擬用戶,這些虛擬用戶是你創(chuàng)建場(chǎng)景(Scenario)時(shí)所創(chuàng)建的。

    由于場(chǎng)景還沒(méi)有運(yùn)行,所有其他的計(jì)數(shù)器都保持在0,圖表視圖區(qū)域的所有圖表都是空的,當(dāng)你在下一步運(yùn)行場(chǎng)景時(shí),圖表和計(jì)數(shù)器將會(huì)開(kāi)始顯示信息。

  • 開(kāi)始場(chǎng)景:

    點(diǎn)擊Start Scenario按鈕或選擇Scenario>Start來(lái)開(kāi)始運(yùn)行場(chǎng)景。

    如果你是按教程第一次運(yùn)行的話,Controller會(huì)開(kāi)始場(chǎng)景并將結(jié)果文件自動(dòng)保存到負(fù)載發(fā)生器的temp文件夾下。

    如果你是在重復(fù)做測(cè)試,你會(huì)被建議去覆蓋已有的結(jié)果文件。

    點(diǎn)擊No,因?yàn)榈谝淮呜?fù)載測(cè)試的結(jié)果要用來(lái)和之后的測(cè)試結(jié)果進(jìn)行比對(duì)。之后設(shè)置結(jié)果保存目錄的對(duì)話框被打開(kāi):

    確定一個(gè)新的保存結(jié)果的文件夾路徑,為每一次的測(cè)試結(jié)果起一個(gè)有意義的獨(dú)特的名字,因?yàn)榉治鰣D表時(shí)你可能會(huì)需要把多次場(chǎng)景的運(yùn)行結(jié)果疊加。

  • 在負(fù)載情況下該如何管理應(yīng)用程序呢?

    你會(huì)使用Controller的在線圖表來(lái)觀察監(jiān)控器(monitors)所收集的性能數(shù)據(jù)。你通過(guò)這些信息來(lái)讓你的系統(tǒng)遠(yuǎn)離潛在的危機(jī)。

  • 檢查性能圖表:

    Run欄下的Graph Display欄中顯示了如下的默認(rèn)圖表:

  • Running Vusers(運(yùn)行著的虛擬用戶)-Whole Scenario graph(全景表):顯示在指定時(shí)間運(yùn)行著的虛擬用戶數(shù)量;
  • Transaction Response Time(事無(wú)響應(yīng)時(shí)間)-Whole Scenario graph(全景表):顯示了每一個(gè)事務(wù)完成所花費(fèi)的時(shí)間;
  • Hits per second(每秒點(diǎn)擊數(shù))-Whole Scenario graph(全景表):顯示場(chǎng)景運(yùn)行時(shí)每秒對(duì)web服務(wù)器的點(diǎn)擊數(shù)(HTTP請(qǐng)求數(shù));
  • Windows Resources graph(Windows資源表):顯示在場(chǎng)景運(yùn)行時(shí)系統(tǒng)資源的使用情況。
  • 高亮個(gè)性化定制:
  • 雙擊Windows Resoures表,它將放大到占據(jù)整個(gè)圖表顯示欄。注意到每個(gè)measurement都是用不同的顏色來(lái)表示,每一行都以相同的顏色對(duì)應(yīng)圖中的一條線;
  • 選擇哪一行,哪一行在圖表中就會(huì)被高亮顯示;
  • 再雙擊圖表,讓其縮小到原始尺寸。
  • 查看Throughput(吞吐量)信息:

    在Available Graphs欄中,Web Resources Graphs下,選擇Throughput表并把它拖拽到Graph Display欄中。Throughput表的measurements顯示在Graph Display欄和Graph Legend欄中。

    Throughput(吞吐量)表顯示虛擬用戶從服務(wù)器接收 的數(shù)據(jù)在任意指定的某一秒中的總量(以bytes衡量)。你可以將此圖與Transaction Response Time(事務(wù)響應(yīng)時(shí)間)圖表進(jìn)行比較以檢查T(mén)hroughput(吞吐量)是如何影響Transaction(事務(wù))的性能的。

    當(dāng)吞吐量的規(guī)模隨著時(shí)間的進(jìn)行與虛擬用戶數(shù)的增加而變大時(shí),這表明帶寬是足夠用的。當(dāng)圖表隨著虛擬用戶數(shù)量增加而趨于相對(duì)平緩時(shí),我們有理由去猜測(cè)與推斷帶寬限制了數(shù)據(jù)傳輸量。

  • 要怎樣才能實(shí)時(shí)的觀察一個(gè)虛擬用戶的運(yùn)行?

    當(dāng)我們模擬用戶的時(shí)候,你可以實(shí)時(shí)的查看虛擬用戶的操作以確定他們執(zhí)行的操作是正確的。Controller通過(guò)Runtime Viewer讓你能夠?qū)崟r(shí)的查看虛擬用戶的操作。

    形象的觀察一個(gè)虛擬用戶的操作:

  • 在Controller的Run欄中,點(diǎn)擊Vusers按鈕。Vusers對(duì)話框打開(kāi):

    Status列顯示了每個(gè)虛擬用戶的狀態(tài)。在上面的例子中,你可以看到四個(gè)虛擬用戶在運(yùn)行,四個(gè)已經(jīng)處于down掉狀態(tài)。Scheduler中的Start Vusers操作讓Controller一次釋放兩個(gè)虛擬用戶。隨著場(chǎng)景的進(jìn)行,虛擬用戶將會(huì)2個(gè)2個(gè)的以30秒為周期被添加到組中。

  • 在虛擬用戶列表中選擇一個(gè)虛擬用戶;
  • 點(diǎn)擊Vusers工具欄上的Show the selected Vusers按鈕。Runtime Viewer被打開(kāi)并顯示選擇的虛擬用戶所執(zhí)行的操作。Runtime Viewer將會(huì)隨著虛擬用戶在腳本中步驟的進(jìn)行而更新。
  • 點(diǎn)擊Hide the selected Vusers按鈕,關(guān)閉Runtime Viewer。
  • 我在哪里可以看到一個(gè)關(guān)于虛擬用戶操作(Vuser actions)的總結(jié)?

    想要單獨(dú)看一個(gè)虛擬用戶在運(yùn)行測(cè)試的過(guò)程中的進(jìn)展,你可以顯示一個(gè)包含虛擬用戶操作文字總結(jié)的log文件。

    查看虛擬用戶操作的文字性總結(jié):

  • 在Vusers窗口選擇一個(gè)running狀態(tài)的Vuser;
  • 點(diǎn)擊Vusers工具欄中的Show Vuser Log按鈕。Vuser log對(duì)話框被打開(kāi):

    log中包含了與用戶操作相對(duì)應(yīng)的信息。比如,在上面的窗口中,Virtual User Script started表明虛擬用戶運(yùn)行的開(kāi)始時(shí)間。滑到底部你會(huì)觀察到隨著虛擬用戶操作的進(jìn)行,相應(yīng)的新信息也會(huì)被添加進(jìn)來(lái)。

  • 關(guān)閉Vuser Log對(duì)話框,以及Vusers對(duì)話框。
  • 怎樣在測(cè)試中增加負(fù)載?

    為了給系統(tǒng)增加負(fù)載,你可以在測(cè)試的過(guò)程中手動(dòng)的添加更多的虛擬用戶。

  • 為了在負(fù)載測(cè)試時(shí)增加負(fù)載:
  • 確定當(dāng)前是在Controller的Run欄;
  • 點(diǎn)擊Run/Stop Vusers按鈕,Run/Stop Vusers對(duì)話框被打開(kāi)并顯示了當(dāng)前場(chǎng)景中運(yùn)行的虛擬用戶數(shù);
  • 在#列輸入你想要向組中添加的虛擬用戶數(shù),想要再添加兩個(gè)虛擬用戶,則在#列把數(shù)字8改為2;
  • 點(diǎn)擊Run按鈕來(lái)添加虛擬用戶;
  • 選擇Run New子按鈕選項(xiàng)。

    兩個(gè)額外的虛擬用戶被添加到travel_agent組中并且在localhost負(fù)載發(fā)生器上運(yùn)行。場(chǎng)景狀態(tài)欄將顯示現(xiàn)在有10個(gè)虛擬用戶正在運(yùn)行。

    你可能會(huì)收到LoadRunner Controller無(wú)法激活額外的虛擬用戶的消息。這是因?yàn)槟憧赡茉谟媚愕谋緳C(jī)來(lái)當(dāng)作負(fù)載發(fā)生器而且它只有很有限的內(nèi)存資源。通常來(lái)說(shuō),用一個(gè)專業(yè)的機(jī)器作為負(fù)載發(fā)生器就可以避免這種情況的發(fā)生。

  • 應(yīng)用在負(fù)載的情況下是怎樣執(zhí)行的?

    在你的Scenario Status欄【Run欄中】中,你可以仔細(xì)的看到有哪些虛擬用戶引起了應(yīng)用的問(wèn)題,事務(wù)失敗數(shù)以及錯(cuò)誤數(shù)偏高表明了你的應(yīng)用在負(fù)載下可能執(zhí)行的并不好。

  • 檢查場(chǎng)景的狀態(tài):

    Scenario Status欄的頭部顯示了場(chǎng)景的整體狀態(tài):

  • 查看虛擬用戶操作的分解:
  • 點(diǎn)擊Scenario Status欄中的Passed Transactions,Transactions對(duì)話框被打開(kāi)并列出了事務(wù)的詳細(xì);

  • 點(diǎn)擊Close關(guān)閉Transactions對(duì)話框。
  • 你的應(yīng)用遭遇錯(cuò)誤了嗎?

    在重負(fù)的情況下,應(yīng)用開(kāi)始出現(xiàn)失敗的情況,你可能會(huì)遇到錯(cuò)誤和事務(wù)的失敗。你的Controller會(huì)在Output窗口中顯示錯(cuò)誤信息。

  • 檢查error或warnings消息:
  • 選擇View>Show Output,你可以按照種類對(duì)信息進(jìn)行排序,例如warnings或errors;

    Output對(duì)話框被打開(kāi)并顯示了消息信息文字,包括產(chǎn)生的所有消息數(shù),虛擬用戶和負(fù)載發(fā)生器產(chǎn)生的錯(cuò)誤,以及發(fā)生錯(cuò)誤的腳本。

  • 要查看一條消息的詳細(xì)內(nèi)容,選擇消息并點(diǎn)擊"Details",Detailed Message Text框出現(xiàn),顯示了消息詳細(xì)完整的內(nèi)容文本。
  • 查看log信息的詳細(xì)內(nèi)容:

    你可以通過(guò)點(diǎn)擊相應(yīng)列的藍(lán)色鏈接查看關(guān)于每條消息、虛擬用戶、腳本以及關(guān)聯(lián)的負(fù)載發(fā)生器的錯(cuò)誤信息。

    例如:想要知道腳本中哪里出了錯(cuò),查看點(diǎn)擊進(jìn)入Total Message列。Output窗口將顯示你選擇的錯(cuò)誤代碼的所有相關(guān)信息,包括時(shí)間,重復(fù)次數(shù),以及腳本中出錯(cuò)的位置行。

  • 進(jìn)入查看Line Number列:

    點(diǎn)擊Line Number列下的鏈接,VuGen將被打開(kāi),顯示了腳本中出錯(cuò)的行。你可以通過(guò)這一信息來(lái)幫你確認(rèn)哪些響應(yīng)時(shí)間較慢的事務(wù)導(dǎo)致了應(yīng)用在負(fù)載下的失敗。

  • 我怎樣得知場(chǎng)景是否已經(jīng)運(yùn)行結(jié)束?

    在場(chǎng)景運(yùn)行的總結(jié)處,Scenario Status欄的頭部顯示了Down這一狀態(tài)。這說(shuō)明場(chǎng)景中所有的虛擬用戶都已經(jīng)運(yùn)行結(jié)束。

    你可以打開(kāi)Vsuers對(duì)話框來(lái)分別查看每個(gè)虛擬用戶的狀態(tài)。虛擬用戶對(duì)話框顯示了每個(gè)虛擬用戶執(zhí)行的重復(fù)次數(shù),成功的重復(fù)次數(shù)以及經(jīng)歷的時(shí)間(Elapsed Time)。

    你的系統(tǒng)是否在負(fù)載下運(yùn)行良好?

    想要知道你的系統(tǒng)是否在負(fù)載下依舊運(yùn)行良好,你要去查看事務(wù)的響應(yīng)時(shí)間并決定響應(yīng)時(shí)間是否在可接受的范圍內(nèi)。如果事務(wù)的響應(yīng)時(shí)間在場(chǎng)景中增加,你需要去查找瓶頸出在哪里。你會(huì)在最后一課中學(xué)習(xí)更多關(guān)于這方面的知識(shí)。

    一旦一個(gè)問(wèn)題被發(fā)現(xiàn),就可能需要包括開(kāi)發(fā),DBAs(數(shù)據(jù)庫(kù)管理員),網(wǎng)絡(luò)以及其他方面的系統(tǒng)專家來(lái)修復(fù)這個(gè)問(wèn)題。在做出適當(dāng)調(diào)整后,我們需要重新進(jìn)行負(fù)載測(cè)試來(lái)驗(yàn)證該次做出的調(diào)整是否滿足了所需的要求。你重復(fù)這一循環(huán)來(lái)使得系統(tǒng)的性能不斷得到優(yōu)化。

    為了便于你再次運(yùn)行具有相同配置的場(chǎng)景,選擇File>Save或點(diǎn)擊Controller工具欄中的Save按鈕進(jìn)行保存。

    第七課:分析你的場(chǎng)景

    在之前的課程中你學(xué)會(huì)了如何設(shè)計(jì),控制,運(yùn)行一個(gè)場(chǎng)景。你運(yùn)行負(fù)載測(cè)試,就一定希望能夠分析運(yùn)行的結(jié)果,以找出需要排查的問(wèn)題來(lái)提高你的系統(tǒng)性能。在你的分析的過(guò)程中所生成的圖表和報(bào)告代表了你場(chǎng)景性能的重要信息。通過(guò)這些圖表和報(bào)告,你可以找到你應(yīng)用程序中存在的瓶頸,以確定需要做怎樣的修整才能提高它的性能。

    Analysis Session是怎么工作的?

    Analysis session(分析會(huì)話)的目的是為了發(fā)現(xiàn)你系統(tǒng)性能上存在的缺陷并找到其根源,例如:

    • 測(cè)試的預(yù)期達(dá)到了嗎?在負(fù)載的情況下客戶終端的事務(wù)時(shí)間是多少?SLA滿足目標(biāo)嗎?事務(wù)的平均事務(wù)時(shí)間是多少?
    • 系統(tǒng)的哪些部分會(huì)導(dǎo)致降低系統(tǒng)的性能?網(wǎng)絡(luò)和服務(wù)器的響應(yīng)時(shí)間是多少?
    • 你可以通過(guò)聯(lián)系事務(wù)響應(yīng)時(shí)間和后臺(tái)監(jiān)控模型來(lái)找到一個(gè)可能的原因嗎?

    在后續(xù)的章節(jié)中你將會(huì)學(xué)習(xí)如何打開(kāi)LoadRunner Analysis,并建立與查看能夠幫你找到性能問(wèn)題與根源之所在的圖表和報(bào)告。

    我怎樣開(kāi)始我的分析會(huì)話?

  • 打開(kāi)HP LoadRunner Analysis:

    雙擊桌面上的Analysis圖標(biāo),LoadRunner Analysis被打開(kāi);

  • 打開(kāi)分析會(huì)話文件:

    為了達(dá)到本節(jié)課的目的,能夠舉例分析說(shuō)明盡可能多樣的結(jié)果,我們將會(huì)運(yùn)行一個(gè)和你在之前的章節(jié)中運(yùn)行的場(chǎng)景相似的場(chǎng)景。但是這一次,你的場(chǎng)景中將包含70個(gè)虛擬用戶,而不再是10個(gè)。你現(xiàn)在將要打開(kāi)針對(duì)于你的測(cè)試結(jié)果所創(chuàng)建的分析會(huì)話。

  • 在Analysis窗口選擇File>Open,Open Analysis Session對(duì)話框被打開(kāi):
  • 在你的<LoadRunner Installation>\tutorial文件夾下選擇analysis_session文件并打開(kāi),Analysis打開(kāi)了你選擇的會(huì)話文件。
  • 初始Analysis窗口

    Analysis包括以下主要欄:

  • Session Explorer(會(huì)話瀏覽器)
  • Properties pane(屬性欄)
  • Graph Viewing pane(圖表查看欄)
  • Legend pane(說(shuō)明欄)

  • Session Explorer:左上角的欄,Analysis顯示了可以查看的圖表和報(bào)告。從這里你可以增加一些新的圖表或報(bào)告也可以刪除一些不想看的圖表或報(bào)告。
  • Properties欄:左下角的欄,Properties欄顯示了你在Session Explorer中選擇的圖表或報(bào)告的詳細(xì)信息,黑色字體部分的是可以進(jìn)行編輯的。
  • Graph Viewing欄:右上角的欄,Analysis顯示圖表的地方。默認(rèn)情況下,Summary Report(總結(jié)報(bào)告)當(dāng)你打開(kāi)一個(gè)會(huì)話的時(shí)候會(huì)顯示在這里。
  • Legend欄:右下角的欄,你可以在這里查看所選擇的圖表的數(shù)據(jù)。
  • 備注:還有一些可以從工具欄中訪問(wèn)的欄,這些欄可以進(jìn)行拖拽并在屏幕上任意地方進(jìn)行拖放。

    我達(dá)到了我的目標(biāo)嗎?(Service Level Agreement)

    在這一部分,我們將介紹一下Service Level Agreement,即我們所說(shuō)的SLA。

    SLAs是你為你的負(fù)載測(cè)試場(chǎng)景所定義的特殊目標(biāo)。Analysis將這些目標(biāo)和LoadRunner運(yùn)行時(shí)收集與存儲(chǔ)的性能相關(guān)的數(shù)據(jù)相比較,然后為目標(biāo)判斷SLA的狀態(tài)(通過(guò)或失敗)。

    例如,你可以為你腳本中事務(wù)的平均事務(wù)時(shí)間定義一個(gè)具體的目標(biāo),或臨界值。在測(cè)試運(yùn)行結(jié)束后,LoadRunner將你的目標(biāo)和實(shí)際錄制的平均事務(wù)時(shí)間相對(duì)比。Analysis將顯示你定義的每個(gè)SLA的狀態(tài),通過(guò)或失敗。例如,如果實(shí)際的平均事務(wù)時(shí)間沒(méi)有超過(guò)你定義的臨界值,SLA的狀態(tài)就將是通過(guò)的。

    作為你目標(biāo)定義的一部分,你可以讓SLA將負(fù)載的標(biāo)準(zhǔn)也考慮在內(nèi),換句話說(shuō)也就是可接受的臨界值將會(huì)隨著負(fù)載的等級(jí)不同而變化,例如,Running Vusers,Throughput等等。當(dāng)負(fù)載增加,你可以允許一個(gè)更高的臨界值。

    根據(jù)你所定義的目標(biāo),LoadRunner通過(guò)以下幾種方法中的一種確定了SLA的狀態(tài):

    按照時(shí)間軸上的時(shí)間來(lái)定義SLA的狀態(tài):Analysis在運(yùn)行時(shí)按固定的時(shí)間間隔顯示SLA的狀態(tài)(比如:每隔5s)。

    按整個(gè)運(yùn)行過(guò)程來(lái)定義SLA的狀態(tài):Analysis為整個(gè)場(chǎng)景的運(yùn)行顯示一個(gè)單獨(dú)的SLA狀態(tài)。

    SLAs可以在場(chǎng)景在Controller中運(yùn)行前就定義好,也可以之后在Analysis中來(lái)定義。

    在后續(xù)的部分中,你將要用HP Web Tours這個(gè)樣例來(lái)定義一個(gè)SLA。假設(shè)HP Web Tours的管理員任何時(shí)候都想要知道book_flight和search_flight的平均事務(wù)時(shí)間是否超過(guò)了固定的值。為了達(dá)到這個(gè)目的,你可以選擇事務(wù)并設(shè)置臨界值(threshold values)。這些臨界值就是平均事務(wù)時(shí)間在可接受范圍內(nèi)的最大值。

    你也將設(shè)置三個(gè)臨界值來(lái)將具體的負(fù)載標(biāo)準(zhǔn)考慮在內(nèi),在這個(gè)例子中我們指的就是Running Vusers(運(yùn)行著的虛擬用戶)。換句話說(shuō),隨著運(yùn)行的虛擬用戶數(shù)的增加,臨界值也隨之升高。

    這是因?yàn)殡m然HP Web Tours的管理員希望平均事務(wù)時(shí)間越低越好,但是我們不得不承認(rèn)這一年中的有些時(shí)候HP Web Tours站點(diǎn)確實(shí)會(huì)承擔(dān)相比于平時(shí)更大的負(fù)載。例如,在旅游高峰季的時(shí)候,會(huì)有更多的旅游客戶去登陸網(wǎng)站來(lái)預(yù)訂飛機(jī)票,檢查航班等等。在這種可以理解的高負(fù)載情況下,一個(gè)稍微長(zhǎng)一點(diǎn)的平均事務(wù)響應(yīng)時(shí)間將是可以接受的。

    你將設(shè)定SLA來(lái)考慮三個(gè)負(fù)載場(chǎng)景,輕負(fù)載,正常負(fù)載和高負(fù)載。每一個(gè)場(chǎng)景都有它的臨界值。

    我怎樣定義一個(gè)SLA?

    你將在場(chǎng)景運(yùn)行后在Analysis中定義一個(gè)SLA。

    備注:推薦在場(chǎng)景運(yùn)行前,在Controller中定義一個(gè)SLA。但是出于本教程的目的,你還沒(méi)有對(duì)之前的章節(jié)中運(yùn)行的場(chǎng)景進(jìn)行分析,你將會(huì)在Analysis中定義SLA。想在Controller中定義一個(gè)SLA,在Design欄的Service Level Agreement模塊中點(diǎn)擊"New"。

    定義一個(gè)SLA:

  • 打開(kāi)SLA Wizard(向?qū)?#xff09;:
  • 在LoadRunner Analysis中,選擇Tools>Configure SLA Rules。Service Level Agreement對(duì)話框被打開(kāi):
  • 點(diǎn)擊"New"打開(kāi)Service Level Agreement向?qū)?#xff1a;

    注意:當(dāng)你第一次打開(kāi)SLA向?qū)?#xff0c;Start頁(yè)會(huì)顯示在你面前。如果你不希望下次運(yùn)行向?qū)У臅r(shí)候再看到這個(gè)頁(yè)面,勾選"Skip this page next time"。

  • 點(diǎn)擊"Next"。
  • 為你的目標(biāo)選擇一個(gè)度量尺度。
  • 在Select a Mearsurement for Your Goal頁(yè)面,選擇Transaction Response Time為Average:
  • 點(diǎn)擊"Next"。
  • 選擇要監(jiān)控的事務(wù)。

    在Select Transactions頁(yè)面,在Available Transactions列表中選擇一個(gè)想要監(jiān)控的事務(wù)。

  • 雙擊check_itinerary事務(wù),將它移到Selected Transactions列表中:

  • 點(diǎn)擊"Next"。
  • 設(shè)置負(fù)載標(biāo)準(zhǔn)。

    在Set Load Criteria頁(yè)面,你要讓SLA考慮到不同的負(fù)載場(chǎng)景。

  • 從Load Criteria下拉列表中選擇Running Vusers;
  • 像下圖中一樣設(shè)置Load Values:

    在上圖中,你設(shè)置了SLA,對(duì)三個(gè)潛在的負(fù)載場(chǎng)景定義了一個(gè)可以接受的平均事務(wù)時(shí)間:

    -Light Load(輕負(fù)載):0到19個(gè)虛擬用戶;

    -Average Load(正常負(fù)載):20到49個(gè)虛擬用戶;

    -Heavy Load(重負(fù)載):多于50個(gè)虛擬用戶;

  • 點(diǎn)擊"Next"。
  • 設(shè)置臨界值。

    在Set Threshold Values頁(yè)面,你為check_itinerary事務(wù)定義了一個(gè)可以接受的平均事務(wù)時(shí)間。

    像下圖中所示來(lái)對(duì)臨界值進(jìn)行設(shè)定:

    在此你僅僅指出了下列平均事務(wù)時(shí)間是可以接受的:

    -Light Load(輕負(fù)載):小于等于5s;

    -Average Load(正常負(fù)載):小于等于10s;

    -Heavy Load(重負(fù)載):小于等于15s。

  • 保存SLA。

    先后點(diǎn)擊"Next"和"Finish",窗口關(guān)閉。

    Analysis將會(huì)把你的SLA設(shè)置應(yīng)用到Summary Report(總結(jié)報(bào)告)中,之后的report將會(huì)被更新,包含所有相關(guān)的SLA信息。

  • 我要怎樣查看性能的總結(jié)?

    Summary Report欄顯示了關(guān)于場(chǎng)景運(yùn)行的總體信息和統(tǒng)計(jì),以及所有相關(guān)的SLA信息。例如,根據(jù)我們定義的SLAs性能最壞的事務(wù)都有哪些,在特定的時(shí)間間隔下特定的事務(wù)如何執(zhí)行,以及所有的SLA狀態(tài)。你要從Session Explorer中打開(kāi)Summary Report。

  • 什么是總體場(chǎng)景統(tǒng)計(jì)?

    在Statistics Summary模塊,你可以看到最多有70個(gè)虛擬用戶在本次測(cè)試中運(yùn)行。其余的統(tǒng)計(jì)諸如total/average throughput,total/average hits等信息也會(huì)被顯示出來(lái)。

  • 性能最差的事務(wù)有哪些?

    這五個(gè)最壞事務(wù)的表單會(huì)告訴你:根據(jù)你定義的SLA,哪5個(gè)事務(wù)的性能最壞。

    你可以看到在check_itinerary事務(wù)執(zhí)行的時(shí)間段內(nèi),有66.4%的時(shí)間超過(guò)了SLA中所定義的臨界值。在整個(gè)運(yùn)行過(guò)程中超過(guò)SLA臨界值程度的平均百分比為200.684%。

  • 在哪些時(shí)間段內(nèi)臨界值被超越?

    Scenario Behavior Over Time模塊將會(huì)顯示不同時(shí)間內(nèi)事務(wù)的性能,綠色的方塊顯示的是事務(wù)性能在SLA所設(shè)定的臨界值內(nèi)的時(shí)間段,紅色的方塊顯示的是失敗的事務(wù),灰色的方塊顯示的是沒(méi)有相關(guān)的SLA被定義。

    你可以看到對(duì)于你定義了SLA的事務(wù),check_itinerary在多數(shù)時(shí)間段內(nèi)性能超過(guò)了臨界值。

  • 什么是總體事務(wù)性能?

    Transaction Summary模塊列出了每一個(gè)事務(wù)的性能總結(jié)。

    我們還可以看到check_itinerary事務(wù)失敗了28次。

    回顧每個(gè)事務(wù)的時(shí)間,90 Percent這一列顯示了特定事務(wù)90%次運(yùn)行所用的時(shí)間。你可以看到90%的check_itinerary事務(wù)在測(cè)試中執(zhí)行耗時(shí)65.754秒,是它平均時(shí)間(32.826秒)的兩倍,這意味著該事務(wù)在大多數(shù)情況下響應(yīng)時(shí)間較慢。

    注意SLA Status這一列顯示了和"在SLA中定義的事務(wù)"相關(guān)的總體狀態(tài):check_itinerary的SLA Status為Failed。

  • 我要看的到的性能!

    你可以在Session Explorer欄中訪問(wèn)可觀看的性能圖。接下來(lái)你要查看并分析Average Transaction Response Time圖。

  • 打開(kāi)Average Transaction Response Time圖:
  • 在Graphs下的Session Explorer中選擇Average Transaction Response Time。Average Transaction Response Time圖將會(huì)顯示在圖顯區(qū)域。

  • 在Legend欄點(diǎn)擊check_itinerary事務(wù),相應(yīng)在圖中的事務(wù)折線會(huì)被高亮顯示。

    圖上的點(diǎn)代表了場(chǎng)景運(yùn)行中某一時(shí)間點(diǎn)事務(wù)的平均響應(yīng)時(shí)間。讓你的鼠標(biāo)停留在圖中的某點(diǎn)上,一個(gè)黃色的方框?qū)⒊霈F(xiàn)并顯示該點(diǎn)的坐標(biāo)信息。

  • 分析結(jié)果:

    注意到check_itinerary事務(wù)的平均事務(wù)時(shí)間波動(dòng)很大,并且在場(chǎng)景運(yùn)行到2分56秒時(shí)達(dá)到了一個(gè)75.067秒的峰值。

    在一個(gè)性能良好的服務(wù)器上,事務(wù)將會(huì)有一個(gè)比較平穩(wěn)的平均時(shí)間折線,在圖的最下方,你可以看到logon,logoff,book_flight,以及search_flight事務(wù)都有著相對(duì)更穩(wěn)定的平均事務(wù)時(shí)間。

  • 我的服務(wù)器是否性能良好?

    在課程之前的部分你看到了你的服務(wù)器性能的不穩(wěn)定性。現(xiàn)在你將要分析70個(gè)Running Vusers(正著運(yùn)行的虛擬用戶)對(duì)你的系統(tǒng)所產(chǎn)生的影響。

  • 研究虛擬用戶的行為:

    在Graphs下的Session Explorer中點(diǎn)擊Running Vusers。Running Vusers圖將顯示在圖顯區(qū)域。

    你可以看到虛擬用戶逐漸的開(kāi)始運(yùn)行,之后經(jīng)歷了一個(gè)大約三分鐘的長(zhǎng)度,這段時(shí)間內(nèi)70虛擬用戶同時(shí)運(yùn)行,再后來(lái)虛擬用戶逐漸停止運(yùn)行。

  • 在該圖中進(jìn)行過(guò)濾,以使你只能看到所有的虛擬用戶同時(shí)運(yùn)行時(shí)的時(shí)間段。

    當(dāng)你在一個(gè)圖中進(jìn)行過(guò)濾的時(shí)候,圖中的數(shù)據(jù)也會(huì)被收縮,收縮到只顯示你關(guān)心的那部分。其他的部分都將被隱藏掉。

  • 在圖上點(diǎn)右鍵,選擇Set Filter/Group By,或者你也可以點(diǎn)擊Analysis工具欄中的Set Filter/Group By按鈕。
  • 在Filter Condition區(qū)域,選擇Scenario Elapsed Time行Values列。
  • 按照下圖中進(jìn)行設(shè)置:

  • 點(diǎn)擊"OK";
  • 在Graph Settings對(duì)話框點(diǎn)擊"OK"。

    Running Vusers圖現(xiàn)在只顯示1:30到3:45這段時(shí)間在場(chǎng)景中運(yùn)行著的虛擬用戶。所有其他的虛擬用戶將被過(guò)濾掉。

    注意:要清理filter,在圖上點(diǎn)擊右鍵,選擇Clear Filter/Group By,或者也可以點(diǎn)擊Analysis工具欄中的Clear Filter/Group By按鈕。

  • 聯(lián)系Running Vusers圖和Average Transaction Response Time圖來(lái)比較他們的數(shù)據(jù)。

    你可以將這兩個(gè)表拼接在一起以觀察一張圖中數(shù)據(jù)對(duì)另一張圖中的數(shù)據(jù)所產(chǎn)生的影響,這種做法叫做關(guān)聯(lián)兩張圖。

    例如,你可以將Running Vusers圖和Average Transaction Response Time圖進(jìn)行關(guān)聯(lián)來(lái)查看大量的虛擬用戶對(duì)平均事務(wù)時(shí)間產(chǎn)生的影響。

  • 右鍵點(diǎn)擊Running Vusers圖選擇"Clear Filter/Group By";
  • 右鍵點(diǎn)擊圖,選擇"Merge Graphs";
  • 從Select graph to merge with列表中選擇"Average Transaction Response Time";
  • 在Select type of merge下選擇"Correlate",并點(diǎn)擊"OK"。

    現(xiàn)在這兩張圖就合在一起顯示了——Running Vusers - Average Transaction Response Time圖。

  • 分析相關(guān)的圖:

    在這張圖中你可以看到隨著虛擬用戶數(shù)的增多,check_itinerary事務(wù)的平均時(shí)間逐漸增加。換句話說(shuō),平均響應(yīng)時(shí)間隨著負(fù)載增加而增加。

    在66個(gè)虛擬用戶的時(shí)候,平均響應(yīng)時(shí)間出現(xiàn)了一個(gè)急劇的(sudden,sharp)增長(zhǎng)。我們說(shuō)這個(gè)測(cè)試broke the server(沖破了服務(wù)器),在多于66個(gè)虛擬用戶同時(shí)運(yùn)行時(shí),平均響應(yīng)時(shí)間開(kāi)始減少。

  • 保存一個(gè)模板(template)

    至今你已經(jīng)過(guò)濾了一張圖并關(guān)聯(lián)了兩張圖。下一次你分析場(chǎng)景的時(shí)候,你可能會(huì)想要看到相同的圖,有相同的過(guò)濾與合并條件。你可以將你的merge and filter(合并與過(guò)濾)的設(shè)置保存到一個(gè)模板中,并將它們用于其他的分析會(huì)話中。

    保存你的模板:

  • 選擇Tools>Templates,出現(xiàn)如下對(duì)話框:

  • 在Templates欄點(diǎn)擊"New" 按鈕,如下對(duì)話框被打開(kāi):

  • 輸入一個(gè)名字并點(diǎn)擊"OK";
  • 點(diǎn)擊"Save and close"按鈕關(guān)閉Apply/Edit Template對(duì)話框。
  • 下一次你打開(kāi)一個(gè)新的分析會(huì)話并且想要用一個(gè)已存的模板時(shí):

  • 選擇Tools>Templates,Apply/Edit Template對(duì)話框被打開(kāi);
  • 從列表中選擇你的模板,并點(diǎn)擊"Save and close"。
  • 我怎樣精確定位問(wèn)題所出自的根源?

    至今為止,你已經(jīng)看到了隨著負(fù)載的增加,對(duì)check_itinerary事務(wù)的平均響應(yīng)時(shí)間會(huì)產(chǎn)生一個(gè)負(fù)面的影響。

    你可以更深入的研究check_itinerary事務(wù)以便發(fā)現(xiàn)哪些系統(tǒng)資源負(fù)面地影響了它的性能。

    這個(gè)自動(dòng)關(guān)聯(lián)工具可以將所有包含可能會(huì)影響到check_itinerary事務(wù)響應(yīng)時(shí)間的數(shù)據(jù)的圖合并到一起并精確的定位問(wèn)題發(fā)生時(shí)還有什么事情正在發(fā)生。

  • 從graph樹(shù)中選擇Average Transaction Response Time圖。

    看check_itinerary這一事務(wù),特別在過(guò)去的1到4分鐘這一時(shí)間段內(nèi)。平均響應(yīng)時(shí)間直線上升并在3分鐘左右到達(dá)峰值。

  • 過(guò)濾Average Transaction Response Time圖,只查看check_itinerary事務(wù):
  • 右鍵點(diǎn)擊圖片,選擇"Set Filter/Group by";
  • 在Transaction Name / Value格中選擇"check_itinerary";
  • 點(diǎn)擊"OK"。
  • 自動(dòng)關(guān)聯(lián)圖:
  • 右鍵點(diǎn)擊圖,選擇"Auto Correlate";
  • 在Auto Correlate對(duì)話框中確定Measurement to Correlate選擇的是check_itinerary,并將時(shí)間范圍設(shè)為從1:20到3:40——你可以直接在框中輸入,也可以在圖中ElapsedScenario Time軸上對(duì)紅色和綠色的桿兒進(jìn)行拖拽。

  • 點(diǎn)擊"OK"。

    這個(gè)Auto Correlated Graph(自動(dòng)關(guān)聯(lián)圖)將會(huì)顯示在圖顯區(qū)域。Check_itinerary這一事務(wù)被高亮顯示。

    這個(gè)自動(dòng)關(guān)聯(lián)的圖有個(gè)默認(rèn)的名字:Auto Correlated Graph [1].

  • 為該圖重命名:
  • 在Session Explorer中的Graphs下右鍵點(diǎn)擊Auto Correlated Graph [1]并選擇"Rename Item",圖的名字變?yōu)榭删庉嫚顟B(tài);
  • 輸入Auto Correlated - check_itinerary并按回車,或者隨便點(diǎn)旁邊的什么地方都行。
  • 分析自動(dòng)關(guān)聯(lián)圖:

    在Legend欄下,從Graph列為Windows Resources的項(xiàng)中找到Measurement為Pool Nonpaged Bytes和Private Bytes這倆Measurements。

    在Measurement和Correlation Match列中,你可以看到這些內(nèi)存相關(guān)的measurements(測(cè)量尺度),和check_itinerary這一事務(wù)的Correlation Match超過(guò)了70%。這意味著這些元素的性能和check_itinerary這一事務(wù)的性能在指定的時(shí)間段內(nèi)緊緊相關(guān)。

    我們可以準(zhǔn)確的斷定當(dāng)check_itinerary這一事務(wù)的響應(yīng)時(shí)間達(dá)到峰值的時(shí)候,系統(tǒng)的內(nèi)存資源將會(huì)出現(xiàn)短缺。

  • 我還可以收集到和場(chǎng)景運(yùn)行相關(guān)的其他信息嗎?

    除了在分析會(huì)話開(kāi)始的graph樹(shù)上能看到的圖外,你可以顯示各種圖來(lái)收集其他關(guān)于場(chǎng)景運(yùn)行的信息。

  • 點(diǎn)擊Graph>Add New Graph:

    Open A New Graph對(duì)話框被打開(kāi)并列舉了包含數(shù)據(jù)的并能夠顯示的圖的種類:

    • Vusers——顯示虛擬用戶及其狀態(tài)的信息;
    • Errors——顯示錯(cuò)誤統(tǒng)計(jì);
    • Transactions——顯示事務(wù)及其響應(yīng)時(shí)間的數(shù)據(jù);
    • Web Resources ——顯示點(diǎn)擊量,吞吐量,以及連接數(shù)據(jù);
    • Web Page Diagnostics——顯示你腳本中監(jiān)控的各個(gè)網(wǎng)頁(yè)的數(shù)據(jù);
    • System Resources——顯示系統(tǒng)資源使用的數(shù)據(jù);
  • 顯示一個(gè)新圖:
  • 在Open A New Graph對(duì)話框中,點(diǎn)擊列出的分類左側(cè)的"+"來(lái)展開(kāi)分類;
  • 選擇一張圖并點(diǎn)擊"Open Graph"按鈕;
  • 點(diǎn)擊"Close"按鈕關(guān)閉Open A New Graph對(duì)話框。

    現(xiàn)在打開(kāi)一些其他的圖來(lái)對(duì)你的場(chǎng)景運(yùn)行情況有一個(gè)更好的了解。

  • 我怎樣發(fā)布我的發(fā)現(xiàn)?

    你可以從你的分析會(huì)話中通過(guò)HTML或微軟的Word報(bào)告來(lái)發(fā)布你的發(fā)現(xiàn)。報(bào)告是用設(shè)計(jì)者模板創(chuàng)建的,并且包含了解釋以及對(duì)圖和數(shù)據(jù)的說(shuō)明。

    HTML Reports

    HTML報(bào)告可以在任何瀏覽器被打開(kāi)和查看。

    創(chuàng)建一個(gè)HTML報(bào)告:

  • 點(diǎn)擊Reports>HTML Report;
  • 為你的報(bào)告起個(gè)名兒,和你要將它保存的路徑;
  • 點(diǎn)擊"Save"進(jìn)行保存。

    點(diǎn)擊"Save"后Analysis會(huì)自動(dòng)創(chuàng)建報(bào)告并將它顯示在你的瀏覽器中。

    你會(huì)注意到你的HTML報(bào)告的布局和你的分析會(huì)話非常相似。你可以點(diǎn)擊左側(cè)欄中的鏈接來(lái)查看不同的圖。每張圖的描述信息將會(huì)在頁(yè)面底部給出。

  • 微軟Word報(bào)告

    你可以將你的分析會(huì)話表現(xiàn)在一個(gè)微軟的word報(bào)告中。Word報(bào)告比HTML報(bào)告更好理解,因?yàn)槟憧梢赃x擇讓它包含場(chǎng)景的總體信息,測(cè)量尺度描述(measurement description)等等。你也可以格式化你的報(bào)告,讓它包含你公司的名字和標(biāo)志(logo),以及作者的詳細(xì)信息。

    就像任意一個(gè)Word文件一樣,這個(gè)報(bào)告是可以編輯的,所以你可以在你生成的報(bào)告中添加更多的評(píng)論與發(fā)現(xiàn)。

    創(chuàng)建一個(gè)微軟Word報(bào)告:

  • 點(diǎn)擊Reports>New Report:

    New Report對(duì)話框打開(kāi)了。

  • 在General欄中:
  • Based on template選擇Detailed report (for single run)
  • 為你的Report起一個(gè)標(biāo)題;
  • 輸入作者姓名,工作標(biāo)題,公司名稱。
  • 在Format欄中:

    默認(rèn)情況下,建立的報(bào)告將會(huì)包括一個(gè)標(biāo)題頁(yè)面,一個(gè)包含內(nèi)容的表結(jié)構(gòu),圖的詳細(xì)信息以及描述,以及測(cè)量尺度描述(measurement description)。你可以選擇性的將腳本中的信息加到報(bào)告里,讓你可以查看業(yè)務(wù)流程步驟中的縮略圖。

    你可以通過(guò)選擇"Include company logo"找到相應(yīng)的logo文件位置并加入報(bào)告中。Logo文件必須是個(gè)".bmp"格式的文件。

  • 在"Content"欄中:
  • 選擇你要加入到你的報(bào)告中的場(chǎng)景運(yùn)行和分析會(huì)話的部分內(nèi)容。

    出于本教材的目的,你要添加一個(gè)"Executive Summary"(概要)到Content Items列表中;

  • 點(diǎn)擊"Add"按鈕來(lái)打開(kāi)"Add Content Items"窗口,選擇"Executive Summary"并點(diǎn)擊OK:

    "Executive Summary"被加到左側(cè)的Content Items欄中。

    選擇"Executive Summary",在右側(cè)編輯框中輸入下列文字:

    - Objectives: The objectives of the test scenario were to....

    - Conclusions: The conclusions I reached are as follows:

  • 在Content Items欄中,選擇"Largest URLs by Average Kbytes"并點(diǎn)擊Delete按鈕。這樣做將不會(huì)把該圖包含在報(bào)告中。
  • 改變報(bào)告中顯示內(nèi)容項(xiàng)的順序。
    • 在Content Items欄中選擇Workload Characteristics。在Selected Columns列表中點(diǎn)擊"Average Hits per Second"。
    • 點(diǎn)擊向下箭頭按鈕直到它移動(dòng)到Total Transactions Number下面。在報(bào)告中,Average Hits per Second這一內(nèi)容項(xiàng)將會(huì)在Total Transactions Number這一內(nèi)容項(xiàng)后面緊接著顯示。

  • 點(diǎn)擊"Generate"按鈕:

    之后LoadRunner將會(huì)自動(dòng)收集數(shù)據(jù)并生成一個(gè)Microsoft Word文件,并用Microsoft Word打開(kāi)。

    除了你在分析會(huì)話時(shí)生成的圖外,報(bào)告還包含了一個(gè)客觀的結(jié)論,以及其他你在創(chuàng)建報(bào)告時(shí)選擇的部分和圖表。

  • 總結(jié)

    在這節(jié)課中,你學(xué)會(huì)了最基本的——定義SLA(Service Level Agreement),分析一個(gè)場(chǎng)景的運(yùn)行,以及將你的測(cè)試結(jié)果發(fā)布到報(bào)告中。

    你已經(jīng)知道性能上的問(wèn)題將會(huì)在你研究各種顯示服務(wù)器瓶頸的圖表后被發(fā)現(xiàn),原因可能是由于負(fù)載過(guò)重。你已經(jīng)看到了,你可以通過(guò)配置圖表來(lái)顯示相關(guān)聯(lián)的數(shù)據(jù),指出這些瓶頸的根源之所在。

    總結(jié)

    以上是生活随笔為你收集整理的HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。