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