目錄
性能測試
?安裝
LoadRunner簡介
Load Generator:
LoadRunner工作原理:
LoadRounner 測試流程:
事務(wù)與集合點(diǎn)
? ? 事務(wù)的概述:
? ? ?? ?事務(wù)的作用:
?? ??? ?使用事務(wù)的原因:
?? ?事務(wù)的添加:
?? ?設(shè)置事務(wù)
?? ??? ??? ?集合點(diǎn)的概述:
controller組件中實(shí)操(可以處置、控制、監(jiān)控):
?釋放策略設(shè)置
?? ?思考時(shí)間(think-time)的概述:
事務(wù)與集合點(diǎn)聯(lián)合
性能測試
?? ?性能測試:通過自動(dòng)化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試。
?? ?負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。
?? ?
?? ?負(fù)載測試:確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。
?? ?壓力測試:通過確定一個(gè)系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測試。
?? ?工具:loadrunner(收費(fèi))、jmeter(免費(fèi))、locust(新興,需python語言基礎(chǔ))
LoadRunner最好不要漢化,容易出問題。
?安裝
(已經(jīng)有很多人出了詳細(xì)的安裝步驟,不再出了)
(不要漢化不要漢化不要漢化,容易出問題?。?/p>
參考鏈接:
安裝包下載鏈接
安裝步驟鏈接
LoadRunner簡介
?? ?①LoadRunner,是一種預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具。通過以模擬上千萬用戶實(shí)施并
?? ?發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測的方式來確認(rèn)和查找問題與瓶頸。
?? ?②LoadRunner能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測試。通過使用LoadRunner,企業(yè)能最大限度地縮
?? ?短測試時(shí)間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。
?? ?③LoadRunner是一種適用于各種體系架構(gòu)的自動(dòng)負(fù)載測試工具,它能預(yù)測系統(tǒng)行為并評(píng)估系
?? ?統(tǒng)性能,能支持廣泛的協(xié)議和技術(shù)。
?? ?一般用LR11(系統(tǒng)版本不超過win7),可以通過一定的技術(shù)手段提升用戶數(shù)(許可證)。
?? ?虛擬用戶數(shù)過多可能導(dǎo)致測試機(jī)掛掉。
Load Generator:
?? ?聯(lián)機(jī)負(fù)載
?? ?(如果一臺(tái)機(jī)器無法虛擬足夠的用戶數(shù),可以用另一臺(tái)安裝 Load Generator 負(fù)載生成器,
?? ? ? 不用安裝完整 Load Runner 程序,就可以做聯(lián)機(jī)負(fù)載。)
Virtual User Generator?? ?:腳本錄制器,編輯(像編劇一樣)
Controller?? ??? ?:控制器(像導(dǎo)演一樣)管理監(jiān)控整個(gè)過程,cpu、磁盤內(nèi)存,吞吐率、響應(yīng)時(shí)間
?? ??? ? ? ?實(shí)時(shí)監(jiān)控,動(dòng)態(tài)的
Analysis?? ??? ?:分析器??磾?shù)據(jù)有沒有問題,分析報(bào)告。
LoadRunner工作原理:
?? ?LoadRunnerAgent Process 是LoadRunner的代理進(jìn)程,
?? ?比如: 當(dāng)一臺(tái)機(jī)器需要分擔(dān)一定負(fù)載的時(shí)候,這個(gè)Process需要啟動(dòng),在安裝LoadRunner后,
?? ?默認(rèn)是打開的,可以關(guān)閉。
?? ?(導(dǎo)航欄中的小雷達(dá)圖標(biāo),是代理進(jìn)程)
????????????????
?? ?Virtual User Generator:
?? ?Virtual User Generator虛擬用戶腳本產(chǎn)生器(VuGen)
?? ?用于捕獲最終用戶業(yè)務(wù)流程和創(chuàng)建自動(dòng)性能測試腳本(也稱為虛擬用戶腳本)
?? ?Controller:
?? ?Controller:壓力調(diào)度和監(jiān)控系統(tǒng)
?? ?用于組織、驅(qū)動(dòng)、管理和監(jiān)控負(fù)載測試。
?? ?Analysis:
?? ?Analysis:結(jié)果分析工具
?? ?查看、分析和比較性能結(jié)果
LoadRounner 測試流程:
?? ?制定性能測試方案
?? ?錄制(開發(fā))測試腳本?? ?(這個(gè)步驟用 Virtual UserGenerator 實(shí)現(xiàn))
?? ?設(shè)計(jì)測試場景
?? ?執(zhí)行測試場景
?? ?監(jiān)控測試場景
?? ?分析測試結(jié)果
?? ?系統(tǒng)性能調(diào)優(yōu)
制定性能測試方案:
?? ?分析被測應(yīng)用 (系統(tǒng)硬件環(huán)境、系統(tǒng)軟件環(huán)境),包括測試機(jī)環(huán)境
?? ?確定測試目標(biāo)
?? ?設(shè)計(jì)測試
? ? 開發(fā)測試腳本:
?? ?明確通訊協(xié)議:Client與Server端的通訊的基礎(chǔ)是通訊協(xié)議,有很多支持的協(xié)議,成功錄制一個(gè)
?? ?腳本的第一步要選擇正確的協(xié)議。
?? ?有時(shí)候錄制后,沒有腳本,可能就是這個(gè)通訊協(xié)議沒有選擇正確。
?? ?錄制測試腳本
?? ?運(yùn)行測試腳本
?? ?調(diào)試測試腳本
?? ?保存測試腳本
打開lr11的飛機(jī)訂票系統(tǒng)步驟:
?? ?開始按鈕——HP LoadRunner——Samples——Start Web Server
?? ?(綠色:表明已經(jīng)起來。紅色:沒有起來。黃色:繁忙。)
?? ?開始按鈕——HP LoadRunner——Samples——HP Web Tours Application
?? ?登錄名:jojo?? ?密碼:bean
錄制腳本:
?? ?File——New...——選擇協(xié)議(重要。一般網(wǎng)站都是選Web)——點(diǎn)擊創(chuàng)建——Start Record
?? ?New Script——選擇協(xié)議(重要。一般網(wǎng)站都是選Web)——點(diǎn)擊創(chuàng)建——Start Record
設(shè)置生成用戶數(shù):
?? ?Tools——Create Controller Scenario...
Start Recording 界面含義:
?? ?Application type:應(yīng)用類型
?? ??? ?(Internet Applications B/S架構(gòu),Win32 Applications C/S架構(gòu))
?? ?Program to record:要錄制的程序(最好選擇fire fox24 ,或者是IE9)
?? ?URL Address:錄制哪個(gè)網(wǎng)站(網(wǎng)址)
?? ?Working directory:整個(gè)代碼保存到的位置
?? ?Record into Action:先選init ?? ?點(diǎn)擊錄制
錄制選項(xiàng)含義:
?? ?vuser_init?? ??? ?錄制的一般是業(yè)務(wù)流程開始之前的初始化工作(一般是登錄流程)
?? ?Action?? ??? ?錄制的一般是業(yè)務(wù)流程操作的事件(操作流程)
?? ?vuser_end?? ?錄制的一般是退出時(shí)候執(zhí)行的操作(一般是退出登錄流程)
設(shè)計(jì)測試場景
?? ?選擇場景類型:手動(dòng)場景(手動(dòng)設(shè)置虛擬用戶數(shù)量)、目標(biāo)場景(測試人員想要達(dá)到的目標(biāo)場景)
?? ?設(shè)置場景參數(shù):組名稱、腳本路徑、虛擬用戶數(shù)、負(fù)載發(fā)生器
常見問題:
?? ?1.錄制完后沒有腳本內(nèi)容。
?? ?解決:(windows)控制面板——Internet選項(xiàng)——高級(jí)——勾選 啟用第三方瀏覽器擴(kuò)展
?? ?2.錄制過程中出現(xiàn) 應(yīng)用程序已被Java安全阻止。
?? ?解決:打開 Java控制面板——安全——安全級(jí)別 調(diào)整到 中——把測試網(wǎng)址加入到 編輯站點(diǎn)列表 中——確定
?? ?3.不能打開瀏覽器或是錄制不到腳本。
?? ?1)用火狐瀏覽器可能出現(xiàn) Couldn't load XPCOM.
?? ?解釋:win7+火狐出現(xiàn)該報(bào)錯(cuò),沒辦法解決。用win7+ie9或是Firefox24.0一般不會(huì)出現(xiàn)這個(gè)問題。
?? ?2)ie11+win10/win8/win7 錄制無腳本
?? ?3)嘗試:虛擬機(jī)安裝:win7+ie9
事務(wù)與集合點(diǎn)
? ? 事務(wù)的概述:
?? ?在init、action,我們無法從這些一大段操作中找到性能的瓶頸所在,更希望獲得腳本(操作)中
?? ?的某一段的具體性能數(shù)據(jù)
?? ?如:訂票的支付過程
?? ?腳本中定義的某段操作,也可以理解成一段腳本語言
? ? ?? ?事務(wù)的作用:
?? ?LoadRunner運(yùn)行到該事務(wù)的開始點(diǎn)時(shí),LoadRunner就會(huì)開始計(jì)時(shí),直到運(yùn)行到該事務(wù)的結(jié)束點(diǎn),計(jì)時(shí)結(jié)束。這個(gè)事務(wù)的運(yùn)行時(shí)間在LoadRunner的運(yùn)行結(jié)果中會(huì)有反映。
?? ?通俗的講LoadRunner中的事務(wù)就是一個(gè)計(jì)時(shí)標(biāo)識(shí),LoadRunner在運(yùn)行過程中-旦發(fā)現(xiàn)事務(wù)的開始標(biāo)識(shí),就開始計(jì)時(shí),一旦發(fā)現(xiàn)事務(wù)的結(jié)束表示,則計(jì)時(shí)結(jié)束,這個(gè)過程中得到的時(shí)間即為一個(gè)事務(wù)時(shí)間。通常事務(wù)時(shí)間所反映的是一個(gè)操作過程的響應(yīng)時(shí)間。
?? ?
?? ?使用事務(wù)的原因:
?? ?1、事務(wù)是LoadRunner度量系統(tǒng)性能指標(biāo)的唯一手段:(沒有事務(wù)則沒有辦法衡量系統(tǒng)的響應(yīng)時(shí)間,也許有人說LoadRunner可以通過編程來計(jì)時(shí)得到,不錯(cuò)如果你編程能力夠強(qiáng)是能夠?qū)崿F(xiàn)的,但肯定不如LoadRunner中的事務(wù)用的簡單而且方便)
?? ?2、通過事務(wù)計(jì)時(shí)實(shí)現(xiàn)了不同壓力負(fù)載下的性能指標(biāo)對(duì)比
?? ?3、通過事務(wù)計(jì)時(shí)可以幫助定位性能瓶頸
?? ?事務(wù)的添加:
?? ?從性能測試的角度出發(fā),我們需要知遣不同的操作所花費(fèi)的時(shí)間,這樣我們就可以衡量不同的操作對(duì)被測系統(tǒng)所造成的影響,那么我們?nèi)绾沃啦煌牟僮魉ㄙM(fèi)的時(shí)間,這就用到了事務(wù)。
?? ?我們?cè)诓僮髦安迦胍粋€(gè)事務(wù)開始標(biāo)識(shí),在操作完成后插入一個(gè)事務(wù)結(jié)束表示,這樣我們就知道了這個(gè)操作所花費(fèi)的時(shí)間。
?? ?添加事務(wù)的方法:1、錄制時(shí)插入;2、維護(hù)腳本時(shí)操作
?? ?注意:事務(wù)名稱要見名知意
?? ?設(shè)置事務(wù)
?? ?開始事務(wù):在需要插入事務(wù)的位置 右鍵 ——Insert——Start Transaction
?? ??? ?lr_start_transaction("事務(wù)名字1");
?? ?(事務(wù)名字寫中文,到后面Analysis分析里面看,名字可能會(huì)不顯示)
?? ?結(jié)束事務(wù):在結(jié)束事務(wù)的位置 右鍵 ——Insert——End Transaction
?? ??? ?lr_end_transaction("事務(wù)名字1",LR_AUTO);
?? ??? ?(要對(duì)應(yīng)上開始的事務(wù)名,都是成對(duì)出現(xiàn)的)
? ? ? ? 可以邊錄制邊插入事務(wù):
? ? ? ? 結(jié)束事務(wù):
?? ??? ? ?? ?集合點(diǎn)的概述:
?? ?執(zhí)行負(fù)載測試時(shí),需要模擬系統(tǒng)上有較重的用戶負(fù)載。要實(shí)現(xiàn)此操作,可以執(zhí)行負(fù)載測試時(shí),同步 Vuser 以便恰好在同一時(shí)刻執(zhí)行任務(wù)。通過創(chuàng)建集合點(diǎn),可以配置多個(gè)Vuser 同時(shí)執(zhí)行操作。
?? ?當(dāng)某個(gè) Vuser 到達(dá)該集合點(diǎn)時(shí),將進(jìn)行等待,直到參與該集合的全部 Vuser都到達(dá)。指定數(shù)量的 Vuser 均到達(dá)后,釋放所有這些 Vuser。
?? ?同時(shí)加載用戶并不是真正意義的并發(fā)Irrendezvous("選票"):
?? ?定義:在需要測試并發(fā)前,所有虛擬用戶等待和集合的位置
?? ?添加集合點(diǎn)的方法:
?? ??? ?1、錄制時(shí)插入
?? ??? ?2、維護(hù)腳本時(shí)操作
?? ?集合:等到齊了,再發(fā)出請(qǐng)求。
?? ?設(shè)置集合點(diǎn):在需要插入的位置 選中菜單欄 Insert——Rendezvous...——填寫名字后OK
?? ??? ?或 在需要插入事務(wù)的位置 右鍵 ——Insert——Rendezvous...——填寫名字后OK
?? ??? ?lr_rendezvous("集合名字");
?? ?(集合名字寫中文,到后面Analysis分析里面看,名字可能會(huì)不顯示)
?? ?注意:只能向Action部分(而不是 init 或 end 部分)添加集合
? ? ? ? (集合點(diǎn)要設(shè)置在事務(wù)之前)
?? ?插入集合點(diǎn):為了衡量在加重負(fù)載的情況下的性能情況。
?? ?在計(jì)劃中,可能會(huì)要求系統(tǒng)能夠承受1000人同時(shí)提交數(shù)據(jù),在LoadRunner中可以通過在提交數(shù)據(jù)操作前面加入集合點(diǎn),這樣當(dāng)虛擬用戶運(yùn)行到提交數(shù)據(jù)的集合點(diǎn)時(shí),LoadRunner就會(huì)檢查同時(shí)有多少用戶運(yùn)行到集合點(diǎn),如果不到1000人,LoadRunner就會(huì)命令已經(jīng)到集合點(diǎn)的用戶在此等待,當(dāng)在集合點(diǎn)等待的用戶達(dá)到1000人時(shí),LoadRunner命令1000 人同時(shí)去提交數(shù)據(jù),從而達(dá)到計(jì)劃中的需求。
controller組件中實(shí)操(可以處置、控制、監(jiān)控):
創(chuàng)建場景:
虛擬10個(gè)用戶:
選中集合點(diǎn)選項(xiàng):
即使代碼中設(shè)置了集合點(diǎn),也可以在此處關(guān)閉集合點(diǎn):
?釋放策略設(shè)置
設(shè)置什么時(shí)候釋放:
①當(dāng)100%用戶都到達(dá)后,釋放集合點(diǎn)(不推薦。有些用戶登陸時(shí)出錯(cuò)、失敗,可能永遠(yuǎn)都無法到達(dá)。)
?②當(dāng)100%運(yùn)行起來的用戶都到達(dá)后,釋放集合點(diǎn)(推薦。不會(huì)等已經(jīng)登錄失敗的用戶。)
?③指定具體個(gè)數(shù)用戶到達(dá)后,釋放集合點(diǎn)(推薦。指定用戶一定要比總用戶數(shù)少。)
?
?設(shè)置超時(shí)機(jī)制(如果后面的用戶超過了30s,那就不管了,直接有多少個(gè)用戶就跑多少個(gè)。)
?設(shè)置好后點(diǎn)擊OK,保存設(shè)置?
運(yùn)行效果(此圖有6個(gè)已經(jīng)到達(dá)集合點(diǎn)),當(dāng)?shù)竭_(dá)設(shè)置個(gè)數(shù)(10個(gè)用戶)時(shí),Rendez會(huì)立馬釋放變成0,Run會(huì)變成10
?? ?思考時(shí)間(think-time)的概述:
?? ?在錄制腳時(shí),我們一般會(huì)選擇記錄思考時(shí)間 record think time,LoadRunner做為性能測試工具,錄制時(shí)記錄的是客戶端和服務(wù)端的交互,如果要精確模擬用戶的行為,那么客戶操作客戶端時(shí)花費(fèi)了很多時(shí)間要怎么模擬呢?
?? ?錄入填寫提交的內(nèi)容,從列表中下拉搜索選擇特定的值等,這時(shí)LoadRunner不會(huì)記錄用戶的客戶端操作,而是記錄了用戶這段時(shí)間,成為思考時(shí)間(Think-time),因?yàn)橛脩舻倪@些客戶端操作不會(huì)影響服務(wù)端,只是讓服務(wù)器端在這段時(shí)間內(nèi)沒有請(qǐng)求而已
?? ?所以加入思考時(shí)間就能模擬出熟練的或者生疏的用戶操作,接近實(shí)際對(duì)于服務(wù)端的壓力。
? ? 設(shè)置思考時(shí)間(假設(shè)是5s的思考時(shí)間):lr_think_time(5)
? ? 為什么設(shè)置了思考時(shí)間,會(huì)感覺沒有設(shè)置一樣?
? ? 因?yàn)樵O(shè)置了忽略思考時(shí)間。
設(shè)置思考時(shí)間機(jī)制:
①忽略思考時(shí)間:
?忽略思考時(shí)間比沒有忽略思考時(shí)間,對(duì)服務(wù)器造成的更大。
②設(shè)置成隨機(jī)波動(dòng)的思考時(shí)間
(假設(shè)思考時(shí)間為5s,那就是在2.5s-7.5s間波動(dòng))
?
事務(wù)與集合點(diǎn)聯(lián)合
????????綜上所訴:虛擬用戶集合過程是在login事務(wù)開始計(jì)算響應(yīng)時(shí)間之前,所有統(tǒng)計(jì)出來的時(shí)間更能反映login事務(wù)的真實(shí)平均事務(wù)響應(yīng)時(shí)間;action事務(wù)時(shí)間基本不發(fā)生變化。
????????在性能測試項(xiàng)目中,遇到事務(wù)與集合點(diǎn)放置順序問題時(shí),需要將集合點(diǎn)插在開始事務(wù)之前。
? ?文章來源:http://www.zghlxwxcb.cn/news/detail-770436.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-770436.html
到了這里,關(guān)于LoadRunner(一)(安裝、簡介、工作原理、測試流程、事務(wù)與集合點(diǎn)、思考時(shí)間)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!