測網站速度(軟件性能測試工具)

1.jmeter常用功能jmeter軟件的目錄:根目錄:測試計劃1.線程組:測試計劃-右鍵-添加-Threads(Users)-線程組2.Setup thread group:可用於執行預測試操作,這些線程的行為完全像一個正常的線程組元件,類似於Loaderrunner中的init3.Teardown thread group:可用於執行測試後動作,這些線程的行為完全像一個正常的線程組元件,類似於Loaderrunner中的end2.jmeter的兩種腳本錄制方法2.1錄制1——badboy1.badboy下載:http://www.badboy.com.au/2.介紹badboy3.打開badboy工具,點擊欄目上的紅色圓形按鈕,在地址欄目中輸入被測試的項目的地址4.錄制完成後,點擊工具欄旁邊的黑色按鈕,結束錄制,選擇“文件”–Export to Jmeter5.打開Jmeter工具,選擇文件-打開-選擇.jmx類型,將文件導入進來瞭6.演示錄制2.2錄制2——代理1.創建一個線程組(右鍵測試計劃-添加-線程組)2.在工作臺-非測試元件-添加HTTP代理服務器3.代理服務器的端口默認8080,可自行修改,但是不要與其他應用端口沖突4.目標控制器:錄制的腳本的存放位置,可選擇項為測試計劃中的線程組(根據實際來選擇即可)5.分組:對請求進行分組,“分組”的概念是將一批請求匯總分組,可以把URL請求理解為分組——不對樣本分組:所有的請求全部羅列——在組間添加分隔:加入一個虛擬的以分隔線,命名的動作,運作同“不對樣本分組”無實際意義——每個組放入一個新的控制器:執行時按控制器給輸出結果——隻存儲每個組的第一個樣本:對於一次URL請求,實際很多次http請求的情況6.設置IE瀏覽器7.IE——internet屬性——連接——局域網-勾選代理服務器為LAN使用代理,地址:localhost,端口號:要與jmeter中的端口號設置為一致,勾選:跳過本地地址的代理服務器,點擊確定,重新啟動IE瀏覽器,在瀏覽器地址中輸入地址,jmeter中就會限制錄制的網址8.現在點擊jmeter上的啟動按鈕,打開瀏覽器輸入需要錄制web項目地址,jmeter會自動記錄你IE所訪問的頁面9.錄制完成後一定要到局域網中停止2.Jmeterbadboy腳本開發技術詳解1.badboy中的檢查點:以sougou.com中搜索小強軟件測試為例:腳本錄制完成,選擇停止:在搜索框中選擇要設置的檢查點——Tools——Add Assertion for Selection回放——選擇play all2.badboy中的參數化-文本(1)建立參數化列表:value-右鍵添加(2)在請求中替換${參數名稱}:query右鍵-properties-value改為${參數名稱}(3)中文可能有亂碼,改下請求中的編碼即可回放:此網址右鍵-properties-選項1:是設置循環幾次,選項2是每個參數都循環3.Jmeter性能測試小小的實戰項目描述:被測網站:xqtesting.blog.51cto.com指標:響應時間以及錯誤率場景:線程屬性:線程數:20,Ramp up Period(in seconds):10,循環次數3.1打開jmeter-測試計劃-線程組-添加http請求(1)http請求:-保持默認即可(2)名稱:本屬性用於標識一個取樣器,建議使用一個有意義的名稱(3)註釋:對於測試沒有任何作用,僅用戶記錄用戶可讀的註釋信息(4)服務器名稱或IP:HTTP請求發送的的目標服務器名稱或IP地址(5)端口號:目標服務器的端口號,默認值為80,後面的超時定義可以不用填(6)協議:向目標服務器發送http請求時的協議,可以是http或者是https,默認值為http(7)方法:發送http請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等(8)Content encoding:內容的編碼方式(9)路徑:目標URL路徑(不包括服務器地址和端口)(10)自動重定向:如果選中該選項,當發送HTTP請求後得到的響應是302/301時,JMeter自動重定向到新的頁面(11)Use keep Alive:當該選項被選中時,jmeter和目標服務器之間使用keep-Alive方式進行HTTp通信,默認選中(12)Use multipart/from-data for HTTP POST:當發送HTTP POST請求時,使用Use multipart/from-data的方法發送,默認不選中(13)同請求一起發送參數:在請求中發送URL參數,對於帶參數的URL,jmeter提供瞭一個簡單的對參數化的方法,用戶可以將URL中所有參數設置在本表中,表中每一行時一個參數值對(對應URL中的 名稱1=值1)(14)同請求一起發送文件:在請求中發送文件,通常,HTTP文件上傳行為可以通過這種方式模擬(15)從HTML文件獲取所有有內含的資源:當該選項被選中時,jmeter在發出HTTP請求並獲得響應的HTML文件內容後,還對該HTML進行Parse並獲取HTML中包含的所有資源(圖片、flash等),默認不選中,如果用戶隻希望獲取頁面中的特定資源,可以在下方的Embedded URLs must match文本框中填入需要下載的特定資源表達式,這樣,隻有能匹配指定正則表達式的URL指向資源會被下載(16)用作監視器:此取樣器被當成監視器,在Monitor Results Listener中可以直接看到基於該取樣器的圖形化統計信息,默認為不選中(17)Save response as MD5 hash?:選中該選項,在執行時僅記錄服務端響應數據的MD5值,而不記錄完整的響應數據,在需要進行數據量非常大的測試時,建議選中該選項以減少取樣器記錄響應數據的開銷3.2線程組設置‘(1)線程數:虛擬用戶數(2)ramp up period:設置虛擬用戶數需要多長時間全部啟動,如果線程數為20,時間為10,也就是每秒鐘啟動2個線程(3)循環次數:每個線程發送請求的次數,如果線程數為20,循環次數為100,那麼每個線程發送100次請求,總請求數為20*100=2000,如果勾選瞭“永遠”,那麼所有線程會一直發送請求,一直到選擇停止運行腳本(4)調度器:可以更靈活的設置運行時間等3.3監聽器(1)查看結果樹(2)聚合報告單位:默認是毫秒Label:定義HTTP請求名稱Samples:表示這次測試中一共發出量多少個請求Average:平均響應時長-默認情況下單個Request的平均響應時長,當使用瞭Transaction Controller時,也可以以Transaction為單位展示平均響應時長Median:中位數,也就是50%用戶的響應時長90%Line:90%用戶的響應時長Min:訪問頁面的最小響應時長Max:訪問頁面的最大響應時長Error%:錯誤請求的數量/請求的總數Throughput:默認情況下表示每秒完成的請求數,當使用瞭Transaction Controller時,也可以表示類似LoadRunner的Transaction per Second數KB/S惡臭:每秒從服務器端接收到的數據量4.jmeter元件的作用域與執行順序1.元件的作用域(1)配置元件(config elements)會影響其作用范圍內的所有元件(2)前置處理程序(per-processors)在其作用范圍內的每一個sampler元件之前執行(3)定時器:(timers)對其作用范圍內的每一個sampler有效(4)後置處理程序(Post-processsors)在其作用范圍內的每一個sampler元件之後執行(5)斷言(Assertions)對其作用范圍內的每一個sampler元件執行後的結果執行校驗(6)監聽器(Listeners):收集其作用范圍的每一個sampler元件的信息並呈現(7)sampler元件不和其他元件相互作用,因此不存在作用域的問題2.執行順序配置元件前置定時器Sampler後置斷言監聽器如果在同一作用域范圍內由多個同一類型的遠近啊,則這些元件則按照他們在測試計劃中的上下順序依次執行5.jmeter之參數化5.1方式1右鍵-添加-前置處理器-用戶參數-添加變量、添加用戶,勾選:每次迭代更新一次在實際的網址請求中替換:parameters——${參數名}添加查看結果樹進行查看,點擊運行響應斷言:相當於檢查點,輸入${參數名}5.2方式2CSV Data Set ConfigFilename:d:\text.txt,文件中放參數(參數化要引用的東西)在Variable Names中填寫上變量名File encoding:文件編碼:可以不填Variable Names:變量名(用逗號進行分隔)Delimiter(use ‘t‘ for tab):參數文件中多個變量的分隔符,\t表示用tab鍵分隔,默認是逗號Recycle on EOF?:結束後是否循環?默認是true5.3方式31.選項-函數助手對話框——_random-生成八.jmeter之集合點1.右鍵-添加-定時器-Syncheonizing Timer:註意位置要放到集合的操作之前2.Number of simulated Users to Group by:意思是多少個用戶時進行集合點的並發6.jmeter之檢查點1.斷言:腳本導入jmeter參數化對相應請求添加響應斷言:輸入${參數名},右鍵-添加-斷言-響應斷言對相應請求添加斷言結果:插入-監聽器-斷言結果2.斷言持續時間:響應時間在多少毫秒以內,如果超過多長時間就認為是失敗的響應時間不能超過150毫秒,則可以使用斷言持續時間來判斷斷言——添加-斷言-響應斷言-斷言持續時間在斷言結果中運行查看3.返回結果大小斷言:Size Assertion7.jmeter之動態關聯1.jmeter中關聯的兩種方式:正則、xpath(一般xml的時候用的多)步驟:視頻中以webtours開啟關聯badboy錄制導入jmeter找出需要關聯的請求(nav.pl)該請求-後置處理器-正則表達式提取器-填入內容應用名稱:例如:session正則表達式:name=userSession value=(*)>模版:如果前面的正則表達式取瞭不止一個參數,那麼這裡需要定制參數的組別,如果參數$1$則表示取得第一個值,$2$表示取得第二個值匹配數字:0隨機,-1所有值,以數組形式存儲;1;2缺省值:不用管添加斷言添加斷言結果運行查看8.jmeter也有loaderrunner一樣的圖像添加-監聽器-圖形結果、查看結果樹、斷言結果、生成概要經過、用表格查看結果、監視器結果、聚合報告擴展下載網址:https://jmeter-plugins.org/install/Install/ServerAgent-2.2.1.zip未下載我們需要將serverAgent目錄以及下面的文件復制到我們側睡的服務器上,然後點擊打開,他默認的端口號是44441.擴展常用:jp@gc – PerfMon Metrics Collector:資源監控Add Row :CPU 、Memory、DisksI /O2.擴展應用 Hits per Second9.jmeter也性能測試實戰-web程序項目背景XX網站,並發登陸的性能測試,1s增加2個線程,運行2000次,分別看20,40,60並發下的表現,監控:成功率、響應時間、標準差、CPU、mem。Io,資源監控需要在Linux下部署監控agent(server agent)步驟:badboy錄制,導入jmeter,參數化、檢查點、集合點,指標監控,資源監控,報告(可導出到xls,然後自行生成報表)1.參數化:前置處理器-用戶參數:username:用戶:xiaowang2.在網址連接中的uername替換成${username}3.檢查點:連接-右鍵-添加-響應斷言-${username}4.右鍵-添加-斷言結果5.右鍵-添加-監聽器-查看結果樹、聚合報告數據寫入文件的後綴名jtl,也可以保存到Excel中10.jmeter性能測試實戰-FTP程序需求:上傳一個文件到服務器(put)下載一個文件到本地(get)右鍵-添加-線程組-FTP請求-服務器名稱或IP-Remote File(遠程的文件是什麼?)-local File(本地的文件是什麼)——用戶名,密碼11.jmeter性能測試實戰-數據庫mysql1.需求:測試用戶表(select2.環境準備:mysql驅動Jmeter-jdbc配置Jmeter-jdbc請求3.步驟:(1)測試計劃中加入mysql-connector-java-8.0.27.jar包,在測試計劃的右下方瀏覽(2)jdbc配置:線程組-jdbc Connection Configuration主要填寫 Database URL、JDBC Driver Class:org.gjt.mm.mysql.Driver、Username、password(3)jdbc請求右鍵-添加-JDBC RequestQuery Type:默認 :Select StatementQuery:填寫:select * from person;(4)斷言、結果樹如果需要實現同時多個不同的用戶使用不同的SQL,可以通過把整條SQL語句參數化來實現,例如把SQL語句放在CSV文件中,然後在JDBC Request 的Query中使用參數代替${SQL_Statement}12.控制器1.if控制器條件:${is_run}=1示例:判斷${is_run}=1 是否成立,如果成立就執行 http 請求;復選框“Evaluate for allchildren?”表示是否對所有子節點使用判斷條件,不選擇的話,隻對第一個子節點生效。無 else 判斷,可以用非條件來實現。2.隨機控制器隨機執行某一個子節點內容3.隨機順序控制器子節點全部執行,但順序隨機4.循環控制器設置執行控制器子節點的次數,也可以設置永遠執行

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/42070.html