亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

jmeter是Apache公司基于JAVA開發(fā)的一款開源壓力測(cè)試工具,體積小,功能全,使用方便,是一個(gè)比較輕量級(jí)的測(cè)試工具,使用起來非常簡單。因?yàn)閖meter是java開發(fā)的,所以運(yùn)行的時(shí)候必須先要安裝jdk才可以。jmeter是免安裝的,拿到安裝包之后直接解壓就可以使用,同時(shí)它在linux/windows/macos上都可以使用。

jmeter可以做接口測(cè)試和壓力測(cè)試。其中接口測(cè)試的簡單操作包括做http腳本(發(fā)get/post請(qǐng)求、加cookie、加header、加權(quán)限認(rèn)證、上傳文件)、做webservice腳本、參數(shù)化、斷言、關(guān)聯(lián)(正則表達(dá)式提取器和處理json-json path extractor)和jmeter操作數(shù)據(jù)庫等等。

接口測(cè)試

Jmeter-http接口腳本

一般分五個(gè)步驟:(1)添加線程組 (2)添加http請(qǐng)求 (3)在http請(qǐng)求中寫入接入url、路徑、請(qǐng)求方式和參數(shù) (4)添加查看結(jié)果樹 (5)調(diào)用接口、查看返回值

jmeter 發(fā)get請(qǐng)求

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

jmeter 發(fā)post請(qǐng)求

Jmeter接口測(cè)試+壓力測(cè)試

 

jmeter 添加cookie

需要在線程組里添加配置元件—HTTP Cookie 管理器

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

jmeter 添加header

需要在線程組里面添加配置元件—HTTP信息頭管理器

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

jmeter 上傳文件

Jmeter接口測(cè)試+壓力測(cè)試

 

jmeter 參數(shù)化

入?yún)⒔?jīng)常變化的話,則可以設(shè)置成一個(gè)變量,方便統(tǒng)一修改管理;如果入?yún)⒁箅S機(jī)或可多種選擇,則通過函數(shù)生成器或者讀取文件形成一個(gè)變量。所以參數(shù)化有三種方式:用戶定義的變量、函數(shù)生成器、讀取文件。

(1)用戶定義的變量

  需要添加配置元件-用戶定義的變量。

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

(2)函數(shù)生成器

  需要用到函數(shù)助手功能,可以調(diào)用函數(shù)生成一些有規(guī)則的數(shù)據(jù)。常用的幾個(gè)函數(shù)有_uuid、_random、_time。_uuid會(huì)生成一個(gè)隨機(jī)唯一的id,比如在避免java請(qǐng)求重發(fā)造成未處理數(shù)據(jù)太多的情況,接口請(qǐng)求可加一個(gè)唯一的請(qǐng)求id唯一的響應(yīng)id進(jìn)行一一對(duì)應(yīng);隨機(jī)數(shù)_random,可以在你指定的一個(gè)范圍里取隨機(jī)值;取當(dāng)前時(shí)間_time,一些時(shí)間類的入?yún)⒖梢允褂?如{__time(,)} 是生成精確到毫秒的時(shí)間戳、{__time(/1000,)}是生成精確到秒的時(shí)間戳、${__time(yyyy-MM-dd HH:mm:ss,)} 是生成精確到秒的當(dāng)前時(shí)間。

Jmeter接口測(cè)試+壓力測(cè)試

 

(3)從文件讀取

  需要在線程組里面添加配置元件-CSV Data Set Config

  其中Recycle on EOF:設(shè)置True后,允許循環(huán)取值

Jmeter接口測(cè)試+壓力測(cè)試

 

  具體的例子如下所示:

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

jmeter 斷言

jmeter斷言用來檢測(cè)響應(yīng)返回的結(jié)果和我們預(yù)期的是否一致。若針對(duì)整個(gè)線程組的話,則在線程組下添加斷言-響應(yīng)斷言;若只是針對(duì)某個(gè)請(qǐng)求的話,則在請(qǐng)求下添加斷言-響應(yīng)斷言。

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

jmeter關(guān)聯(lián)

接口請(qǐng)求之間存在參數(shù)調(diào)用,為了保存這個(gè)參數(shù),建立jmeter關(guān)聯(lián)。比如登陸接口和購買商品接口,購買商品接口就需要登陸接口返回的token等登陸信息,jmeter關(guān)聯(lián)就可以保存這個(gè)token信息,方便購買商品接口使用。

jmeter關(guān)聯(lián)可以通過二種方式來完成,獲取到返回結(jié)果中指定的值。它們分別是正則表達(dá)式提取器、 json path extractor。

(1)正則表達(dá)式提取器

若想獲取的返回值未匹配到,可以把正則表達(dá)式兩邊匹配的數(shù)據(jù)擴(kuò)大點(diǎn)。

Jmeter接口測(cè)試+壓力測(cè)試

 

a. 關(guān)于正則表達(dá)式

