jmeter+mysql+set_Jmeter中如何进行对数据库压测(上)
前言
表面看來,JMeter與本系列課程似乎關系不大,但實際上在后面的很多場景中起著重要作用:如何獲知修改了某些代碼或者設置之后系統性能是提升了還是下降了呢?
商業的壓力測試工具LoadRunner確實很高大上,但是據說費用也不便宜且體積也不小,而目前最高版本的開源免費壓力測試工具JMeter3.2壓縮包體積才不到53M,而且對于開發人員而非專業測試人員來說,JMeter提供的測試功能已經夠強大了。要完整地介紹JMeter,即使把JMeter自帶的文檔翻譯成中文就是一本厚厚的書了。但是在本篇只講述如何利用JMeter來對Web網站和數據庫進行壓力測試,因為測試場景的復雜性,本篇實例講述基于csv文件的參數化測試。
JMeter提供了對不同的協議、服務器及應用的測試支持,如下: Web – 各種開發語言開發出的網站,比如ASP/ASP.NET/JSP/PHP/Python/Perl等 SOAP / REST Webservices FTP Database via JDBC(基于JDBC對數據庫進行壓力測試) LDAP Message-oriented middleware (MOM) via JMS Mail - SMTP(S), POP3(S) and IMAP(S) Native commands or shell scripts TCP Java Objects 還是那句話:本篇只講述對Web網站和基于JDBC對數據庫進行壓力測試。 軟件準備 JMeter3.2:為保持與本文有比較好的對照,建議從官網下載3.2版本,下載地址:http://jmeter.apache.org/[preferred]/jmeter/binaries/apache-jmeter-3.2.zip 此軟件解壓后即可使用。
Tomcat8.5:本實例中的關于Web網站的壓力測試都是基于Tomcat8.5的,下載地址:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz 如果嫌麻煩,可以直接在上一篇《開發人員學Linux(3):CentOS7中安裝JDK8和Tomcat8》的環境中進行。 MySQL Community Server5.7:本篇中將以MySQL為例講述如何對數據庫進行壓力測試,實際上本篇對MySQL版本沒有要求,但后來今后,還是建議下載5.7版本,下載地址:https://dev.mysql.com/downloads/mysql/,同時請下載MySQL的JDBC驅動。
注意:本篇中JMeter在Windows下運行,MySQL數據庫及Tomcat服務器均在CentOS7下運行。 使用JMeter對一般性網站進行壓力測試 為便于演示,這里以上一篇《開發人員學Linux(3):CentOS7中安裝JDK8和Tomcat8》中搭建起來的環境進行壓力測試,本人的虛擬機支持橋接模式,IP地址為:192.168.60.198,在Tomcat中有一個簡單的提交表單,網址是:http://192.168.60.198:8080/examples/servlets/servlet/RequestParamExample,頁面如下圖所示:
該頁面中有一個Form,查看頁面源代碼可知該Form提交給當前Servlet,且有兩個字段,分別為:firstname和lastname,如下圖所示:
下面講述創建相關的JMeter元素。 1.運行JMeter 首先運行在解壓后的JMeter目錄下的bin目錄找到jmeter.bat來運行JMeter(重要的事情再說一遍:本篇中JMeter在Windows下運行,MySQL數據庫及Tomcat服務器均在CentOS7下運行),JMeter支持多種語言,包括中文(其實對中文的支持不徹底),而在中文環境下JMeter的默認語言是中文,因為考慮到必要時候還需要看JMeter目錄下的printable_docs目錄中的文檔,而這里的文檔全是英文的,所以我將它設置為英文,如下圖所示:
這是設置為英文之后的界面:
向“測試計劃”添加必要的元素
添加測試計劃的必要元素的順序為:ThreadGroup->HTTPRequest->Listener。實際上還應包含TestPlan(測試計劃),因創建時默認會創建一個TestPlan,故添加TestPlan的步驟可省略。 2.1添加ThreadGroup 如下圖所示:
添加HTTP Request Defaults 在ThreadGroup元素上鼠標右鍵,”Add”-“Config Element”-“HTTP Request Defaults”,HTTP Request Defaults適合于在一個ThreadGroup里面有大量的HTTP Request的情況,很多情況下HTTP Request的一些配置是相同的,那么只需要在HTTP Request Defaults中設置好即可,無需在每個HTTP Request中單獨設置,添加HTTP Request Defaults的界面如下圖所示:
添加HTTP Request 在ThreadGroup元素上鼠標右鍵,通過”Add”-“Sampler”-“HTTP Request”來添加HTTP Request。
添加Listener 在ThreadGroup元素上鼠標右鍵,通過”Add”-“Listener”來添加Listener,在這里根據需要添加Listener,本人一般會添加如下Listener: Summary Report:可以對測試的結果有一個概要了解,結果中包含了測試次數、平均/最大/最小響應時間、并發吞吐量、接收/發送的字節數等信息; View Result Tree:由于默認情況下判斷某個測試是否成功是以是否收到了內容來判斷的,比如請求某個需要授權的頁面,如果未授權則會被導向到登錄頁面,在JMeter看來未發生40X、50X這類HTTP Code的錯誤則仍會被當做測試結果正確,加View Result Tree后就可以看到客戶端和服務器端發送及響應的數據。 View Results in Table:和Summary Report類似,但側重點不同。
添加CSV Data Set Config 前面的form表單中可以看出需要firstname和lastname兩個值,我們可以直接分別指定固定的值,也可以設定從csv文件中數據中的一系列符合要求的值。 在ThreadGroup元素上鼠標右鍵,通過”Add”-“Config Element”-“CSV Data Set Config”來添加CSV Data Set Config。
參數配置 按照上述步驟創建的TestPlan最終效果如下圖所示:
在這里再次強調一下,我們測試的是安裝在CentOS7中的Tomcat8自帶的實例程序,CentOS7虛擬機采用橋接方式,IP地址為192.168.60.198,請求的URL地址為:http://192.168.60.198:8080/examples/servlets/servlet/RequestParamExample HTTP Request Defaults的配置信息如下圖:
CSV Data Set Config的配置信息如下圖:
注意:在這里提到了一個名為Tomcat_performance_test_parameter.csv的文件,這個文件和當前JMeter項目文件Tomcat-based-test-plan-JMeter3.2_Demo.jmx放在同一目錄下。可以使用NotePad++之類的文本編輯軟件創建這個文件,并將文件編碼設置為utf-8,文件內容如下:
本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理
總結
以上是生活随笔為你收集整理的jmeter+mysql+set_Jmeter中如何进行对数据库压测(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tensorflow环境下的识别食物_T
- 下一篇: 数据库技术mysql能干什么_MySQL