




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
LoadRunner性能測(cè)試培訓(xùn)質(zhì)量管理部竇志剛性能測(cè)試基礎(chǔ)知識(shí)性能測(cè)試常用術(shù)語(yǔ)LoadRunner組件-VirtualUserGeneratorLoadRunner組件-ControllerLoadRunner組件-Analysis基本調(diào)優(yōu)目標(biāo)什么是性能測(cè)試通過(guò)狹義的性能測(cè)試模擬生產(chǎn)運(yùn)行的業(yè)務(wù)壓力或者用戶(hù)使用場(chǎng)景來(lái)測(cè)試系統(tǒng)的性能是否滿(mǎn)足生產(chǎn)性能的要求。廣義的性能測(cè)試指壓力測(cè)試、負(fù)載測(cè)試、強(qiáng)度測(cè)試、并發(fā)測(cè)試、大數(shù)據(jù)量測(cè)試、可靠性測(cè)試等和性能相關(guān)的測(cè)試統(tǒng)稱(chēng)。性能測(cè)試基礎(chǔ)知識(shí)壓力測(cè)試對(duì)系統(tǒng)不斷施加壓力的測(cè)試,是通過(guò)確定一個(gè)系統(tǒng)的瓶頸或不能接收用戶(hù)請(qǐng)求的性能點(diǎn),來(lái)獲得系統(tǒng)提供的最大服務(wù)級(jí)別的測(cè)試。目的:是發(fā)現(xiàn)在什么條件下系統(tǒng)的性能變得不可接受,并通過(guò)對(duì)應(yīng)用程序施加越來(lái)越多的負(fù)載,直到發(fā)現(xiàn)應(yīng)用程序性能下降的拐點(diǎn)。負(fù)載測(cè)試對(duì)系統(tǒng)不斷增加壓力或增加一定壓力下的持續(xù)時(shí)間,直到系統(tǒng)的一些性能指標(biāo)達(dá)到極限,例如響應(yīng)時(shí)間超過(guò)預(yù)定目標(biāo)或某種資源以及達(dá)到飽和。區(qū)別壓力測(cè)試側(cè)重壓力大小,負(fù)載測(cè)試往往強(qiáng)調(diào)壓力持續(xù)的時(shí)間。性能測(cè)試基礎(chǔ)知識(shí)強(qiáng)度測(cè)試強(qiáng)度測(cè)試主要是檢查程序?qū)Ξ惓G闆r的抵抗能力,如運(yùn)行最大存儲(chǔ)空間,進(jìn)行可能導(dǎo)致系統(tǒng)崩潰、磁盤(pán)數(shù)據(jù)抖動(dòng)、網(wǎng)卡滿(mǎn)負(fù)荷等。主要是異常條件下驗(yàn)證系統(tǒng)是否穩(wěn)定以及性能方面是否容易擴(kuò)展。疲勞強(qiáng)度測(cè)試疲勞強(qiáng)度測(cè)試是一類(lèi)特殊的強(qiáng)度測(cè)試,主要測(cè)試系統(tǒng)長(zhǎng)時(shí)間運(yùn)行后的性能表現(xiàn),如一般常見(jiàn)的7X24小時(shí)的壓力測(cè)試。性能測(cè)試基礎(chǔ)知識(shí)并發(fā)測(cè)試主要指當(dāng)測(cè)試多用戶(hù)并發(fā)訪(fǎng)問(wèn)同一個(gè)應(yīng)用、模塊、數(shù)據(jù)時(shí)是否產(chǎn)生隱藏的并發(fā)問(wèn)題,如內(nèi)存泄漏、線(xiàn)程鎖、資源爭(zhēng)用問(wèn)題,幾乎所有的性能測(cè)試都會(huì)涉及并發(fā)測(cè)試。通用說(shuō)明:持續(xù)掛載一定數(shù)量用戶(hù)不斷開(kāi)。LoadRunner進(jìn)行并發(fā)測(cè)試相對(duì)較少,一般使用測(cè)試儀很普遍。大數(shù)據(jù)量測(cè)試一般是針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)查詢(xún)等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量的測(cè)試。如CA系統(tǒng)上千萬(wàn)條的數(shù)據(jù)測(cè)試。性能測(cè)試基礎(chǔ)知識(shí)可靠性測(cè)試在給系統(tǒng)加載一定業(yè)務(wù)壓力的情況下,使系統(tǒng)運(yùn)行一段時(shí)間,檢測(cè)系統(tǒng)是否穩(wěn)定。如施加壓力讓CPU資源保持在90%以上的使用率,連續(xù)對(duì)系統(tǒng)加壓24個(gè)小時(shí),分析系統(tǒng)是否穩(wěn)定。性能測(cè)試基礎(chǔ)知識(shí)性能指標(biāo)并發(fā)嚴(yán)格意義上的并發(fā):即所有的用戶(hù)在同一時(shí)刻做同一件事情或者操作,一般是同一類(lèi)型的業(yè)務(wù)廣義的并發(fā):即所有的用戶(hù)對(duì)系統(tǒng)發(fā)出了請(qǐng)求或進(jìn)行了操作,這些請(qǐng)求或者操作可以是相同的,也可以是不同的。LoadRunner壓測(cè)并發(fā)的弱點(diǎn):
一個(gè)IP只能支持65535個(gè)連接(理論上),因此需要壓測(cè)百萬(wàn)級(jí)別的并發(fā),必須很多IP地址支持才能實(shí)現(xiàn)。性能測(cè)試基礎(chǔ)知識(shí)性能測(cè)試基礎(chǔ)知識(shí)防火墻并發(fā)測(cè)試標(biāo)準(zhǔn):ConcurrentconnectionsHost和DUT之間同時(shí)連接的總數(shù),并假設(shè)所有連接上都有數(shù)據(jù)傳輸。即同時(shí)可以?huà)燧d的用戶(hù)數(shù)量。請(qǐng)求響應(yīng)時(shí)間請(qǐng)求響應(yīng)時(shí)間是指從客戶(hù)端發(fā)出請(qǐng)求到得到響應(yīng)的整個(gè)過(guò)程的時(shí)間。從客戶(hù)端發(fā)送一個(gè)請(qǐng)求開(kāi)始計(jì)時(shí),到客戶(hù)端接到從服務(wù)器端返回的響應(yīng)接口計(jì)時(shí)結(jié)束。另外一些工具中,會(huì)被稱(chēng)為“TTLB”,“Timetolastbyte”。從發(fā)送一個(gè)請(qǐng)求開(kāi)始,到客戶(hù)端收到最好一個(gè)字節(jié)的響應(yīng)為止所耗費(fèi)的時(shí)間。事務(wù)響應(yīng)時(shí)間(TransactionResponseTime)事務(wù)可能是一系列的請(qǐng)求組成,事務(wù)的響應(yīng)時(shí)間主要是針對(duì)用戶(hù)而言,是為了向用戶(hù)說(shuō)明業(yè)務(wù)響應(yīng)時(shí)間而提出的。性能測(cè)試基礎(chǔ)知識(shí)CPS(ConnectionPerSecond)新建測(cè)試的主要目的是測(cè)試被測(cè)設(shè)備的處理能力。單位時(shí)間內(nèi)能夠建立的連接數(shù)越多,說(shuō)明被測(cè)試設(shè)備的處理器能力越強(qiáng)。一般只關(guān)心建立TCP連接的速率,因此使用RST方式關(guān)閉連接。吞吐率(Throughput)單位時(shí)間內(nèi)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,是衡量網(wǎng)絡(luò)性能的重要指標(biāo)。Loadrunner記錄的Throughput是接收到服務(wù)器返回的所有字節(jié)數(shù)之和,與本地發(fā)出的字節(jié)數(shù)無(wú)關(guān)!和網(wǎng)絡(luò)帶寬的關(guān)系:TPS*返回?cái)?shù)據(jù)包的大小=Throughput<帶寬吞吐量網(wǎng)絡(luò)上傳輸?shù)臄?shù)量量的總和。吞吐量/傳輸時(shí)間,即吞吐率。性能測(cè)試基礎(chǔ)知識(shí)TPS(TransactionPerSecond)每秒鐘系統(tǒng)能夠處理的交易或者事務(wù)的數(shù)量。是衡量系統(tǒng)處理能力的重要指標(biāo)。一般而言,評(píng)價(jià)系統(tǒng)性能均以每秒完成的技術(shù)交易的數(shù)量來(lái)衡量系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值HPS點(diǎn)擊率每秒鐘用戶(hù)向Web服務(wù)器提交的HTTP請(qǐng)求數(shù)。是Web應(yīng)用特有的一個(gè)指標(biāo):Web應(yīng)用是“請(qǐng)求-響應(yīng)”模式,用戶(hù)發(fā)出一次申請(qǐng),服務(wù)器就處理一次。HPS一般與TPS成正比關(guān)系,是B/S系統(tǒng)中非常重要的性能指標(biāo)之一性能測(cè)試基礎(chǔ)知識(shí)資源利用率監(jiān)控不同系統(tǒng)資源的使用程度,如服務(wù)器的CPU、磁盤(pán)利用率、內(nèi)存、網(wǎng)絡(luò)等。是測(cè)試和分析瓶頸的主要參數(shù)。性能測(cè)試基礎(chǔ)知識(shí)場(chǎng)景(Scenario)在LoadRunner中主要表現(xiàn)為Controller中設(shè)計(jì)與執(zhí)行測(cè)試用例中的用戶(hù)場(chǎng)景。如在controller中選擇虛擬用戶(hù)腳本,設(shè)置虛擬用戶(hù)數(shù)量,配置虛擬用戶(hù)運(yùn)行時(shí)的行為,選擇負(fù)載發(fā)生器,設(shè)置執(zhí)行時(shí)間等。負(fù)載發(fā)生器(LoadGenerator)用于產(chǎn)生壓力的真實(shí)機(jī)器,受controller控制,可以使用戶(hù)腳本在不同的機(jī)器上執(zhí)行。性能測(cè)試中,通常由一個(gè)controller控制多個(gè)LoadGenerator對(duì)測(cè)試系統(tǒng)進(jìn)行加壓。虛擬用戶(hù)(Vuser)模擬現(xiàn)實(shí)中的真實(shí)用戶(hù),通過(guò)虛擬用戶(hù)腳本模擬真實(shí)用戶(hù)的行為。LoadRunner常用術(shù)語(yǔ)虛擬用戶(hù)腳本VuserScript通過(guò)VuserGenerator錄制或者開(kāi)發(fā)的腳本,用來(lái)模擬用戶(hù)的行為。事務(wù)(Transaction)業(yè)務(wù)上通常是用戶(hù)的一個(gè)或者一系列操作,代表一定的功能;測(cè)試人員可以將一個(gè)或者多個(gè)操作步驟定義為一個(gè)事務(wù),來(lái)衡量這部分的用戶(hù)并發(fā)響應(yīng)時(shí)間。思考時(shí)間(ThinkTime)用戶(hù)思考時(shí)間,為了模擬更接近用戶(hù)的真實(shí)行為而引進(jìn)的概念。LoadRunner常用術(shù)語(yǔ)集合點(diǎn)(Rendezvous)LoadRunner通過(guò)集合點(diǎn)實(shí)現(xiàn)真正意義上的并發(fā)。添加在比較重要的操作動(dòng)作之前;LoadRunner常用術(shù)語(yǔ)LoadRunner工作原理錄制啟動(dòng)應(yīng)用程序并將業(yè)務(wù)流程錄制到腳本中。VuGen為錄制的每個(gè)操作創(chuàng)建一個(gè)步驟。完成錄制后,VuGen生成腳本序列,從而形成Vuser腳本。驗(yàn)證將腳本作為單獨(dú)的測(cè)試運(yùn)行,以此驗(yàn)證其功能并找出潛在的問(wèn)題。增強(qiáng)向腳本中添加增強(qiáng)功能,使它能夠更準(zhǔn)確的模擬業(yè)務(wù)流程,并使能夠獲得重要數(shù)據(jù)。添加事務(wù),內(nèi)容檢查和參數(shù)。準(zhǔn)備進(jìn)行負(fù)載測(cè)試LoadRunner-VuserGenerator常用協(xié)議(Infosec常用協(xié)議)Web(HTTP/HTML)JavaVuserWebServicesWindowssocketsWeb協(xié)議(NSAE/CA/NetSign/NetPass/Bisafe)JavaVuser(NetSign/NetPass/CA)WebServices(RA)Windowssockets(NetSign/NSAESM2算法)VuserGenerator-錄制Web協(xié)議錄制HTML-basedscript
基于瀏覽器的應(yīng)用程序和VBScriptURL-basedscript
不是基于瀏覽器的應(yīng)用程序
基于瀏覽器的應(yīng)用程序包含了javascript,并且該腳本向服務(wù)器發(fā)送了請(qǐng)求,如DataGrid分頁(yè)按鈕
基于瀏覽器的應(yīng)用程序使用了HTTPS安全協(xié)議如果使用HTML-basedscript模式錄制完成后,回放失敗。建議修改為URL-basedscript模式來(lái)錄制。VuserGenerator-錄制Web協(xié)議HTML-basedscript和URL-basedscript區(qū)別HTML-basedscript產(chǎn)生的腳本描述和用戶(hù)的操作一致,能夠非常直觀的看到用戶(hù)的操作流程。直接創(chuàng)建的URL(web_url),表單提交(web_submit_form),鏈接(web_link)和圖像(web_image)等函數(shù)URL-basedscript產(chǎn)生的腳本,所有的鏈接、圖像請(qǐng)求和URL操作都被錄制為web_url函數(shù)中,表單提交被錄制為web_submit_data函數(shù)。VuserGenerator-錄制Web協(xié)議VuserGenerator-錄制Web協(xié)議腳本錄制的基本原則充分考慮腳本的執(zhí)行效率性能測(cè)試腳本關(guān)注的是如何模擬用戶(hù)的真實(shí)行為,應(yīng)該接近用戶(hù)的真正操作。錄制完成后盡量不要增加過(guò)多的內(nèi)容,如檢查點(diǎn)、循環(huán)等操作錄制重要的用戶(hù)業(yè)務(wù)建議錄制常用的、使用頻率較高的業(yè)務(wù)進(jìn)行錄制選擇需要的進(jìn)行錄制如果一些操作對(duì)用戶(hù)關(guān)注的業(yè)務(wù)沒(méi)有影響,可以不進(jìn)行錄制。VuserGenerator-錄制Web協(xié)議Infosec腳本錄制應(yīng)用測(cè)試:完全模擬用戶(hù)的各個(gè)重要的操作進(jìn)行系統(tǒng)測(cè)試;Infosec產(chǎn)品測(cè)試:避開(kāi)用戶(hù)的各種繁瑣操作,假設(shè)用戶(hù)沒(méi)有思考時(shí)間,所有操作都是連續(xù)性的,這樣才能對(duì)被測(cè)服務(wù)器產(chǎn)生最大的性能壓力。如證書(shū)下載流程:產(chǎn)品測(cè)試的腳本盡可能融合到一個(gè)頁(yè)面中,避免頻繁錄入提交的操作;如證書(shū)下載流程:用戶(hù)注冊(cè)-申請(qǐng)證書(shū)-下載證書(shū)內(nèi)部測(cè)試中,建議將所有的流程放在一個(gè)JSP頁(yè)面中進(jìn)行處理,這樣會(huì)對(duì)被測(cè)設(shè)備產(chǎn)生最大壓力,能夠最大化的發(fā)現(xiàn)產(chǎn)品存在的問(wèn)題。VuserGenerator-錄制Web協(xié)議JavaVuser根據(jù)測(cè)試流程,直接進(jìn)行Java接口的調(diào)用,編寫(xiě)測(cè)試腳本LoadRunner對(duì)Java版本的支持,需要根據(jù)實(shí)際情況進(jìn)行確認(rèn)。如果版本不正確,編譯過(guò)程會(huì)體現(xiàn)相關(guān)的錯(cuò)誤信息??梢灾付↗VM堆棧大小從目前的使用情況來(lái)看,不是很適合進(jìn)行穩(wěn)定性測(cè)試。適用產(chǎn)品:NetSign、NetPass、NetCert;有JavaAPI的都可以支持。VuserGenerator-錄制Java協(xié)議JavaVuser調(diào)用問(wèn)題可以和腳本放在同一個(gè)目錄;但只有當(dāng)前的虛擬用戶(hù)腳本可以調(diào)用;放在LR調(diào)用的JDKlib目錄下,所有用戶(hù)腳本都可以調(diào)用;多臺(tái)agent同時(shí)調(diào)用javavuser時(shí)建議使用這種方式多臺(tái)計(jì)算機(jī)聯(lián)機(jī)測(cè)試,所有運(yùn)行測(cè)試腳本的客戶(hù)機(jī)必須安裝JDK環(huán)境并正確設(shè)置路徑。VuserGenerator-錄制Java協(xié)議VuserGenerator-錄制Java協(xié)議VuserGenerator-錄制Java協(xié)議Java腳本轉(zhuǎn)換web腳本使用Java協(xié)議腳本可以輕松轉(zhuǎn)變?yōu)閣eb協(xié)議腳本,將java腳本中的內(nèi)容按照J(rèn)ava語(yǔ)法變成JSP頁(yè)面,并部署在WAS中即可。VuserGenerator-錄制Java協(xié)議WebServices基于WSDL文件的錄制(宏遠(yuǎn)證券項(xiàng)目測(cè)試)VuserGenerator-錄制WebServicesWindows
Sockets(直接發(fā)送數(shù)據(jù))對(duì)于windowssocket協(xié)議進(jìn)行通信的C/S結(jié)構(gòu)的應(yīng)用程序,可以使用windowssockets類(lèi)型的Vuser來(lái)錄制之間的通信。Windowssockets是非常底層的協(xié)議,適用于錄制一些低級(jí)通信會(huì)話(huà)。
lrs_create_socket(“socket1”,“TCP”,“RemoteHost=46:10001”,LrsLastArg);//建立連接lrs_send(“socket1”,“buf0”,LrsLastArg);//發(fā)送數(shù)據(jù)lrs_receive(“socket1”,“buf1”,LrsLastArg);//接收數(shù)據(jù)lrs_close_socket(“socket1”);//關(guān)閉連接;WSRData21
sendbuf010
"00100312303456"
recvbuf1128
VuserGenerator-錄制windowsSocketWindowsSocket(調(diào)用DLL)適用范圍:一類(lèi)是不適合錄制其功能點(diǎn)的業(yè)務(wù)系統(tǒng)的性能測(cè)試;另外一類(lèi)是基于C++語(yǔ)言開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)的性能測(cè)試。特點(diǎn)是調(diào)用動(dòng)態(tài)庫(kù)容易,難點(diǎn)是DLL中的動(dòng)作開(kāi)發(fā)實(shí)現(xiàn)。VuserGenerator-錄制windowsSocketVuserGenerator-錄制windowsSocket腳本編寫(xiě)Vuser_init:
初始化調(diào)用部分,一般為創(chuàng)建連接,加載DLL庫(kù)等;如: lrs_create_socket(“socke<socket>”,“TCP”,“RemoteHost=97:9000”,LrsLastArg);//建立連接 lr_load_dll("C:\\cert\\sm2v11\\dll\\libeay32.dll");//LoadDLL lr_load_dll("C:\\cert\\sm2v11\\dll\\ssleay32.dll");Action:發(fā)送接收數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行判斷等;調(diào)用DLL中的動(dòng)作函數(shù),進(jìn)行操作; lrs_send("socke<socket>","buf0",LrsLastArg); lrs_receive("socke<socket>","buf1",LrsLastArg); num=runconnect_doublecert(0,0,150000);//函數(shù)調(diào)用Vuser_end:關(guān)閉連接,是否DLL等VuserGenerator-錄制windowsSocketVuserGenerator-腳本模式WebVuserGenerator-腳本模式Java協(xié)議VuserGenerator-腳本模式Socket參數(shù)化參數(shù)化是LR的一大特色,通過(guò)參數(shù)化功能實(shí)現(xiàn)了用戶(hù)行為的差異化。參數(shù)化實(shí)際是用參數(shù)替換一些常量。當(dāng)腳本運(yùn)行時(shí),Vuser將使用指定數(shù)據(jù)源中的值來(lái)替換參數(shù)。參數(shù)的數(shù)據(jù)源可以是一個(gè)文件,也可以是內(nèi)部生成的變量,可以是數(shù)據(jù)庫(kù)中的查詢(xún)結(jié)果。優(yōu)點(diǎn):減少腳本的大小和數(shù)量虛擬用戶(hù)腳本更接近真實(shí)的用戶(hù)行為VuserGenerator-腳本增強(qiáng)-參數(shù)化參數(shù)類(lèi)型Date/Time:時(shí)間類(lèi)型的參數(shù)GroupName:使用虛擬用戶(hù)所在的組名稱(chēng)代替參數(shù)LoadGeneratorName:使用虛擬用戶(hù)所在的LoadGenerator機(jī)器名來(lái)替換IterationNumber:使用該測(cè)試腳本當(dāng)前循環(huán)的次數(shù)來(lái)生成參數(shù)。RandomNumber:隨機(jī)數(shù)??梢栽O(shè)置產(chǎn)生隨機(jī)數(shù)的范圍。UniqueNumber:唯一的數(shù)。在屬性中可以設(shè)置第一個(gè)數(shù)以及遞增的數(shù)的大小。遞增含義:假如起始數(shù)為1,遞增為5,那么第一個(gè)用戶(hù)第一次循環(huán)取值為1,第二次循環(huán)取值為2;第二個(gè)用戶(hù)第一次循環(huán)取值為6,第二次為7;VuserGenerator-腳本增強(qiáng)-參數(shù)化參數(shù)類(lèi)型VuserID:使用虛擬用戶(hù)的ID來(lái)代替參數(shù)值,該ID是由Controller來(lái)控制的。Vuser中,VuserID為1。File:可以從屬性文件中設(shè)置編輯文件,添加內(nèi)容,也可以從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)。UserDefinedFunction:從開(kāi)發(fā)的dll中獲取數(shù)據(jù)。VuserGenerator-腳本增強(qiáng)-參數(shù)化File類(lèi)型VuserGenerator-腳本增強(qiáng)-參數(shù)化File類(lèi)型-如何獲取每行數(shù)據(jù)Sequential:按照順序一行行的讀取,每次當(dāng)Vuser訪(fǎng)問(wèn)數(shù)據(jù)表時(shí)都返回到下一個(gè)可用的數(shù)據(jù)行。如果表中沒(méi)有足夠的值,返回到表的第一個(gè)值,一直循環(huán)到測(cè)試結(jié)束。強(qiáng)調(diào)虛擬用戶(hù)的一致性,每個(gè)虛擬用戶(hù)運(yùn)行到該點(diǎn)時(shí)取值一致。Random:每次Vuser訪(fǎng)問(wèn)數(shù)據(jù)表時(shí)都分配一個(gè)隨機(jī)值。Unique:唯一的值。為每個(gè)Vuser的參數(shù)分配一個(gè)唯一的值;Unique強(qiáng)調(diào)用戶(hù)的差異性,即每個(gè)用戶(hù)取到的參數(shù)值不一致。Samelineasxxxx:如果一個(gè)腳本中定義了多個(gè)參數(shù),其中某些參數(shù)應(yīng)該是對(duì)應(yīng)的,如Seed和SN;用戶(hù)名和密碼等;VuserGenerator-腳本增強(qiáng)-參數(shù)化File類(lèi)型-何時(shí)訪(fǎng)問(wèn)數(shù)據(jù)表更新參數(shù)Updatevalueon定義了何時(shí)訪(fǎng)問(wèn)數(shù)據(jù)表更新參數(shù)值。VuserGenerator-腳本增強(qiáng)-參數(shù)化File類(lèi)型-何時(shí)訪(fǎng)問(wèn)數(shù)據(jù)表更新參數(shù)Eachiteration:每次迭代時(shí)訪(fǎng)問(wèn)數(shù)據(jù)表獲得下一個(gè)值。在一次迭代中一個(gè)參數(shù)可能會(huì)出現(xiàn)多次。如用戶(hù)名、密碼出現(xiàn)兩次,如果希望這兩次的參數(shù)取一樣的值,就選擇此項(xiàng)。用戶(hù)名和密碼兩個(gè)參數(shù)只在不同的迭代之間進(jìn)行參數(shù)的更新,在同一次迭代中取同一個(gè)值。Eachoccurrence:該參數(shù)的每次出現(xiàn)都需要更新值。即一次迭代中參數(shù)如果多次出現(xiàn)將會(huì)取不同的值。Once:在一個(gè)Vuser中同一個(gè)參數(shù)取同一個(gè)值。VuserGenerator-腳本增強(qiáng)-參數(shù)化集合點(diǎn)(Rendezvous)集合點(diǎn)可以控制各個(gè)vuser以便在同一時(shí)刻執(zhí)行任務(wù)。借助集合點(diǎn),可以在LoadRunner中實(shí)現(xiàn)真正意義上的完全一樣的并發(fā)。使用集合點(diǎn),可以在系統(tǒng)上模擬較重的用戶(hù)負(fù)載。當(dāng)某個(gè)Vuser達(dá)到該集合點(diǎn)時(shí),Controller會(huì)將其保留,直到參與該集合的全部Vuser都到達(dá)。當(dāng)滿(mǎn)足條件時(shí),Controller將釋放Vuser,這樣可以產(chǎn)生非常密集的同一類(lèi)用戶(hù)操作或請(qǐng)求。如下,在驗(yàn)證口令時(shí)增加集合點(diǎn),提供最密集的同時(shí)驗(yàn)證操作。VuserGenerator-腳本增強(qiáng)-集合點(diǎn)檢查點(diǎn)檢查Web服務(wù)器返回的網(wǎng)頁(yè)結(jié)果是否正確。VuGen支持在腳本中插入Text/Imag檢查點(diǎn)。Web_find:主要針對(duì)HTML頁(yè)面顯示的內(nèi)容進(jìn)行搜索。有時(shí)候在頁(yè)面顯示正確的情況下也無(wú)法搜索到判斷信息。(屬于丟棄的方法)Web_reg_find
針對(duì)HTML源文件進(jìn)行搜索。VuserGenerator-腳本增強(qiáng)-檢查點(diǎn)Web_reg_find用法web_reg_find("Text=ABC","SaveCount=abc_count",LAST);web_url("Step","URL=...",LAST);if(strcmp(lr_eval_string("{abc_count}"),"0")==0)ActionAelseActionB特點(diǎn):該函數(shù)必須寫(xiě)在要查找的內(nèi)容請(qǐng)求之前,一般情況下都會(huì)寫(xiě)在如下六個(gè)函數(shù)之前:Web_custom_request(),web_image(),web_link(),web_submit_data(),web_submit_form(),web_url().VuserGenerator-腳本增強(qiáng)-檢查點(diǎn)web_find()和web_reg_find()的區(qū)別:這兩個(gè)函數(shù)函數(shù)類(lèi)型不同,web_find()是普通函數(shù),web_reg_find()是注冊(cè)函數(shù);2.VUruntime設(shè)置中的“enableimageandtextcheck”對(duì)web_find有效,而對(duì)web_reg_find無(wú)效。
3.web_find()只能只用在基于HTML模式錄制的腳本中,而web_reg_find()沒(méi)有此限制;4.web_find()是在返回的頁(yè)面中進(jìn)行內(nèi)容查找,web_reg_find()是在緩存中進(jìn)行查找、web_find()在執(zhí)行效率上不如web_reg_find(),web_reg_find先注冊(cè)的優(yōu)勢(shì)是腳本能夠一邊接收Server的數(shù)據(jù)緩沖,一邊進(jìn)行查找,提高了查找的效率5.web_reg_find的參數(shù)與web_find并不完全一樣,其中有個(gè)參數(shù)叫做SaveCount,它能夠記錄查找匹配的次數(shù)。而web_find的機(jī)制是一旦查找匹配成功,就立即返回,并不繼續(xù)查找和記錄匹配次數(shù)。
6.用web_reg_find的優(yōu)先級(jí)要遠(yuǎn)遠(yuǎn)高于web_find(),所以web_find()已經(jīng)屬于向后兼容的功能,不再推薦使用;Web_find和Web_reg_find區(qū)別關(guān)聯(lián)將一條語(yǔ)句的結(jié)果當(dāng)作另一條語(yǔ)句的輸入來(lái)鏈接語(yǔ)句;把腳本中某些寫(xiě)死的數(shù)據(jù),轉(zhuǎn)變成是擷取自服務(wù)器所送的、動(dòng)態(tài)的、每次都不一樣的數(shù)據(jù)。通常使用web_reg_save_para函數(shù)進(jìn)行關(guān)聯(lián),也是從頁(yè)面源文件查找需要的字符串。VuserGenerator-腳本增強(qiáng)-關(guān)聯(lián)如頁(yè)面源碼部分:<trbgcolor=#66cccc><th>Flight<th>Departuretime<th>Cost<trbgcolor=#66CCff><tdalign=center><inputtype=radioname=outboundFlightvalue=230;378;11/20/2003checked>BlueSkyAir230<tdalign=center>8am<tdalign=center>$378<trbgcolor=#eeeeee><tdalign=center><inputtype=radioname=outboundFlightvalue=231;337;11/20/2003>BlueSkyAir231<tdalign=center>1pm<tdalign=center>$337VuserGenerator-腳本增強(qiáng)-關(guān)聯(lián)VuserGenerator-腳本增強(qiáng)-關(guān)聯(lián)/*Thisweb_reg_save_paramcallappliestothefollowingactionfunction:web_submit_form.*/
web_reg_save_param("outFlightVal",
"LB=outboundFlightvalue=","RB=checked>",LAST);
web_submit_form("reservations.pl",
"Snapshot=t4.inf",
ITEMDATA,
…….
LAST);//NowusethesavedoutFlightVal
web_submit_form("reservations.pl_2",
"Snapshot=t5.inf",
ITEMDATA,
"Name=outboundFlight","Value={outFlightVal}",ENDITEM,
"Name=reserveFlights.x","Value=92",ENDITEM,
"Name=reserveFlights.y","Value=10",ENDITEM,
LAST);ParameterSubstitution:parameter"outFlightVal"="230;378;11/20/2003"*/Lr_save_string
將非空的字符串保存到指定的參數(shù)中。如將字符串“777”保存到emp_id變量中。VuserGenerator-常用函數(shù)lr_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年茶藝師茶具考試題及答案
- 2025年天福連鎖店員試題及答案
- 2025年內(nèi)衣類(lèi)目測(cè)試題及答案
- 三顧茅廬的全文白話(huà)文
- 2025年危險(xiǎn)品運(yùn)輸押運(yùn)資格認(rèn)證全解真題及答案解析
- 2025年餐廳服務(wù)中級(jí)測(cè)試題及答案
- 2025年銀行考試筆試題庫(kù)及答案
- 2025年團(tuán)校資格考試題及答案
- 2026版高考化學(xué)一輪總復(fù)習(xí)考點(diǎn)突破第八章水溶液中的離子反應(yīng)與平衡第38講考點(diǎn)1酸堿中和滴定的原理與操作
- 2025年機(jī)械工程師招聘筆試試題及答案
- 碧桂園工程技術(shù)管理方案
- 讓營(yíng)養(yǎng)與健康同行-科學(xué)月子餐服務(wù)方案
- 廣西工業(yè)職業(yè)技術(shù)學(xué)院招聘筆試真題2024
- 天津市南開(kāi)區(qū)2024-2025學(xué)年七年級(jí)下學(xué)期期末語(yǔ)文試題(含答案)
- 2025至2030中國(guó)無(wú)人駕駛汽車(chē)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 2025年數(shù)字化轉(zhuǎn)型與企業(yè)管理培訓(xùn)考試卷及答案
- 2025-2030中國(guó)電子級(jí)氟化液行業(yè)前景動(dòng)態(tài)與供需趨勢(shì)預(yù)測(cè)報(bào)告
- 氣道阻塞急救處理方法
- 礦山環(huán)境修復(fù)新材料-洞察及研究
- 2025年陜西高考化學(xué)試卷試題真題及答案詳解(山西寧夏青海適用)
- 2024年全國(guó)中學(xué)生生物學(xué)聯(lián)賽(山東賽區(qū))預(yù)賽試題
評(píng)論
0/150
提交評(píng)論