():括起來的部分就是要提取的。

.:匹配除換行外的任何字符串。

+:代表+號(hào)前面的字符必須至少出現(xiàn)一次(一次或多次)。

?:代表?前面的字符最多可以出現(xiàn)一次,在找到第一個(gè)匹配項(xiàng)后停止(0次或1次)。

:代表號(hào)前面的字符可以不出現(xiàn),也可以出現(xiàn)一次或者多次(0次、1次或者多次)

(.*):貪婪模式,匹配盡可能多的字符

(.*?)或(.+?):匹配盡可能少的字符,一旦匹配到第一個(gè)就不往下走了。

b. 關(guān)于模板

若想提取多個(gè)值的話,比如是a和b這兩個(gè)值,則可以寫成:$1$$2$。無論要提取多少個(gè)值,引用名稱就是一個(gè)的,比如名稱為id,${id_go}:獲取整個(gè)字符串a(chǎn)b,${id_g1}:獲取的是a,${id_g2}:獲取的是b。

下面有一個(gè)具體的實(shí)例,如下圖所示:

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

(2)json path extractor

jmeter通過安裝json path extractor插件來處理json串,提取json串中的字段值。插件的下載地址:
https://jmeter-plugins.org/?search=jpgc-json,下載完成,解壓后,直接把lib文件夾放到j(luò)meter相應(yīng)目錄下面。特別說明:jmeter 2.xx左右的版本嘗試過無法使用該插件,在jmeter 3.xx左右的版本裝完插件后能正常使用。

需要在請(qǐng)求下創(chuàng)建后置處理器-jp@gc-JSON Path Extractor,具體的實(shí)例如下所示:

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

關(guān)于json path相關(guān)插件的方法和使用,推薦可以看這篇博客:
http://www.jianshu.com/p/56a607fc0d8f

jmeter 操作數(shù)據(jù)庫

操作數(shù)據(jù)庫基本有四個(gè)步驟:(1)導(dǎo)入MySQL的jdbc的jar包 (2)創(chuàng)建數(shù)據(jù)庫的連接配置,線程組里添加配置元件-JDBC Connection Configuration (3)線程組里添加jdbc request,寫sql語句 (4)添加察看結(jié)果樹,點(diǎn)擊啟動(dòng)按鈕,就能看到執(zhí)行的SQL。具體的實(shí)例如下截圖所示:

Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 


Jmeter接口測(cè)試+壓力測(cè)試

 

特別說明:jmeter還可以操作oracle、postgreSQL、msSQL、mongodb等等數(shù)據(jù)庫,同時(shí)不同的數(shù)據(jù)庫,JDBC Connection Configuration填寫的Database url格式和JDBC Driver驅(qū)動(dòng)名稱也不相同。jmeter數(shù)據(jù)庫驅(qū)動(dòng)列表如下表所示:

Jmeter-

Jmeter接口測(cè)試+壓力測(cè)試

 

webservice接口腳本

基本步驟:

(1)先需要通過soapui工具獲取到webservice接口的請(qǐng)求地址、請(qǐng)求報(bào)文和請(qǐng)求soapaction。

(2)jmeter新建一個(gè)線程組

(3)線程組下建立SOAP/XML-RPC Request,寫入請(qǐng)求url、請(qǐng)求報(bào)文、請(qǐng)求soapaction。

(4)啟動(dòng)jmeter,調(diào)用接口,通過察看結(jié)果樹查看返回值。

soapui獲取信息的實(shí)例如下圖所示:

Jmeter接口測(cè)試+壓力測(cè)試

 

  soapui提交完后,點(diǎn)擊raw,可看到soapation,有些接口若沒返回soapation,則jmeter里也就不用填。

Jmeter接口測(cè)試+壓力測(cè)試

 

   jmeter-webservice腳本實(shí)例如下圖所示:

Jmeter接口測(cè)試+壓力測(cè)試

 

壓力測(cè)試

壓力測(cè)試分兩種場(chǎng)景:一種是單場(chǎng)景,壓一個(gè)接口的;第二種是混合場(chǎng)景,多個(gè)有關(guān)聯(lián)的接口。壓測(cè)時(shí)間,一般場(chǎng)景都運(yùn)行10-15分鐘。如果是疲勞測(cè)試,可以壓一天或一周,根據(jù)實(shí)際情況來定。

壓測(cè)任務(wù)需求的確認(rèn)

壓測(cè)前要明確壓測(cè)功能和壓測(cè)指標(biāo),一般需要確定的幾個(gè)問題:

  1. 固定接口參數(shù)進(jìn)行壓測(cè)還是進(jìn)行接口參數(shù)隨機(jī)化壓測(cè)?
  2. 要求支持多少并發(fā)數(shù)?
  3. TPS(每秒鐘處理事務(wù)數(shù))目標(biāo)多少?響應(yīng)時(shí)間要達(dá)到多少?
  4. 壓服務(wù)器名稱還是壓服務(wù)器IP,一般都是壓測(cè)指定的服務(wù)器

