《JMeter培訓(xùn)教程》PPT課件.ppt
《《JMeter培訓(xùn)教程》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《JMeter培訓(xùn)教程》PPT課件.ppt(41頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、JMeter進(jìn)行接口測試,,利用JMeter進(jìn)行接口測試,JMeter介紹 JMeter主要元件 參數(shù)化設(shè)置 數(shù)據(jù)關(guān)聯(lián) Jmeter元件的作用域與順序,JMeter介紹,JMeter,一個(gè)100的純Java桌面應(yīng)用,它是Apache組織的開放源代碼項(xiàng)目,它是功能和性能測試的工具。JMeter可以用于測試靜態(tài)或者動(dòng)態(tài)資源的性能(文件、Servlets、Perl腳本、Java對象、數(shù)據(jù)庫和查詢、ftp服務(wù)器或者其他資源)。原先Jmemer是為Web/HTTP測試而設(shè)計(jì)的,但是它已經(jīng)擴(kuò)展以支持各種各樣的測試模塊。它和用于HTTP和SQL數(shù)據(jù)庫(使用JDBC)的模塊一起運(yùn)送。它可以用來測試靜止資料庫或
2、者活動(dòng)資料庫中的服務(wù)器的運(yùn)行情況,可以用來模擬對服務(wù)器或者網(wǎng)絡(luò)系統(tǒng)加以重負(fù)荷以測試它的抵抗力,或者用來分析不同負(fù)荷類型下的所有運(yùn)行情況。它也提供了一個(gè)可替換的界面用來定制數(shù)據(jù)顯示,測試同步及測試的創(chuàng)建和執(zhí)行.JMeter 的特性:a) 能夠?qū)TTP和FTP服務(wù)器進(jìn)行壓力和性能測試, 也可以對任何數(shù)據(jù)庫進(jìn)行同樣的測試(通過JDBC)。b) 完全的可移植性和100 純Java。c) 完全 Swing 和輕量組件支持(預(yù)編譯的JAR使用 javax.swing.*)包。d) 完全多線程 框架允許通過多個(gè)線程并發(fā)取樣和 通過單獨(dú)的線程組對不同的功能同時(shí)取樣。e) 精心的GUI設(shè)計(jì)允許快速操作和更精確
3、的計(jì)時(shí)。f) 緩存和離線分析/回放測試結(jié)果。g) 高可擴(kuò)展性:h) 可鏈接的取樣器允許無限制的測試能力。i) 各種負(fù)載統(tǒng)計(jì)表和可鏈接的計(jì)時(shí)器可供選擇。j) 數(shù)據(jù)分析和可視化插件提供了很好的可擴(kuò)展性以及 以及個(gè)性化。k) 具有提供動(dòng)態(tài)輸入到測試的功能(包括Javascrpt)。l) 支持腳本變成的取樣器(在1.9.2及以上版本支持BeanShell)。,JMeter介紹,Jmeter主要元件,測試計(jì)劃(Test Plan)是使用 JMeter 進(jìn)行測試的起點(diǎn),它是其它 JMeter 測試元件的容器。 線程組(Thread Group)代表一定數(shù)量的并發(fā)用戶,它可以用來模擬并發(fā)用戶發(fā)送請求。 取樣
4、器(sampler)定義實(shí)際的請求內(nèi)容,被線程組包含,我們主要用HTTP請求。 監(jiān)聽器(Listener) 邏輯控制器(Logic Controller) 斷言(Assertions) 配置元件(Config Element) 前置處理器(Pre Processors)和后置處理器(Post Processors) 定時(shí)器(Timer),JMeter主要元件介紹測試計(jì)劃,測試計(jì)劃(Test Plan)是使用 JMeter 進(jìn)行測試的起點(diǎn),它是其它 JMeter 測試元件的容器。 名稱:你可以為你的測試計(jì)劃取一個(gè)有意義的名字。 注釋:對測試計(jì)劃的注釋。 用戶定義的變量:用戶可以自己定義變量,在用
5、到此變量的時(shí)候直接用$變量名引用即可。例:變量名url,值,在需要時(shí)直接用$url即可。 Add directory or jar to classpath:向類路徑即%JMETER-HOME%lib中添加目錄及jar包。,JMeter主要元件件介紹線程用戶,雖然有三個(gè)添加線程組的選項(xiàng),名字不一樣,創(chuàng)建之后,其界面是完全一樣的。 setupthreadgroup:一種特殊類型的ThreadGroup的,可用于執(zhí)行預(yù)測試操作。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試前進(jìn)行定期線程組的執(zhí)行。 teardownthreadgroup:一種特殊類型的ThreadGro
6、up的,可用于執(zhí)行測試后動(dòng)作。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試結(jié)束后執(zhí)行定期的線程組。 如果您用過junit,想必你不會對 setup,teardown這陌生。熟悉loadrunner的應(yīng)該知道,loadrunner的腳本除了action里是真正的腳本核心內(nèi)容,還有初始化“環(huán)境”的初始化腳本和測試完畢后對應(yīng)的清除信息的腳本塊。那么這 里setupthreadgroup和teardownthreadgroup就是分別指這兩部分。其實(shí)從本質(zhì)上來看,他們并沒有什 么不同,JMeter主要元件件介紹線程用戶,threadgroup(線程組):這個(gè)就是我們通常添
7、加運(yùn)行的線程。通俗的講一個(gè)線程組,,可以看做一個(gè)虛擬用戶組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶。線程組中包含的線程數(shù)量在測試執(zhí)行過程中是不會發(fā)生改變的,JMeter主要元件介紹線程組,名稱:為線程組起名字。 線程屬性線程數(shù):設(shè)置發(fā)送請求的用戶數(shù)目 ,即并發(fā)數(shù)。 線程屬性Ramp-Up Period(in second):線程間的時(shí)間間隔,單位是秒。即所有線程在多少時(shí)間內(nèi)啟動(dòng)。 線程屬性循環(huán)次數(shù):請求的重復(fù)次數(shù),如果選擇后面的forever(默認(rèn)),那么 請求將一直繼續(xù),如果不選擇forever,而在輸入框中輸入數(shù)字,那么請求將重復(fù)指定的次數(shù),如果輸入1,那么請求將執(zhí)行一次,如果是0,會
8、出現(xiàn)問題。 調(diào)度器配置啟動(dòng)時(shí)間:測試計(jì)劃什么時(shí)候啟動(dòng),啟動(dòng)延遲會覆蓋它。 調(diào)度器配置結(jié)束時(shí)間:測試計(jì)劃什么時(shí)候結(jié)束,持續(xù)時(shí)間會覆蓋它。 調(diào)度器配置持續(xù)時(shí)間:測試計(jì)劃持續(xù)多長時(shí)間,會覆蓋結(jié)束時(shí)間。 調(diào)度器配置啟動(dòng)延遲:測試計(jì)劃延遲多長時(shí)間啟動(dòng),會覆蓋啟動(dòng)時(shí)間。,JMeter主要元件介紹取樣器(HTTP請求),名稱:HTTP請求的名字。 Web服務(wù)器服務(wù)器名稱或IP、端口號,腳本錄制時(shí)自動(dòng)添加,也可以使用“用戶自定義變量”。 HTTP請求:用默認(rèn)值即可。 同請求一起發(fā)送參數(shù):請求中的參數(shù)、值可以在此設(shè)置,需要用到參數(shù)化及動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián),我們在后面專門介紹。 同請求一起發(fā)送文件:我可以制定同請求一起發(fā)
9、送哪個(gè)文件。 其他任務(wù)包括:從HTML文件中獲取所有內(nèi)含的資源、用作監(jiān)視器、Embedded URLs must match。,JMeter主要元件介紹監(jiān)聽器,監(jiān)聽器(Listener)負(fù)責(zé)收集測試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式。我們常用的包括:聚合報(bào)告、查看結(jié)果樹、用表格查看結(jié)果,都支持將結(jié)果數(shù)據(jù)寫入文件。,JMeter主要元件介紹監(jiān)聽器(查看結(jié)果樹),,JMeter主要組件介紹監(jiān)聽器(聚合報(bào)告),,JMeter主要元件介紹邏輯控制器,邏輯控制器(Logic Controller)可以自定義JMeter發(fā)送請求的行為邏輯,它與Sampler結(jié)合使用可以模擬復(fù)雜的請求序列。,JMeter主
10、要元件介紹邏輯控制器,循環(huán)控制器可以設(shè)置請求的循環(huán)次數(shù)或永遠(yuǎn)循環(huán)(如果選中永遠(yuǎn)的話)。 事務(wù)控制器可以將多個(gè)請求放在同一個(gè)事務(wù)中。如果選中Gegerate parent sample,則聚合報(bào)告中只顯示事務(wù)控制器的數(shù)據(jù),而不會顯示其中的各個(gè)請求的數(shù)據(jù),反之則全部顯示。,JMeter主要元件介紹邏輯控制器,條件判斷成功,執(zhí)行其中的內(nèi)容??梢杂卸鄠€(gè)條件,JMeter主要元件介紹斷言,斷言(Assertions)可以用來判斷請求響應(yīng)的結(jié)果是否如用戶所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測試。這個(gè)限制對于有效的測試是非常有用的。,JMeter主要元件介紹斷言(響應(yīng)斷言),斷言
11、(Assertions)可以用來判斷請求響應(yīng)的結(jié)果是否如用戶所期望的。這個(gè)限制對于有效的測試是非常有用的。,JMeter主要元件介紹斷言(響應(yīng)斷言),包括:返回結(jié)果包括你指定的內(nèi)容。 匹配:一般是完全匹配指定的返回內(nèi)容。 Equals:完全匹配。 Subring:返回結(jié)果是指定結(jié)果的字串。 包括,匹配:可以使用正則表達(dá)式。 Equals, Substring:使用純文本,區(qū)分大小寫。,JMeter主要元件介紹斷言(斷言結(jié)果),JMeter主要元件介紹配置元件,配置元件(Config Element)維護(hù)Sampler需要的配置信息,并根據(jù)實(shí)際的需要會修改請求的內(nèi)容。,JMeter主要元件介紹配
12、置元件(http請求默認(rèn)值),用來對所有http請求設(shè)定默認(rèn)值。,JMeter主要元件介紹配置元件(http請求默認(rèn)值),用來定義已知的變量。比如ip,port,用戶名密碼等。,JMeter主要元件介紹配置元件( CSV Data Set Config),Filename:文件位置及名稱。 File Encoding: 默認(rèn)為ANSI,可寫為UTF-8。 Varible Names: 定義文本文件中的參數(shù)名,參數(shù)之間逗號分隔.定義后可在腳本在以Shell變量的同樣的方式引用。$user,$password。 Delimiter:csv文件分隔符默認(rèn)逗號。 Recycle on EOF ? :
13、True=當(dāng)讀取文件到結(jié)尾時(shí),再重頭讀取文件。False=當(dāng)讀取文件到結(jié)尾時(shí),停止讀取文件。 Stop thread on EOF?:當(dāng)上面為False時(shí)起效; True=當(dāng)讀取文件到結(jié)尾時(shí),停止進(jìn)程 Sharing Mode :設(shè)置共享,可以設(shè)置線程組共享,也可以是所有線程等。,JMeter主要組件介紹前置處理器和后置處理器,前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設(shè)置,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器。,JMeter主要組件介
14、紹定時(shí)器,定時(shí)器(Timer)負(fù)責(zé)定義請求之間的延遲間隔。,參數(shù)化設(shè)置,在HTTP請求中常常會提交一些參數(shù),我們?yōu)榱瞬幌朐诿恳淮握埱笾卸际褂孟嗤膮?shù)值,就要想辦法讓每一次請求的參數(shù)的值都是不一樣的,我們就需要進(jìn)行參數(shù)化設(shè)置,這里我們介紹兩種參數(shù)化設(shè)置的方法。 一種是利用函數(shù)助手中的_Random函數(shù)進(jìn)行參數(shù)化設(shè)置; 一種是利用配置元件中的CSV Data Set Config進(jìn)行參數(shù)化設(shè)置。,參數(shù)化設(shè)置函數(shù)助手,JMeter中有一個(gè)函數(shù)助手的功能,里面內(nèi)置了多個(gè)函數(shù),我們可以利用其中的_Random函數(shù)來進(jìn)行請求中的參數(shù)化設(shè)置。,參數(shù)化設(shè)置函數(shù)助手,選擇一個(gè)功能_Random。 設(shè)定最小值為
15、1。 設(shè)定最大值為100。 函數(shù)名稱設(shè)為func1。 點(diǎn)擊生成將生成一個(gè)引用字符串$_Random(1,100,func1,在需要的請求參數(shù)中拷貝該字符串即可。 其中函數(shù)名稱用來在引用中作區(qū)別,即我們可以設(shè)定不同的名稱在不同的地方引用同一個(gè)函數(shù)的功能。,參數(shù)化設(shè)置函數(shù)助手,例如:我們生成一個(gè)$_Random(1,9999,Random),在執(zhí)行添加類目用例時(shí),生成一個(gè)隨機(jī)數(shù)用在類目名稱里。,動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián),在HTTP請求的參數(shù)中經(jīng)常會遇到一些參數(shù)的值是從服務(wù)器相應(yīng)的動(dòng)態(tài)數(shù)據(jù),這些數(shù)據(jù)需要進(jìn)行關(guān)聯(lián)才能使得每一次請求都能成功得被服務(wù)器接受,在JMeter中采用正則表達(dá)式提取器來獲取這些動(dòng)態(tài)的數(shù)據(jù)。
16、正則表達(dá)式允許用戶從服務(wù)器響應(yīng)中獲取數(shù)據(jù),作為一個(gè)后置處理器,正則表達(dá)式提取器會在每一個(gè)請求執(zhí)行后再執(zhí)行,正則表達(dá)式提取請求的參數(shù)值,產(chǎn)生模板字符串,并將結(jié)果保存到給出的變量中。,動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)正則表達(dá)式提取器,在HTTP請求的參數(shù)中經(jīng)常會遇到一些參數(shù)的值是從服務(wù)器相應(yīng)的動(dòng)態(tài)數(shù)據(jù),這些數(shù)據(jù)需要進(jìn)行關(guān)聯(lián)才能使得每一次請求都能成功得被服務(wù)器接受,在JMeter中采用正則表達(dá)式提取器來獲取這些動(dòng)態(tài)的數(shù)據(jù)。比如,我們要測試獲取菜品列表接口,則要先使用獲取菜品類目接口,獲取一個(gè)類目id,然后用在獲取菜品接口上。,動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)正則表達(dá)式提取器,要檢查的響應(yīng)字段:一般我們選擇主體,即服務(wù)器返回給我們的頁面主體
17、信息,也可以選擇信息頭等。 引用名稱:即參數(shù)名稱,這個(gè)自己定義,在后面時(shí)用。 正則表達(dá)式:()括起來的部分就是要提取的。.代表任意字符,+代表出現(xiàn)任意次,后面加?,動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)正則表達(dá)式提取器,模板:$1$代表只匹配一組數(shù)據(jù),如果需要正則表達(dá)式提取兩個(gè)數(shù)據(jù),比如需要兩個(gè)用()起來的??梢杂?1$, $2$. 匹配數(shù)字:1代表值匹配第一次出現(xiàn)的(正整數(shù)都可以使用), -1代表獲取所有匹配到的,0代表隨機(jī)。如果設(shè)置匹配所有的,可以使用$str_1, $str_2來分別調(diào)用第一次匹配到的和第二次匹配到的(參數(shù)以數(shù)組的形式存儲)。 缺省值:如果都匹配不到,就用這個(gè)默認(rèn)的。,使用時(shí)就可以使用$categ
18、ory_id-wm-sj來表示獲取到的,,動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)正則表達(dá)式提取器,Jmeter元件的作用域與順序,配置元件:元件會影響其作用范圍內(nèi)的所有元件。 前置處理程序:元件在其作用范圍內(nèi)的每一個(gè)sampler元件之前執(zhí)行。 定時(shí)器:元件對其作用范圍內(nèi)的每一個(gè)sampler有效。 后置處理程序:元件在其作用范圍內(nèi)的每一個(gè)sampler元件之后執(zhí)行。 斷言:元件對其作用范圍內(nèi)的每一個(gè)sampler元件執(zhí)行后的結(jié)果執(zhí)行校驗(yàn)。 監(jiān)聽器:件收集其作用范圍的每一個(gè)sampler元件的信息并呈現(xiàn)。,Jmeter元件的作用域與順序,作用域的原則是: 取樣器(sampler)元件不和其它元件相互作用,因此不存在作用
19、域的問題。 邏輯控制器(LogicController)元件只對其子節(jié)點(diǎn)中的取樣器和邏輯控制器作用。 除取樣器和邏輯控制器元件外,其他6類元件,如果是某個(gè)sampler的子節(jié)點(diǎn),則該元件公對其父子節(jié)點(diǎn)起作用。 除取樣器和邏輯控制器元件外的其他6類元件,如果其父節(jié)點(diǎn)不是sampler,則其作用域是http://10.8.8.58:8005/該元件父節(jié)點(diǎn)下的其他所有后代節(jié)點(diǎn)(包括子節(jié)點(diǎn),子節(jié)點(diǎn)的子節(jié)點(diǎn)等)。,Jmeter元件的作用域與順序,元件的執(zhí)行順序:同一作用域名范圍內(nèi),測試計(jì)劃中的元件按照如下順序執(zhí)行。 配置元件 前置處理 定時(shí)器 取樣器 后置處理 斷言 監(jiān)聽,Jmeter元件的作用域與順序
20、,前置處理器、后置處理器和斷言等元件對取樣器作用,因此,如果在它們的作用域內(nèi)沒有任何取樣器,則不會被執(zhí)行。 如果在同一作用域范圍內(nèi)有多個(gè)同一類型的元件,則這些元件按照它們在測試計(jì)劃中的上下順序一次執(zhí)行。,JMeter中進(jìn)行分布式測試,作為一個(gè)純 JAVA 的GUI應(yīng)用,JMeter對于CPU和內(nèi)存的消耗還是很驚人的,所以當(dāng)需要模擬數(shù)以千計(jì)的并發(fā)用戶時(shí),使用單臺機(jī)器模擬所有的并發(fā)用戶就有些力不從心,甚至還會引起JAVA內(nèi)存溢出的錯(cuò)誤。不過,JMeter也可以像 LoadRunner 一樣通過使用多臺機(jī)器運(yùn)行所謂的代理來分擔(dān)負(fù)載產(chǎn)生器自身的壓力,并借此來獲取更大的并發(fā)用戶數(shù),我們只需手動(dòng)配置一下即
21、可。 1、在所有期望運(yùn)行JMeter作為 負(fù)載產(chǎn)生器的機(jī)器上安裝JMeter,并確定其中一臺機(jī)器作為 控制器,其他的機(jī)器作為 代理。然后運(yùn)行所有 代理 機(jī)器上的JMeter-server.bat文件假定我們使用兩臺機(jī)器172.20.80.47和172.20.80.68作為 代理; 2、在Controller 機(jī)器的JMeter安裝目錄下找到 bin 目錄,再找到 jmeter.properties 這個(gè)文件,使用記事本或者其他文字編輯工具打開它; 3、在打開的文件中查找“remote_hosts=”這個(gè)字符串,你可以找到這樣一行“remote_hosts=127.0.0.1”。其中的 127.0..0.1 表示運(yùn)行JMeter代理的機(jī)器,這里需要修改為“remote_hosts=172.20.80.47,172.20.80.68”; 4、保存文件,并重新啟動(dòng)控制器機(jī)器上的JMeter,并進(jìn)入啟動(dòng) -遠(yuǎn)程啟動(dòng)菜單項(xiàng)。就會看到我們剛才添加的兩個(gè)代理的地址,選中即可運(yùn)行,如果想同時(shí)啟動(dòng)所有代理,選擇遠(yuǎn)程全部啟動(dòng)即可。 要進(jìn)行分布式測試代理機(jī)器上需要添加環(huán)境變量,即添加用戶變量JMETER_HOMEd:jmeter,系統(tǒng)變量中的path中添加d:jmeterbin(假設(shè)jmeter放在d盤根目錄下)。,謝謝!,,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中考語文語言知識積累及運(yùn)用課件
- 6.康復(fù)醫(yī)學(xué)的工作方法和流程
- 部編本人教版小學(xué)一年級語文下冊11-彩虹課件
- 活動(dòng)四單股銅芯導(dǎo)線的T型連接絕緣層的恢復(fù)單股銅芯導(dǎo)線的T型連接課件
- 機(jī)場運(yùn)營與管理 課程講義
- 不得作為商標(biāo)的標(biāo)志的審查解讀
- MRSA共識解讀2012-1-17(1)
- 高中語文必修一《優(yōu)美的漢字》課件
- 安全生產(chǎn)管理培訓(xùn)課件
- 衛(wèi)生系統(tǒng)法律知識講座-法律責(zé)任與法律救濟(jì)
- 骨關(guān)節(jié)脫位課件
- 護(hù)士行為與護(hù)理安全 課件
- 公路工程技術(shù)標(biāo)準(zhǔn)宣貫-隧道部分課件
- 預(yù)防冬季傳染病主題班會
- 疾病預(yù)防與食品安全教育.ppt