日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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

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

接口測試

Jmeter-http接口腳本

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

jmeter 發get請求

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

jmeter 發post請求

Jmeter接口測試+壓力測試

 

jmeter 添加cookie

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

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

jmeter 添加header

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

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

jmeter 上傳文件

Jmeter接口測試+壓力測試

 

jmeter 參數化

入參經常變化的話,則可以設置成一個變量,方便統一修改管理;如果入參要求隨機或可多種選擇,則通過函數生成器或者讀取文件形成一個變量。所以參數化有三種方式:用戶定義的變量、函數生成器、讀取文件。

(1)用戶定義的變量

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

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

(2)函數生成器

  需要用到函數助手功能,可以調用函數生成一些有規則的數據。常用的幾個函數有_uuid、_random、_time。_uuid會生成一個隨機唯一的id,比如在避免java請求重發造成未處理數據太多的情況,接口請求可加一個唯一的請求id唯一的響應id進行一一對應;隨機數_random,可以在你指定的一個范圍里取隨機值;取當前時間_time,一些時間類的入參可以使用,如{__time(,)} 是生成精確到毫秒的時間戳、{__time(/1000,)}是生成精確到秒的時間戳、${__time(yyyy-MM-dd HH:mm:ss,)} 是生成精確到秒的當前時間。

Jmeter接口測試+壓力測試

 

(3)從文件讀取

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

  其中Recycle on EOF:設置True后,允許循環取值

Jmeter接口測試+壓力測試

 

  具體的例子如下所示:

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

jmeter 斷言

jmeter斷言用來檢測響應返回的結果和我們預期的是否一致。若針對整個線程組的話,則在線程組下添加斷言-響應斷言;若只是針對某個請求的話,則在請求下添加斷言-響應斷言。

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

jmeter關聯

接口請求之間存在參數調用,為了保存這個參數,建立jmeter關聯。比如登陸接口和購買商品接口,購買商品接口就需要登陸接口返回的token等登陸信息,jmeter關聯就可以保存這個token信息,方便購買商品接口使用。

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

(1)正則表達式提取器

若想獲取的返回值未匹配到,可以把正則表達式兩邊匹配的數據擴大點。

Jmeter接口測試+壓力測試

 

a. 關于正則表達式

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

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

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

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

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

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

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

b. 關于模板

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

下面有一個具體的實例,如下圖所示:

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

(2)json path extractor

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

需要在請求下創建后置處理器-jp@gc-JSON Path Extractor,具體的實例如下所示:

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

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

jmeter 操作數據庫

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

Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 


Jmeter接口測試+壓力測試

 

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

Jmeter-

Jmeter接口測試+壓力測試

 

webservice接口腳本

基本步驟:

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

(2)jmeter新建一個線程組

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

(4)啟動jmeter,調用接口,通過察看結果樹查看返回值。

soapui獲取信息的實例如下圖所示:

Jmeter接口測試+壓力測試

 

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

Jmeter接口測試+壓力測試

 

   jmeter-webservice腳本實例如下圖所示:

Jmeter接口測試+壓力測試

 

壓力測試

壓力測試分兩種場景:一種是單場景,壓一個接口的;第二種是混合場景,多個有關聯的接口。壓測時間,一般場景都運行10-15分鐘。如果是疲勞測試,可以壓一天或一周,根據實際情況來定。

壓測任務需求的確認

壓測前要明確壓測功能和壓測指標,一般需要確定的幾個問題:

  1. 固定接口參數進行壓測還是進行接口參數隨機化壓測?
  2. 要求支持多少并發數?
  3. TPS(每秒鐘處理事務數)目標多少?響應時間要達到多少?
  4. 壓服務器名稱還是壓服務器IP,一般都是壓測指定的服務器

壓測設置

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

壓測結果查看

運行完后,聚合報告會顯示壓測的結果。主要觀察Samples、Average、error、Throughput。

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

壓測結果的分析

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

jmeter在linux下進行壓力測試

1、jmeter 在linux安裝

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

2、jmeter在linux運行

進入jmeter下的bin目錄下運行腳本,未配置jmeter環境變量的條件下,運行的命令:

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

其中a.jmx是準備好的jmeter腳本,res.jtl是測試結果文件,測試結果文件可以導入到jmeter察看結果樹下查看。

jmeter添加負載機

分享到:
標簽:Jmeter
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定