壓測(cè)設(shè)置

  1. 線程數(shù):并發(fā)數(shù)量,能跑多少量。具體說是一次存在多少用戶同時(shí)訪問
  2. Rame-Up Period(in seconds):表示JMeter每隔多少秒發(fā)動(dòng)并發(fā)。理解成準(zhǔn)備時(shí)長:設(shè)置虛擬用戶數(shù)需要多長時(shí)間全部啟動(dòng)。如果線程數(shù)是20,準(zhǔn)備時(shí)長為10,那么需要10秒鐘啟動(dòng)20個(gè)數(shù)量,也就是每秒鐘啟動(dòng)2個(gè)線程。
  3. 循環(huán)次數(shù):這個(gè)設(shè)置不會(huì)改變并發(fā)數(shù),可以延長并發(fā)時(shí)間。總請(qǐng)求數(shù)=線程數(shù)*循環(huán)次數(shù)
  4. 調(diào)度器:設(shè)置壓測(cè)的啟動(dòng)時(shí)間、結(jié)束時(shí)間、持續(xù)時(shí)間和啟動(dòng)延遲時(shí)間。

壓測(cè)結(jié)果查看

運(yùn)行完后,聚合報(bào)告會(huì)顯示壓測(cè)的結(jié)果。主要觀察Samples、Average、error、Throughput。

  1. Samples:表示一共發(fā)出的請(qǐng)求數(shù)
  2. Average:平均響應(yīng)時(shí)間,默認(rèn)情況下是單個(gè)Request的平均響應(yīng)時(shí)間(ms)
  3. Error%:測(cè)試出現(xiàn)的錯(cuò)誤請(qǐng)求數(shù)量百分比。若出現(xiàn)錯(cuò)誤就要看服務(wù)端的日志,配合開發(fā)查找定位原因
  4. Throughput:簡稱tps,吞吐量,默認(rèn)情況下表示每秒處理的請(qǐng)求數(shù),也就是指服務(wù)器處理能力,tps越高說明服務(wù)器處理能力越好。

壓測(cè)結(jié)果的分析

  1. 有錯(cuò)誤率同開發(fā)確認(rèn),確定是否允許錯(cuò)誤的發(fā)生或者錯(cuò)誤率允許在多大的范圍內(nèi);
  2. Throughput吞吐量每秒請(qǐng)求的數(shù)大于并發(fā)數(shù),則可以慢慢的往上面增加;若在壓測(cè)的機(jī)器性能很好的情況下,出現(xiàn)吞吐量小于并發(fā)數(shù),說明并發(fā)數(shù)不能再增加了,可以慢慢的往下減,找到最佳的并發(fā)數(shù);
  3. 壓測(cè)結(jié)束,·登陸相應(yīng)的web服務(wù)器查看CPU等性能指標(biāo),進(jìn)行數(shù)據(jù)的分析;
  4. 最大的tps:不斷的增加并發(fā)數(shù),加到tps達(dá)到一定值開始出現(xiàn)下降,那么那個(gè)值就是最大的tps。
  5. 最大的并發(fā)數(shù):最大的并發(fā)數(shù)和最大的tps是不同的概率,一般不斷增加并發(fā)數(shù),達(dá)到一個(gè)值后,服務(wù)器出現(xiàn)請(qǐng)求超時(shí),則可認(rèn)為該值為最大的并發(fā)數(shù)。
  6. 壓測(cè)過程出現(xiàn)性能瓶頸,若壓力機(jī)任務(wù)管理器查看到的cpu、網(wǎng)絡(luò)和cpu都正常,未達(dá)到90%以上,則可以說明服務(wù)器有問題,壓力機(jī)沒有問題。
  7. 影響性能考慮點(diǎn)包括:數(shù)據(jù)庫、應(yīng)用程序、中間件(tomact、Nginx)、網(wǎng)絡(luò)和操作系統(tǒng)等方面。

jmeter在linux下進(jìn)行壓力測(cè)試

1、jmeter 在linux安裝

  簡單說下,就是要先安裝jdk,同時(shí)再配置環(huán)境變量,最后再上傳jmeter壓縮的安裝包,在linux下解壓完安裝包就可以使用了。

2、jmeter在linux運(yùn)行

進(jìn)入jmeter下的bin目錄下運(yùn)行腳本,未配置jmeter環(huán)境變量的條件下,運(yùn)行的命令:

./jmeter -n -t a.jmx -l res.jtl

其中a.jmx是準(zhǔn)備好的jmeter腳本,res.jtl是測(cè)試結(jié)果文件,測(cè)試結(jié)果文件可以導(dǎo)入到j(luò)meter察看結(jié)果樹下查看。

jmeter添加負(fù)載機(jī)

分享到:
標(biāo)簽:Jmeter
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定