版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2011 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice2011 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without noticeHP LoadRunner產(chǎn)品培訓(xùn)何康鑫中國(guó)惠普HP LoadRunner LoadRunner LoadRunner簡(jiǎn)介簡(jiǎn)介2 性能測(cè)試簡(jiǎn)
2、介性能測(cè)試簡(jiǎn)介1 LoadRunner LoadRunner測(cè)試測(cè)試流程流程3性能測(cè)試簡(jiǎn)介性能性能測(cè)試相關(guān)測(cè)試相關(guān)術(shù)語(yǔ):術(shù)語(yǔ):響應(yīng)時(shí)間、并發(fā)用戶(hù)數(shù)、事務(wù)響應(yīng)時(shí)間、吞吐量、TPS(每秒事務(wù)數(shù))、性能計(jì)數(shù)器等。性能測(cè)試性能測(cè)試方法:方法:負(fù)載測(cè)試、壓力測(cè)試、疲勞測(cè)試、可靠性測(cè)試等。應(yīng)用應(yīng)用領(lǐng)域:領(lǐng)域:性能驗(yàn)證、性能調(diào)優(yōu)、缺陷發(fā)現(xiàn)、容量規(guī)劃。性能測(cè)試工具架構(gòu):性能測(cè)試工具架構(gòu):一般包括以下部件:虛擬用戶(hù)腳本產(chǎn)生器(Virtual User Generator)、壓力產(chǎn)生器(LG)、壓力調(diào)度和監(jiān)控系統(tǒng)(Controller)、壓力結(jié)果分析工具(Analysis)。 性能性能測(cè)試測(cè)試是利用產(chǎn)品、人員和流
3、程來(lái)降低應(yīng)用程序、升級(jí)程序或補(bǔ)丁程序部署風(fēng)險(xiǎn)的一種手段。性能測(cè)試的主要思想是通過(guò)產(chǎn)生模擬真實(shí)業(yè)務(wù)的壓力對(duì)被測(cè)系統(tǒng)進(jìn)行加壓,研究被測(cè)系統(tǒng)在不同壓力情況下的表現(xiàn),找出其潛在的瓶頸。LoadRunner簡(jiǎn)介 HP LoadRunner是是評(píng)估評(píng)估系統(tǒng)系統(tǒng)行為和性能的負(fù)載測(cè)試工具。行為和性能的負(fù)載測(cè)試工具。它通過(guò)模擬實(shí)際用戶(hù)的操作行為和實(shí)時(shí)性能指標(biāo)監(jiān)測(cè),來(lái)幫助測(cè)試人員更快的查找和發(fā)現(xiàn)問(wèn)題。LoadRunner適用于各種體系架構(gòu),能支持廣泛的協(xié)議和技術(shù),為測(cè)試的特殊環(huán)境提供特殊的解決方案。通過(guò)使用LoadRunner,企業(yè)能最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能并加速應(yīng)用系統(tǒng)的發(fā)布周期。 LoadRunner
4、主要分為3個(gè)模塊,這3個(gè)模塊既可以作為獨(dú)立的工具分別完成各自的功能,又可以作為L(zhǎng)oadRunner的一部分彼此銜接,與其他模塊共同完成軟件性能的整體測(cè)試。這3個(gè)模塊分別是: Virtual User Generator 用于錄制性能測(cè)試用于錄制性能測(cè)試腳本腳本 LoadRunner Controller 用于創(chuàng)建、運(yùn)行和監(jiān)控用于創(chuàng)建、運(yùn)行和監(jiān)控場(chǎng)景場(chǎng)景 LoadRunner Analysis 用于分析性能測(cè)試用于分析性能測(cè)試結(jié)果結(jié)果 LoadRunner的安裝過(guò)程比較簡(jiǎn)單,運(yùn)行setup.exe,點(diǎn)擊“LoadRunner完整安裝”,按照向?qū)е鸩桨惭b就可以了。 提示:建議安裝過(guò)程關(guān)閉360等殺
5、毒軟件。否則可能出現(xiàn)安裝后,用Controller創(chuàng)建場(chǎng)景報(bào)錯(cuò):Failed to Connect to LoadRunner Controller,控制器無(wú)法使用。HP LoadRunner 工作流程5分析, 診斷和報(bào)告數(shù)據(jù)庫(kù)Internet/WAN中間層(HTTP, WebSphere, Server, Network)應(yīng)用最終用戶(hù)模擬成百上千用戶(hù)錄制交易“轉(zhuǎn)賬”“查詢(xún)余額”“付款”開(kāi)發(fā)腳本1測(cè)試場(chǎng)景計(jì)劃和控制負(fù)載2產(chǎn)生負(fù)載3評(píng)估影響4LoadRunner簡(jiǎn)介L(zhǎng)oadRunner LoadRunner 常用術(shù)語(yǔ)常用術(shù)語(yǔ): :1.場(chǎng)景場(chǎng)景(Scenario):場(chǎng)景即測(cè)試場(chǎng)景。在LoadRun
6、ner的Controller部件中,可以設(shè)計(jì)與執(zhí)行用例的場(chǎng)景,設(shè)置場(chǎng)景的步驟主要包括:在Controller中選擇虛擬用戶(hù)腳本、設(shè)置虛擬用戶(hù)數(shù)量、配置虛擬用戶(hù)運(yùn)行時(shí)的行為、選擇負(fù)載發(fā)生器(Load Generator)、設(shè)置執(zhí)行時(shí)間等。 2.負(fù)載發(fā)生器負(fù)載發(fā)生器(Load Generator):用來(lái)產(chǎn)生壓力的機(jī)器,受Controller控制,可以使用戶(hù)腳本在不同的主機(jī)上執(zhí)行。在性能測(cè)試工作中,通常由一個(gè)Controller控制多個(gè)Load Generator以對(duì)被測(cè)試系統(tǒng)進(jìn)行加壓。 3.虛擬用戶(hù)虛擬用戶(hù)(Virtual User/Vuser):對(duì)應(yīng)于現(xiàn)實(shí)中的真實(shí)用戶(hù),使用LoadRunner模
7、擬的用戶(hù)稱(chēng)為虛擬用戶(hù)。性能測(cè)試模擬多個(gè)用戶(hù)操作可以理解為:這些虛擬用戶(hù)跑腳本的過(guò)程,是模擬多個(gè)真正用戶(hù)的交易行為。 4.虛擬用戶(hù)腳本虛擬用戶(hù)腳本(Vuser script):通過(guò)Vuser Generator錄制或開(kāi)發(fā)的腳本。這些腳本用來(lái)模擬用戶(hù)的行為。 LoadRunner簡(jiǎn)介5.事務(wù)事務(wù)(Transaction):測(cè)試人員可以將一個(gè)或多個(gè)操作步驟定義為一個(gè)事務(wù)。在程序上,事務(wù)表現(xiàn)為被開(kāi)始標(biāo)記和結(jié)束標(biāo)記圈定的一段代碼段。Loadrunner根據(jù)事務(wù)的開(kāi)頭和結(jié)尾標(biāo)記,計(jì)算事務(wù)響應(yīng)時(shí)間、成功/失敗的事務(wù)數(shù)。6.思考時(shí)間思考時(shí)間(Think Time):即請(qǐng)求間的停頓時(shí)間。實(shí)際中,用戶(hù)在進(jìn)行一個(gè)操
8、作后往往會(huì)停頓然后再進(jìn)行下一個(gè)操作,為了更真實(shí)的模擬這種用戶(hù)行為而引進(jìn)該概念。在虛擬用戶(hù)腳本中用函數(shù)lr_think_time()來(lái)模擬用戶(hù)處理過(guò)程,執(zhí)行該函數(shù)時(shí)用戶(hù)線(xiàn)程會(huì)按照相應(yīng)的time值進(jìn)行等待。 7.集合點(diǎn)集合點(diǎn)(Rendezvous):設(shè)集合點(diǎn)是為了更好模擬并發(fā)操作。設(shè)了集合點(diǎn)后,運(yùn)行過(guò)程中用戶(hù)可以在集合點(diǎn)等待到一定條件后再一起發(fā)后續(xù)的請(qǐng)求。集合點(diǎn)在虛擬用戶(hù)腳本中對(duì)應(yīng)函數(shù)lr_rendezvous() 。 8.事務(wù)響應(yīng)時(shí)間事務(wù)響應(yīng)時(shí)間:事務(wù)響應(yīng)時(shí)間是一個(gè)統(tǒng)計(jì)量,是評(píng)價(jià)系統(tǒng)性能的重要參數(shù)。定義好事務(wù)后,在場(chǎng)景執(zhí)行過(guò)程和測(cè)試結(jié)果分析中即可以看到對(duì)應(yīng)事務(wù)的響應(yīng)時(shí)間。通過(guò)對(duì)關(guān)鍵或核心事務(wù)的執(zhí)
9、行情況進(jìn)行分析,以定位是否存在性能問(wèn)題。 LoadRunner測(cè)試流程第一步第二步第三步第四步第五步規(guī)劃測(cè)試(計(jì)劃、用例)創(chuàng)建腳本設(shè)計(jì)場(chǎng)景運(yùn)行場(chǎng)景分析結(jié)果LoadRunner測(cè)試流程規(guī)劃測(cè)試規(guī)劃測(cè)試 確定測(cè)試要求,如并發(fā)用戶(hù)數(shù)量、典型業(yè)務(wù)場(chǎng)景流程;測(cè)試計(jì)劃;設(shè)計(jì)用例;創(chuàng)建創(chuàng)建VuserVuser腳本腳本 使用Virtual User Generator錄制、編輯和完善測(cè)試腳本。 設(shè)計(jì)設(shè)計(jì)場(chǎng)景場(chǎng)景 使用LoadRunner Controller 設(shè)置測(cè)試場(chǎng)景。運(yùn)行場(chǎng)景運(yùn)行場(chǎng)景 使用LoadRunner Controller 驅(qū)動(dòng)、管理并監(jiān)控場(chǎng)景的運(yùn)行。分析結(jié)果分析結(jié)果 使用LoadRunner
10、Analysis 生成報(bào)告和圖表并評(píng)估性能。規(guī)劃測(cè)試 好的測(cè)試規(guī)劃,能夠指導(dǎo)整個(gè)測(cè)試過(guò)程,以更好的收集到測(cè)試目標(biāo)要求的性能數(shù)據(jù)。規(guī)劃可以包括測(cè)試的計(jì)劃、用例的設(shè)計(jì)、場(chǎng)景的設(shè)計(jì)、性能計(jì)數(shù)器設(shè)置的設(shè)計(jì)等。 以下列出幾點(diǎn)規(guī)劃事項(xiàng): 1 1. .測(cè)試用例:測(cè)試用例:測(cè)試用例一般根據(jù)需要測(cè)試的功能進(jìn)行設(shè)計(jì),如,一個(gè)典型的測(cè)試過(guò)程用例為:進(jìn)入登錄頁(yè)面-填用戶(hù)名密碼,登錄-單擊新增按鈕-填寫(xiě)門(mén)店信息,保存。 2. 2.場(chǎng)景設(shè)計(jì):場(chǎng)景設(shè)計(jì):一般情況會(huì)設(shè)計(jì)兩種加壓方式進(jìn)行測(cè)試:瞬時(shí)加壓(多人同時(shí)進(jìn)行某項(xiàng)業(yè)務(wù)操作)與逐漸加壓(多人先后進(jìn)行某項(xiàng)業(yè)務(wù)操作,操作時(shí)間間隔根據(jù)計(jì)劃設(shè)定)。 3.3.性能計(jì)數(shù)器方面:性能計(jì)數(shù)
11、器方面:可以收集CPU時(shí)間、內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)參數(shù)、weblogic參數(shù)、websphere參數(shù)等。 創(chuàng)建Vuser腳本步驟 Loadrunner Loadrunner腳本開(kāi)發(fā)步驟:腳本開(kāi)發(fā)步驟: 錄制基本腳本增強(qiáng)/調(diào)試腳本設(shè)置運(yùn)行時(shí)設(shè)置運(yùn)行腳本穩(wěn)定腳本創(chuàng)建Vuser腳本錄制基本腳本1.1.啟動(dòng)啟動(dòng)LoadRunnerLoadRunner選擇開(kāi)始程序 HPLoadRunnerLoadRunner,打開(kāi)HP LoadRunner窗口。2.2.打開(kāi)打開(kāi)VuGenVuGen在LoadRunner Launcher窗格中,單擊Create/Edit Scripts,鏈接啟動(dòng)Virtual use
12、r Generator起始頁(yè)。創(chuàng)建Vuser腳本錄制基本腳本3.3.創(chuàng)建一個(gè)空白創(chuàng)建一個(gè)空白WebWeb腳本腳本選擇FileNew菜單,或點(diǎn)擊 按鈕,打開(kāi)New Virtual User對(duì)話(huà)框,顯示可供選擇腳本的協(xié)議。對(duì)于常用的應(yīng)用軟件,我們可以根據(jù)被測(cè)應(yīng)用是B/S結(jié)構(gòu)還是C/S結(jié)構(gòu)來(lái)選擇協(xié)議。根據(jù)選擇協(xié)議的不同,Virtual User Generator 會(huì)使用不同的方式和界面引導(dǎo)用戶(hù)完成腳本的錄制創(chuàng)建Vuser腳本錄制基本腳本4.4.錄制前的設(shè)置錄制前的設(shè)置選擇Web(HTTP/HTML),點(diǎn)擊Create按鈕,打開(kāi)Start Recording對(duì)話(huà)框。選擇的協(xié)議不同,打開(kāi)的窗口就會(huì)不同
13、,實(shí)例是針對(duì)Web錄制的對(duì)話(huà)框。 VuGen的腳本分為三個(gè)部分:Vuser_init,Action,Vuser_end。其中Vuser_init和Vuser_end都只能存在一個(gè),而Action可以有多個(gè),可以通過(guò)點(diǎn)擊旁邊的【new】按鈕來(lái)創(chuàng)建Action。在迭代執(zhí)行測(cè)試腳本時(shí),Vuser_init和Vuser_end中的內(nèi)容只會(huì)執(zhí)行一次,迭代的是Action部分。創(chuàng)建Vuser腳本錄制基本腳本在Start Recording對(duì)話(huà)框,點(diǎn)擊Options按鈕,進(jìn)入錄制選項(xiàng)設(shè)置。一般要設(shè)置以下選項(xiàng):1)RecordingHTTP/HTML level中設(shè)置腳本的顯示形式:URL_based scr
14、ipt。2)AdvancedSupport charset中設(shè)置編碼格式:UTF-8; 基于瀏覽器的應(yīng)用程序推薦使用HTML-based script。 不是基于瀏覽器的應(yīng)用程序推薦使用URL-based script。 基于瀏覽器的應(yīng)用程序中包含了JavaScript,并且該腳本向服務(wù)器發(fā)送了請(qǐng)求,比如DataGrid的分頁(yè)按鈕等,推薦使用URL-based script。 基于瀏覽器的應(yīng)用程序中使用了HTTPS安全協(xié)議,建議使用URL-based script。 提示:錄制Web腳本時(shí),生成的腳本中存在亂碼該如何解決? 新建腳本-選擇協(xié)議(Http)-選項(xiàng)-高級(jí)-選擇“支持字符集”并點(diǎn)選“
15、UTF-8”。 在回放腳本之前:Vuser-運(yùn)行時(shí)設(shè)置-瀏覽器-瀏覽器仿真-更改-使用瀏覽器-語(yǔ)言下來(lái)選擇 “中文(中國(guó))”。創(chuàng)建Vuser腳本錄制基本腳本5.5.錄制錄制 在Start Recording對(duì)話(huà)框,點(diǎn)擊OK按鈕,開(kāi)始錄制。系統(tǒng)自動(dòng)彈出IE,加載營(yíng)銷(xiāo)系統(tǒng)的登錄界面。 在錄制的過(guò)程中,屏幕上有一個(gè)懸浮的錄制工具欄,是腳本錄制過(guò)程中測(cè)試人員和VuGen交互的主要平臺(tái)。熟悉錄制腳本工具欄:熟悉錄制腳本工具欄:創(chuàng)建Vuser腳本錄制基本腳本登錄系統(tǒng)新增門(mén)店注銷(xiāo) 通過(guò)操作被測(cè)系統(tǒng),操作的每一個(gè)步驟都被記錄,在錄制的過(guò)程中,可以在相應(yīng)的步驟插入action、事務(wù)、檢查點(diǎn)、集合點(diǎn)等信息。錄制完
16、成后單擊 按鈕,Loadrunner開(kāi)始生成腳本,生成的腳本如圖所示。 熟悉兩種腳本查看方式:熟悉兩種腳本查看方式:Script View 可以查看全部錄制的腳本代碼(右圖)Tree View 可以查看每個(gè)URL獲取來(lái)的頁(yè)面(左圖)Tree ViewScript View創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本1.1.插入事務(wù)插入事務(wù) 插入事務(wù)是用于把功能分為若干部分,在統(tǒng)計(jì)性能指標(biāo)時(shí),可以對(duì)不同的事務(wù)分別作統(tǒng)計(jì)。如果對(duì)腳本不是太熟悉,可以在錄制的時(shí)候,逐步插入。也可以在錄制完成之后,在腳本中插入。 在錄制時(shí)插入操作為:在錄制時(shí)插入操作為:錄制某個(gè)功能開(kāi)始前單擊插入事務(wù)的起始點(diǎn)錄制,直到某個(gè)功能結(jié)束插
17、入事務(wù)的結(jié)束點(diǎn)。 在腳本的插入方式為:在腳本的插入方式為:插入事務(wù)起始點(diǎn):?jiǎn)螕裟硞€(gè)功能起始前的空白處右鍵鼠標(biāo)insertstart transaction命名OK。系統(tǒng)自動(dòng)在腳本語(yǔ)句中插入如下語(yǔ)句:lr_start_transaction(登錄);插入事務(wù)結(jié)束點(diǎn):?jiǎn)螕裟硞€(gè)功能結(jié)束后的空白處右鍵鼠標(biāo)insertend transaction命名(與起始點(diǎn)的名字一致)OK。系統(tǒng)自動(dòng)在腳本語(yǔ)句中插入如下語(yǔ)句:lr_end_transaction(登錄,LR_AUTO);例如分別設(shè)置兩個(gè)事務(wù):登錄、新增門(mén)店。通過(guò)檢查運(yùn)行日志來(lái)確定Transaction的執(zhí)行結(jié)果創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本2.2.
18、參數(shù)化參數(shù)化 參數(shù)化的作用是在進(jìn)行場(chǎng)景執(zhí)行的時(shí)候,每個(gè)不同的虛擬用戶(hù)可以按照參數(shù)的讀取策略讀取到參數(shù)值,以模擬不同用戶(hù)提交或者讀取不同的數(shù)據(jù)。 每個(gè)用戶(hù)在界面上讀取和提交的信息都不太相同,因此一般都需要參數(shù)化,其它與輸入信息對(duì)應(yīng)的比如用戶(hù)id之類(lèi)的信息也需要參數(shù)化;下面將分四部分來(lái)介紹參數(shù)化的方法和實(shí)施過(guò)程: 確定需要參數(shù)化的常量確定需要參數(shù)化的常量 準(zhǔn)備數(shù)據(jù)準(zhǔn)備數(shù)據(jù) 對(duì)腳本進(jìn)行參數(shù)化對(duì)腳本進(jìn)行參數(shù)化 還原初始字符串還原初始字符串創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本 確定需要參數(shù)化的常量確定需要參數(shù)化的常量 打開(kāi)腳本后,首先要確定哪些常量需要參數(shù)化。 可以看出,在web_submit_data函數(shù)
19、中,兩條語(yǔ)句包含了兩個(gè)常量:UserNumber和密碼。 Name=txtUserNumber, Value=220999, ENDITEM, Name=txtPassword, Value=888888, ENDITEM, 當(dāng)我們想模擬多個(gè)不同的用戶(hù)來(lái)運(yùn)行登錄腳本的時(shí)候,需要對(duì)Value=220999和Value=888888進(jìn)行參數(shù)化。 另外,新增門(mén)店的腳本代碼中,門(mén)店名稱(chēng)具有必填+唯一的屬性,也需要做參數(shù)化設(shè)置。其它還有哪些常量需要參數(shù)化,可以根據(jù)業(yè)務(wù)場(chǎng)景來(lái)確定。創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本準(zhǔn)備數(shù)據(jù)準(zhǔn)備數(shù)據(jù) 根據(jù)實(shí)例,我們需要準(zhǔn)備門(mén)店號(hào)、密碼、門(mén)店名稱(chēng)這三個(gè)參數(shù)的數(shù)據(jù)。對(duì)于門(mén)店號(hào)門(mén)店
20、號(hào)和密碼密碼,我們準(zhǔn)備下述可以直接登錄系統(tǒng)的帳號(hào)數(shù)據(jù):220999 888888210996 888888220995 888888210998 888888220990 888888220997 888888220991 888888210993 888888220994 888888220992 888888對(duì)于門(mén)店名稱(chēng)門(mén)店名稱(chēng),我們準(zhǔn)備下述不同的名稱(chēng):天河城東門(mén)店廣百百貨體育西路店正佳廣場(chǎng)店天河城旗艦店體育西路門(mén)店石牌橋分店崗頂旗艦店天河北路分店體育東路店珠江新城總店創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本對(duì)腳本進(jìn)行參數(shù)化對(duì)腳本進(jìn)行參數(shù)化以門(mén)店號(hào)參數(shù)化為例,參數(shù)化過(guò)程如下:1)選中220999右
21、擊鼠標(biāo)在右鍵菜單上選擇replace with a parameter。2)在彈出窗口填寫(xiě)參數(shù)名稱(chēng),或選擇一個(gè)已經(jīng)存在的參數(shù)名。常用的參數(shù)類(lèi)型:常用的參數(shù)類(lèi)型:Data/Time:使用當(dāng)前日期/時(shí)間替換所選常量。Group Name:使用Vuser組的名稱(chēng)替換所選常量。Load Generator Name:使用Vuser腳本的負(fù)載發(fā)生器名替換所選常量。Iteration Number:使用當(dāng)前的迭代編號(hào)替換所選常量。Random Number:使用一個(gè)隨機(jī)生成的整數(shù)替換所選常量,可以通過(guò)參數(shù)屬性設(shè)定參數(shù)的范圍。Unique Number:使用一個(gè)唯一編號(hào)替換所選常量,可以通過(guò)參數(shù)屬性設(shè)定參數(shù)
22、的第一個(gè)值和遞增的規(guī)則。Vuser ID:使用運(yùn)行腳本的虛擬用戶(hù)ID來(lái)代替選擇的常量。File:采用外部的數(shù)據(jù)來(lái)代替,可以使用單獨(dú)的文件,也可以使用現(xiàn)成的數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)。User Defined Function:從用戶(hù)開(kāi)發(fā)的dll文件中獲取數(shù)據(jù)。實(shí)例中填寫(xiě)參數(shù)名稱(chēng):UserNumber;選擇參數(shù)類(lèi)型File,來(lái)寫(xiě)入已準(zhǔn)備好的數(shù)據(jù)。創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本3)單擊窗口的properties按鈕,設(shè)置parameter的properties。文件文件File:參數(shù)化結(jié)束后,腳本保存的根目錄下會(huì)自動(dòng)生成一個(gè) 以參數(shù)名稱(chēng)命名的 參數(shù)文件;也可以直接選擇一個(gè)已準(zhǔn)備好的參數(shù)文件。選擇參數(shù)列選擇
23、參數(shù)列Select Column:By number:以列號(hào)為參數(shù)列。By name:以列名為參數(shù)列。文件格式:文件格式: Column:參數(shù)之間的分隔符:逗號(hào)、空格、Tab。 First data:從第幾行讀取數(shù)據(jù)。選擇參數(shù)分配方法選擇參數(shù)分配方法Select next row:Sequential:順序的分配Vuser參數(shù)值。當(dāng)正在運(yùn)行的Vuser訪(fǎng)問(wèn)數(shù)據(jù)表格時(shí),它將會(huì)提取下一個(gè)可用的數(shù)據(jù)行。Random:當(dāng)腳本開(kāi)始運(yùn)行時(shí),“隨機(jī)”的為每個(gè)Vuser分配一個(gè)數(shù)據(jù)表格中的隨機(jī)值。Unique:為Vuser的參數(shù)分配一個(gè)“唯一”的順序值。注意,參數(shù)數(shù)量一定要大于等于“Vuser量*迭代數(shù)量”。
24、選擇參數(shù)更新方法選擇參數(shù)更新方法Update value on:Each iteration:腳本每次迭代都順序的使用數(shù)據(jù)表格中的下一個(gè)新值。Each occurrence:在迭代中只要遇到該參數(shù)就重新取值。Once:在所有的迭代中都使用同一個(gè)值。當(dāng)超出范圍時(shí)當(dāng)超出范圍時(shí)When out of values:(選擇數(shù)據(jù)為:(選擇數(shù)據(jù)為unique時(shí)才可用到)時(shí)才可用到)Abort Vuser:中止。Continue in a cyclic manner:繼續(xù)循環(huán)取值。Continue with last value:取最后一個(gè)值。 設(shè)置完成后,被參數(shù)化的值會(huì)被參數(shù)名代替。實(shí)例中設(shè)置參數(shù)名為Us
25、erNumber,腳本原先220999部分變?yōu)榱俗霞t色的UserNumber。 創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本還原初始字符串還原初始字符串 通過(guò)VuGen,可以還原最初錄制的字符串從而撤消參數(shù)化。方法為:在腳本視圖中,右鍵單擊該參數(shù)并選擇“Restore original value()”。 設(shè)置完成后,該參數(shù)被還原為初始字符串。實(shí)例中的參數(shù)UserNumber,被還原為初始的220999。 創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本3.3.插入集合點(diǎn)插入集合點(diǎn)腳本運(yùn)行時(shí),只有當(dāng)?shù)竭_(dá)集合點(diǎn)的虛擬用戶(hù)數(shù)滿(mǎn)足設(shè)置要求時(shí),才會(huì)繼續(xù)往下運(yùn)行。 插入集合點(diǎn)可以在錄制的時(shí)候,逐步插入,也可以在錄制完成之后,在腳本
26、中插入。需要注意的是,集合點(diǎn)只能插入Action部分的腳本中,不能插入vuser_init和vuser_end兩部分腳本中。 在錄制時(shí)插入操作為在錄制時(shí)插入操作為:錄制某個(gè)功能開(kāi)始前單擊插入集合點(diǎn)命名OK 在腳本的插入方式為:在腳本的插入方式為:?jiǎn)螕粜枰迦爰宵c(diǎn)的功能開(kāi)始前的空白處右鍵鼠標(biāo)insert rendezvous命名OK。 系統(tǒng)自動(dòng)在腳本語(yǔ)句中插入如下語(yǔ)句:lr_rendezvous(新增門(mén)店);創(chuàng)建Vuser腳本增強(qiáng)/編輯腳本4 4. .其他其他 前面講解了插入事務(wù)、插入集合點(diǎn)、參數(shù)化插入事務(wù)、插入集合點(diǎn)、參數(shù)化的方法,一般的腳本都需要做以上幾項(xiàng)的修改工作。此外,還可以通過(guò)插入注
27、釋、插入檢查點(diǎn)來(lái)完善腳本。 插入注釋?zhuān)翰迦胱⑨專(zhuān)涸谀_本中插入注釋?zhuān)梢郧逦业叫枰薷牡奈恢?,增?qiáng)腳本的可讀性。 插入檢查點(diǎn):插入檢查點(diǎn):在腳本中設(shè)置檢查點(diǎn)函數(shù),將返回值的結(jié)果反映在Controller的狀態(tài)面板上和Analysis統(tǒng)計(jì)結(jié)果中,由此可以判斷數(shù)據(jù)傳遞的正確性。 設(shè)置回放的運(yùn)行時(shí)刻設(shè)置Run-time SettingsRun LogicPacingLogThink TimeMiscellaneousSpeed SimulationBrowser EmulationProxyPreferencesContentCheckall protocolsWeb獨(dú)有創(chuàng)建Vuser腳本配置運(yùn)行時(shí)
28、設(shè)置 在VuGen中,選擇 VuserRun-time Settings,可以設(shè)定腳本回放過(guò)程的一些參數(shù)。如Iteration Count (迭代次數(shù))、Think Time (思考時(shí)間)、Error Handling(錯(cuò)誤處理)、Multithreading(運(yùn)行方式)等。1 1.Iteration Count (.Iteration Count (迭代迭代次數(shù)次數(shù)) ) 選擇General:Run Logic 說(shuō)明:設(shè)定每個(gè)Action的迭代次數(shù)。創(chuàng)建Vuser腳本配置運(yùn)行時(shí)設(shè)置2 2.Think Time (.Think Time (思考時(shí)間思考時(shí)間) ) 選擇General:Think
29、 Time 說(shuō)明:設(shè)定腳本回放時(shí)對(duì)思考時(shí)間的處理方式。Ignore think timeIgnore think time腳本回放時(shí),將不執(zhí)行l(wèi)r_think_time()函數(shù),這樣會(huì)給服務(wù)器產(chǎn)生更大的壓力。Replay think timeReplay think time腳本回放時(shí),執(zhí)行l(wèi)r_think_time()函數(shù),具體執(zhí)行方式有一下3種:1)按照錄制時(shí)獲取的think time值回放。2)按照錄制時(shí)獲取值的整數(shù)倍數(shù)回放腳本。3)制定一個(gè)最大和最小的比例,按照兩者之間的隨機(jī)值回放腳本。Limit think time to 選項(xiàng),用于限制think time的最大值,腳本回放過(guò)程中,
30、如果發(fā)現(xiàn)有超過(guò)這個(gè)值的,用這個(gè)最大值替代。創(chuàng)建Vuser腳本配置運(yùn)行時(shí)設(shè)置3 3.Error Handling(.Error Handling(錯(cuò)誤處理錯(cuò)誤處理) ) 選擇General:Miscellaneous 說(shuō)明:設(shè)定遇到錯(cuò)誤時(shí)的處理方式。Continue on errorContinue on error遇到錯(cuò)誤時(shí)繼續(xù)運(yùn)行。Fail open transactions on Fail open transactions on lr_error_messagelr_error_message執(zhí)行到事務(wù)中調(diào)用的lr_error_message()函數(shù)時(shí)將事務(wù)的結(jié)果置為Failed。Gen
31、erate snapshot on errorGenerate snapshot on error對(duì)錯(cuò)誤進(jìn)行快照。4.4.Multithreading(Multithreading(運(yùn)行方式運(yùn)行方式) ) 選擇 General:Miscellaneous 說(shuō)明:設(shè)定腳本是以多線(xiàn)程方式運(yùn)行還是以多進(jìn)程方式運(yùn)行。創(chuàng)建Vuser腳本試運(yùn)行腳本1.腳本錄制完畢后,點(diǎn)擊菜單中的 按鈕,可以試運(yùn)行腳本?;胤胚^(guò)程中VuGen在下方同步顯示日志。2.如果需要查看不同的日志形式,可以在腳本頁(yè)面菜單的vuserruntime-settingslog選擇不同的項(xiàng),回放腳本時(shí)將顯示不同級(jí)別的日志。創(chuàng)建Vuser腳本試
32、運(yùn)行腳本3.運(yùn)行結(jié)束后,系統(tǒng)會(huì)給出相應(yīng)的運(yùn)行結(jié)果,可以通過(guò)ViewTest Results查看回放結(jié)果。 在VuGen中試運(yùn)行腳本的作用,主要是查看錄制的腳本能否正常通過(guò),如果有問(wèn)題,系統(tǒng)會(huì)給出提示信息,并定位到出錯(cuò)的行上,便于用戶(hù)查找到錯(cuò)誤,修改完善測(cè)試腳本。常用的腳本調(diào)試的工具 Test Results window Execution Log Snapshot Results window Page View Server Response Client Request Run-Time Viewer定義場(chǎng)景 腳本準(zhǔn)備完成后,可以根據(jù)場(chǎng)景用例設(shè)置場(chǎng)景。Controller控制器提供了手動(dòng)
33、和面向目標(biāo)兩種測(cè)試場(chǎng)景。 手動(dòng)設(shè)計(jì)場(chǎng)景手動(dòng)設(shè)計(jì)場(chǎng)景(Manual Scenario)最大的優(yōu)點(diǎn)是能夠更靈活地按照需求來(lái)設(shè)計(jì)場(chǎng)景模型,使場(chǎng)景能更好地接近用戶(hù)的真實(shí)使用。一般情況下使用手動(dòng)場(chǎng)景設(shè)計(jì)方法來(lái)設(shè)計(jì)場(chǎng)景。 面向目標(biāo)場(chǎng)面向目標(biāo)場(chǎng)景景(Goal Oriented Scenario)則是測(cè)試性能是否能達(dá)到預(yù)期的目標(biāo),在能力規(guī)劃和能力驗(yàn)證的測(cè)試過(guò)程中經(jīng)常使用。 本次介紹手動(dòng)設(shè)計(jì)場(chǎng)景的下述幾個(gè)步驟: 創(chuàng)建場(chǎng)景創(chuàng)建場(chǎng)景 設(shè)置設(shè)置scheduleschedule 設(shè)置集合點(diǎn)設(shè)置集合點(diǎn) 多機(jī)聯(lián)合產(chǎn)生負(fù)載多機(jī)聯(lián)合產(chǎn)生負(fù)載 設(shè)置設(shè)置IPIP欺騙欺騙 設(shè)置負(fù)載均衡設(shè)置負(fù)載均衡 設(shè)置設(shè)置WindowsWindow
34、s資源監(jiān)控器資源監(jiān)控器Scenario 類(lèi)型 定義場(chǎng)景創(chuàng)建場(chǎng)景 Controller控制器可以從程序中打開(kāi),然后選擇保存好的腳本;也可以從VuGen中直接連接到該腳本的控制場(chǎng)景。步驟如下:1.打開(kāi)controller手動(dòng)場(chǎng)景設(shè)計(jì)2.在彈出窗口選擇虛擬用戶(hù)數(shù)、運(yùn)行結(jié)果保存目錄(按照事先約定選擇目錄,結(jié)果文件的命名最好包含用戶(hù)數(shù)/加壓方式/場(chǎng)景名)、負(fù)載產(chǎn)生的負(fù)載機(jī)所在地。 定義場(chǎng)景創(chuàng)建場(chǎng)景3.在Create Scenario窗口中點(diǎn)擊OK,鏈接啟動(dòng)LoadRunner Controller。 定義場(chǎng)景設(shè)置Schedule1.1.設(shè)置設(shè)置場(chǎng)景的基本場(chǎng)景的基本信息信息 Schedule Name S
35、chedule Name:設(shè)置場(chǎng)景名稱(chēng)。 Schedule bySchedule by:選擇按場(chǎng)景計(jì)劃或按用戶(hù)組計(jì)劃。 Run ModeRun Mode: basic schedule 是我們以前用的經(jīng)典模式,只能設(shè)置一次負(fù)載的上升和下降。 在Controller的Scenario Schedule中,可以設(shè)置場(chǎng)景的各項(xiàng)計(jì)劃,如虛擬用戶(hù)的加載方式、釋放策略等。定義場(chǎng)景設(shè)置ScheduleInitialize:初始化是指運(yùn)行腳本中的Vuser_init操作,為測(cè)試準(zhǔn)備Vuser和Load Generator。Start Vusers:設(shè)置場(chǎng)景Vuser加載方式。定義場(chǎng)景設(shè)置ScheduleSto
36、p Vusers:設(shè)置場(chǎng)景執(zhí)行完成后虛擬用戶(hù)釋放的策略。Duration:設(shè)置場(chǎng)景持續(xù)運(yùn)行的情況。定義場(chǎng)景設(shè)置Schedule 根據(jù)前述Scenario Schedule的設(shè)置方法,可以將實(shí)例中10個(gè)用戶(hù)新增門(mén)店的場(chǎng)景設(shè)計(jì)如下:2)逐步加壓Schedule NameSchedule Name:Gradual_10Schedule bySchedule by:ScenarioRun ModeRun Mode:basic scheduleStart VuserStart Vuser:2 Vusers every 00:00:30(HH:MM:SS)Start Time:設(shè)置場(chǎng)景啟動(dòng)時(shí)間。1)瞬時(shí)加
37、壓Schedule NameSchedule Name:Instant_10Schedule bySchedule by:ScenarioRun ModeRun Mode:basic scheduleStart VuserStart Vuser:Simultaneously定義場(chǎng)景設(shè)置集合點(diǎn) LR在運(yùn)行場(chǎng)景的時(shí)候,允許測(cè)試人員根據(jù)項(xiàng)目需要自己設(shè)定集合點(diǎn)的并發(fā)策略。單擊Controller菜單欄的ScenarioRendezvous,可以查看場(chǎng)景中所有的集合點(diǎn)名稱(chēng)、所屬腳本、當(dāng)前狀態(tài)和相關(guān)的虛擬用戶(hù)列表信息等,根據(jù)系統(tǒng)需求,還可以針對(duì)集合點(diǎn)的執(zhí)行進(jìn)行設(shè)定。1.1.集合集合點(diǎn)點(diǎn)設(shè)置設(shè)置 單擊Dis
38、able/Enable Rendezvous按鈕可以選定集合點(diǎn)是否啟用。 單擊Disable/Enable VUser按鈕可以設(shè)定一個(gè)用戶(hù)是否參與到集合點(diǎn)中。 單擊Policy按鈕可以設(shè)定集合點(diǎn)執(zhí)行策略。定義場(chǎng)景設(shè)置集合點(diǎn)2.2.集合集合點(diǎn)策略設(shè)置點(diǎn)策略設(shè)置第一項(xiàng):當(dāng)前所有用戶(hù)數(shù)的X%到達(dá)集合點(diǎn)時(shí),開(kāi)始釋放等待的用戶(hù)并繼續(xù)執(zhí)行場(chǎng)景。第二項(xiàng):當(dāng)前正在運(yùn)行用戶(hù)數(shù)的X%到達(dá)集合點(diǎn)時(shí),開(kāi)始釋放等待的用戶(hù)并繼續(xù)執(zhí)行場(chǎng)景。第三項(xiàng):當(dāng)X個(gè)用戶(hù)到達(dá)集合點(diǎn)時(shí),開(kāi)始釋放等待的用戶(hù)并繼續(xù)執(zhí)行場(chǎng)景。Timeout betweenVusers:設(shè)定一個(gè)超時(shí)時(shí)間,當(dāng)?shù)谝粋€(gè)用戶(hù)到達(dá)集合點(diǎn)時(shí),系統(tǒng)開(kāi)始計(jì)時(shí),如果在這個(gè)設(shè)定的時(shí)
39、間內(nèi)沒(méi)有達(dá)到指定的用戶(hù)數(shù),系統(tǒng)就不再等待,釋放用戶(hù)讓場(chǎng)景繼續(xù)執(zhí)行。3.3.手動(dòng)手動(dòng)釋放釋放VuserVuser 在場(chǎng)景運(yùn)行過(guò)程中,點(diǎn)擊Status Information列表的Release按鈕,可以手動(dòng)釋放等待中的虛擬用戶(hù)。定義場(chǎng)景多機(jī)聯(lián)合產(chǎn)生負(fù)載 為了避免一臺(tái)測(cè)試機(jī)器模擬的虛擬用戶(hù)數(shù)過(guò)多,他本身性能的下降直接影響測(cè)試效果,LR允許使用多臺(tái)機(jī)器運(yùn)行場(chǎng)景來(lái)均衡測(cè)試機(jī)器的負(fù)荷。只要一臺(tái)機(jī)器安裝了Load Generator并啟動(dòng)了LoadRunner Agent Process進(jìn)程,就可以被Controller統(tǒng)一調(diào)度來(lái)運(yùn)行場(chǎng)景,Controller負(fù)載收集統(tǒng)一的測(cè)試信息和執(zhí)行結(jié)果。 單擊菜單S
40、cenarioLoad Generator,可以查看到所有已經(jīng)加載的Load Generator信息。NameName:Load Generator所在的機(jī)器名稱(chēng)。StatusStatus:標(biāo)識(shí)了Generator目前的狀態(tài)。PlatformPlatform:顯示了系統(tǒng)的平臺(tái)名稱(chēng)。 單擊Add按鈕,可以添加新的Load Generator;單擊Connect按鈕,LR的Controller就會(huì)嘗試去連接選中的Load Generator,如果連接成功就在Status字段中顯示Ready,如果失敗就會(huì)顯示Failed。定義場(chǎng)景設(shè)置IP欺騙 IP欺騙技術(shù)就是讓一個(gè)Load Generator上的虛
41、擬用戶(hù)模擬從不同的IP來(lái)向服務(wù)器發(fā)起請(qǐng)求,以達(dá)到以假亂真的目的,提高單臺(tái)壓力機(jī)器的資源利用率。1.1.配置配置IP SPOOFERIP SPOOFER LR配置動(dòng)態(tài)IP的工具是程序組中的一個(gè)小工具IP Wizard,它能夠指導(dǎo)用戶(hù)按步驟完成配置過(guò)程。Step1Step1:選擇下述一項(xiàng)進(jìn)行設(shè)置。第一項(xiàng):用于創(chuàng)建一個(gè)新的設(shè)置,首次運(yùn)行時(shí)選用。第二項(xiàng):調(diào)用以前保存的設(shè)置。第三項(xiàng):將設(shè)置恢復(fù)為原始狀態(tài),此選項(xiàng)主要用于使用后釋放IP。Step2Step2:輸入您的IP地址。這里主要用來(lái)檢測(cè)新的IP地址加到主機(jī)中后,Server的路由表是否需要更新,如果Server和Client使用的是相同的子網(wǎng)掩碼,I
42、P Class類(lèi)型和網(wǎng)絡(luò),是無(wú)需更新的。定義場(chǎng)景設(shè)置IP欺騙Step3:添加新的動(dòng)態(tài)IPPrivate Private Address SpacesAddress Spaces:選擇測(cè)試環(huán)境的IP地址類(lèi)型。From From IPIP:要使用IP段的第一個(gè)值。Numberto Numberto addadd:要使用的IP地址的數(shù)目。SubmaskSubmask:子網(wǎng)掩碼,一般采用默認(rèn)設(shè)置就可以了。 如果選中Verify that new IP Address are not Already in use,系統(tǒng)會(huì)在所選范圍內(nèi)檢測(cè)每個(gè)IP地址,為了避免沖突,LR只添加那些沒(méi)有被其他用戶(hù)使用的IP地
43、址。 如果已經(jīng)預(yù)先知道選擇范圍內(nèi)的某些地址可能被占用,那么在Number to文本框中輸入的IP地址的個(gè)數(shù)就要有相應(yīng)的增加。定義場(chǎng)景設(shè)置IP欺騙2.2.啟用啟用IPIP欺騙欺騙 在Controller中勾選菜單ScenarioEnable IP Spoofer,就可以啟用IP欺騙了,在IP欺騙啟用后,Controller狀態(tài)欄中會(huì)顯示相應(yīng)的狀態(tài)標(biāo)識(shí): 。然后單擊菜單欄ToolsOptions,在彈出的對(duì)話(huà)框中單擊General標(biāo)簽以設(shè)定IP地址的分配方式。定義場(chǎng)景設(shè)置負(fù)載均衡 這里的負(fù)載均衡是用來(lái)解決測(cè)試過(guò)程中,負(fù)載機(jī)分配不均的問(wèn)題。方法為:先選擇ScenarioConvert Scenari
44、o to the Percentage Mode,將場(chǎng)景模式由用戶(hù)組切換為百分比,然后在已經(jīng)添加好的Load Generators機(jī)器列表中選擇需要的機(jī)器。這樣就可以保證負(fù)載機(jī)均勻地對(duì)服務(wù)器施壓。 性能監(jiān)控Internet/IntranetDatabaseserverAppserversWebserversClientsLoadRunner offers wide range of performance monitors for isolating bottlenecksMonitors gather data for online/offline analysis Monitors dis
45、play real-time data during testing Monitors gather data for offline root cause analysis after testingApart from Transactions performance, you need Performance monitors to highlight system component bottlenecks定義場(chǎng)景設(shè)置Windows資源監(jiān)控器 通過(guò)添加Windows資源監(jiān)控器,可以監(jiān)控負(fù)載對(duì)服務(wù)器的CPU、內(nèi)存、磁盤(pán)等資源的影響。在監(jiān)視服務(wù)器之前要做一些工作來(lái)確保監(jiān)視連接成功。 被監(jiān)視主機(jī)的訪(fǎng)問(wèn)模式改為:經(jīng)典-本地用戶(hù)以自己的身份驗(yàn)證;且必須設(shè)置密碼。 被監(jiān)視系統(tǒng)開(kāi)啟以下三個(gè)服務(wù):Remote ProcedureCall(RPC)和Remote Procedure Call(RPC)、Remote Registry。 確認(rèn)安裝Controller的機(jī)器可以連接到被監(jiān)視的機(jī)器。 確認(rèn)并打開(kāi)共享文件C$。 上述工作的詳細(xì)方法不再
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南方醫(yī)科大學(xué)《萬(wàn)物互聯(lián)的通信時(shí)代》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌影視傳播職業(yè)學(xué)院《鋼琴即興伴奏1》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌理工學(xué)院《質(zhì)的研究方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌健康職業(yè)技術(shù)學(xué)院《納稅籌劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌大學(xué)科學(xué)技術(shù)學(xué)院《專(zhuān)利與論文寫(xiě)作》2023-2024學(xué)年第一學(xué)期期末試卷
- 閩江學(xué)院《場(chǎng)地設(shè)計(jì)1》2023-2024學(xué)年第一學(xué)期期末試卷
- 綿陽(yáng)飛行職業(yè)學(xué)院《數(shù)據(jù)可視化方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 綿陽(yáng)城市學(xué)院《電腦美術(shù)基礎(chǔ)(平面圖形)》2023-2024學(xué)年第一學(xué)期期末試卷
- 茂名職業(yè)技術(shù)學(xué)院《飛盤(pán)》2023-2024學(xué)年第一學(xué)期期末試卷
- 呂梁學(xué)院《語(yǔ)法(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 高考詩(shī)歌鑒賞專(zhuān)題復(fù)習(xí):題畫(huà)抒懷詩(shī)、干謁言志詩(shī)
- 2023年遼寧省交通高等專(zhuān)科學(xué)校高職單招(英語(yǔ))試題庫(kù)含答案解析
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評(píng)定方法
- GB/T 304.3-2002關(guān)節(jié)軸承配合
- 漆畫(huà)漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應(yīng)、運(yùn)輸、包裝說(shuō)明方案
- (完整版)英語(yǔ)高頻詞匯800詞
- 《基礎(chǔ)馬來(lái)語(yǔ)》課程標(biāo)準(zhǔn)(高職)
- IEC61850研討交流之四-服務(wù)影射
評(píng)論
0/150
提交評(píng)論