jmeter壓力測試_用Jmeter實現對接口的壓力測試

一、多個真實用戶對接口的壓力測試

1. 獲取多個真實用戶的token的兩種方法:

1)第一種:讓開發幫忙生成多個token(多個用戶賬戶生成的token),導出為csv格式的文件(以下步驟均以該方法為基礎)

be1a439119722eb2a77b6158462ce54c.png

2)第二種:自己設置多個用戶賬戶和密碼,并存儲于txt文件中,文件名稱叫:login.txt(使用詳情見步驟三)

1f6d4799deec7eed395934aca32fb2ff.png

2. 新建線程組,并根據需求設置”線程數“和”時間“

2ea1c40a6c9d27db7a4dc7724fa9272f.png

3. 在線程組下創建HTTP Header Manager,并設置信息頭中的參數和值

1)該信息頭放在了線程組下面,所以是針對該線程組下所有的接口;

2)不是所有的請求都需要設置信息頭。若后端需要一些驗證信息,比如“app的版本號”,“token”等,需要HTTP Header Manager 來保證發送HTTP請求的正確,否則是不需要的。

3)接口發送請求時,需要獲取登錄接口返回的token值,用”${token}“引入該變量

4)token變量的值取自步驟1中的csv文件,如何設置,請看步驟4

354e5cc21bc6a99e0c469d1d9094f534.png

4. 在線程組下添加CSV數據文件設置

1)從本地添加帶有token信息的csv文件、設置文件編碼為”UTF-8“

2)變量名稱設置為”token“,方便信息頭調用

728b427ef51c2bbb142435af6474dae8.png

5. 添加http請求

1)設置協議、服務器名稱、端口號、方法和路徑(用charles等工具抓包即可得到接口信息)

901b2fc7abdf28f554c96a6ba87906d6.png

6. 添加查看結果樹和匯總報告,運行后查看結果

14dff2a8db7f1d3b6e0fbc816d151521.png

二、模擬單個用戶獲取token并應用在其他接口

1. 在登錄接口請求下添加"JSON Extractor",設置變量名、接口響應數據中字段名

ec5efd4cc8c3a9ad26b8b9645b40d759.png

2. 把步驟1中的變量名應用于其他需要該變量的接口中即可,比如圖中的asset_main接口的headers中

2a47042a92cd082bba0e4aa85e48dfb1.png

3. 用Debug Sampler檢查變量的值是否取到,在察看結果樹中查看“登錄”和“Debug Sampler”中的值

3caf99970a35b6a28fbb005f654a5542.png

三、模擬多個用戶獲取token并應用在其他接口

1. 創建login.txt文件,并在CSV Data Set Config中選擇該文件所在路徑

fc482638c02022c0891f495653419e90.png

2. 把登錄接口中的用戶賬戶和密碼參數化,名稱與CSV Data Set Config中保持一致

e82ea4a0d81fe274d25f7df120333648.png

3. 在其他接口中的應用和步驟二一樣,用戶賬戶和密碼的調用是按照順序從上到下,可以在“察看結果樹”中查看多個登錄接口的請求參數phone_number(對應變量account)和password

75c5b0528ed86351b8f3d459e636c0d9.png

四、絕對并發、多場景混合并發

1. 使用Synchronizing Timer(同步定時器)實現絕對并發

1)Number of Simulated Users to Group by(集合點數):集合到對應的用戶量才發送請求,設置的值不能大于線程數

2)Timeout in milliseconds(等待超時時間,毫秒):在指定的毫秒時間內沒有達到集合點數,將停止等待直接發送請求

04a3421cf763af254c84ea9268253ca0.png

3)未使用Synchronizing Timer實現的相對并發(10s運行500個進程),在“用表格察看結果”處察看接口請求開始時間。從圖中可以看出,用戶在某個時間段內的隨機一個時間點去執行,屬于相對并發。

b2c2be0df9c53c4dd02cfab814a40ec0.png

4)使用Synchronizing Timer實現的絕對并發(10s運行500個進程),在“用表格察看結果”處查看接口請求開始時間。從圖中可以看出,集合到3個用戶才發送請求,做到了絕對并發。

2b2e91d01212f85d257953ce795ed34d.png

2. 多場景混合并發測試:

1)在線程組下面(各個接口上面),添加多個吞吐量控制器(Throughput Controller)

3f844bfd224b21fd00f1ae528deedd81.png

2)設置總線程數為20,“get_current_price_01”接口的線程數占比為30%,“get_current_price_02”接口的線程數占比為70%

74bb95dc05af478aa9cf150a34c3c42f.png

3)運行后,查看“View Results Tree”和“匯總報告”。從“View Results Tree”可看出兩個接口是混合并發的;從“匯總報告”可看出接口占比的分別為30%和70%

47a3eefbb8f6fdf00265b792b2a1b77f.png

e97fe720a339683ba79c6a50fc05a5e2.png

五、測試報告生成

命令:[jmeter.bat路徑] -n -t 財富接口.jmx -l financial.csv -e -o financial

5a37a6c3720dc7032c941c4bd7d392f6.png

026967a35d2496c184d2062413d4074a.png

推薦閱讀

  • 【JVM】類加載、連接和初始化過程

  • 2018全套學習視頻資源已經整理好了!免費分享!

  • 【資源分享】Docker核心技術視頻教程

  • 【資源分享】螞蟻課堂2期無加密-Java視頻教程

  • Java日志體系詳細總結

  • 【資源分享】Spring Cloud微服務實戰視頻課程

  • 2020傳智-黑馬Python全系列課程

  • 詳解BlockingQueue

  • Springmvc源碼解析總結

  • 老男孩教育-Linux中高級運維-58期

10d4808686720db3806f84b8613e24e7.png

微信:YuanMing1510

本公眾號會不定期給大家發福利,包括學習資源等,敬請期待吧!

推送內容如果現在工作用不上,可以先轉發朋友圈或收藏,用的時候方便找。

另外歡迎關注公眾號添加微信好友,互相學習交流。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454207.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

程序員成長之路(轉)

什么時候才能成為一個專業程序員呢?三年還是五年工作經驗?其實不用的,你馬上就可以了,我沒有騙你,因為專業程序員與業余程序員的區別主要在于一種態度,如果缺乏這種態度,擁有十年工作經驗也還是…

嵌入式開發——PWM高級定時器

學習目標 加強掌握PWM開發流程理解定時器與通道的關系掌握多通道配置策略掌握互補PWM配置策略掌握定時器查詢方式掌握代碼抽取優化策略掌握PWM調試方式學習內容 需求 點亮8個燈,采用pwm的方式。 定時器 通道 <

解決虛擬機時間引起的奇怪問題

一直使用得好好的虛擬機最近出了一個奇怪問題在虛擬機裝好的lamp在客戶端訪問phpmyadmin的時候,使用firefox登錄沒問題,但是使用IE不行總是停留在登錄的界面,而且沒有提供任何的出錯信息,就連在apache的日志里面也看不到.注意到同樣訪問的時候,在IE上顯示的轉向的url是[url]htt…

TensorFlow 基本操作

Tensorflow基本概念 圖(Graph):圖描述了計算的過程&#xff0c;TensorFlow使用圖來表示計算任務。張量(Tensor):TensorFlow使用tensor表示數據。每個Tensor是一個類型化的多維數組。操作(op):圖中的節點被稱為op(opearation的縮寫)&#xff0c;一個op獲得/輸入0個或多個Tensor…

03_zookeeper偽集群安裝

一句話說明白&#xff1a;在1臺機器上模擬多臺機器&#xff0c;對外提供服務 在理解zookeeper集群安裝方法的基礎上&#xff0c;本文描述如何將1個機器模擬為3個節點的zookeeper集群&#xff0c;建議先參考閱讀本文的前一期 zookeeper偽集群安裝總結 在本機上通過復制的方式&am…

python合成語音_MicroPython動手做(25)——語音合成與語音識別

6、AB按鍵切換語言合成項目[mw_shl_codepython,true]#MicroPython動手做(25)——語音合成與語音識別#AB按鍵切換語言合成項目from mpython import *import networkimport timeimport ntptimefrom xunfei import *import audiomy_wifi wifi()my_wifi.connectWiFi("zh"…

專訪谷歌CEO:像對待家人一樣對待員工

導語&#xff1a;《財富》近日公布了“2012年度美國100家最適宜工作的公司”榜單&#xff0c;谷歌當選冠軍。即將于2月6日出版的美國《財富》雜志印刷版將刊登對谷歌CEO拉里佩奇(Larry Page)的專訪&#xff0c;對谷歌的工作環境進行了介紹。 以下為采訪概要&#xff1a; 問&a…

TensorFlow 分布式

一、簡介 使用單臺機器或者單個GPU/CPU來進行模型訓練&#xff0c;訓練速度會受資源的影響&#xff0c;因為畢竟單個的設備的計算能力和存儲能力具有一定的上限的&#xff0c;針對這個問題&#xff0c;TensorFlow支持分布式模型運算&#xff0c;支持多機器、多GPU、多CPU各種模…

第五周測試

---恢復內容開始--- 一 視頻知識 1 linux系統下如何區分內核態與用戶態 在內核態&#xff1a;cs:eip可以是任意的地址&#xff0c;4G的內存地址空間 在用戶態&#xff1a;cs:eip只能訪問0x00000000—0xbfffffff的地址空間 2 系統調用的三層皮&#xff1a;xyz、system_call和sys…

網頁制作小技巧:dl dt dd標簽用法

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 一般我們在做列表的時候通常只會用到ul和li,至于DL一般都很少用到&#xff0c;它也屬于列表類的標簽&#xff0c;下面說一下大概的用法&#xff1a; <dl>標記定義了一個定義列…

latex公式對齊_Word 寫公式最方便的方法

自從用上了word 2016之后&#xff0c;發現他的公式編輯器真香!真香!!他有了latex的優雅&#xff0c;又有了Mathtype的可視化效果&#xff0c;甚至更好哈&#xff0c;當編輯大量公式時也不會因為插件問題卡掉當前的努力。學起來也不復雜&#xff0c;反正是word. 強烈推薦。我們最…

路要怎么走?關于程序員成長的一點思考

程序員的我們&#xff0c;是否想過今后的路該怎么走、如何發展、技術怎樣提高?其實這也是我一直在思考的問題。下面就此問題&#xff0c;分享下我的看法。因為我閱歷有限&#xff0c;有什么說的不對的&#xff0c;大家見諒&#xff0c;千萬不要噴…… 一、程序員應該打好基礎 …

TensorFlow 常見API

數據類型轉換相關API Tensor Shape獲取以及設置相關API Tensor合并、分割相關API Error相關類API 常量類型的Tensor對象相關API 序列和隨機Tensor對象相關API Session相關API 邏輯運算符相關API 比較運算符相關API 調試相關API 圖像處理-編碼解碼相關API 圖像處理-調整大小相關…

python封裝繼承多態_淺談JavaScript的面向對象和它的封裝、繼承、多態

寫在前面既然是淺談&#xff0c;就不會從原理上深度分析&#xff0c;只是幫助我們更好地理解...面向對象與面向過程面向對象和面向過程是兩種不同的編程思想&#xff0c;剛開始接觸編程的時候&#xff0c;我們大都是從面向過程起步的&#xff0c;畢竟像我一樣&#xff0c;大家接…

將萬億以下的阿拉伯數字轉為中文金額

package test.practice.month3; public class Test005 { //可以不用swich case將123456789轉為一二三四五六七八九 //直接用char[] chars {一,二,三,四,五,六,七,八,九}; public static void main(String[] args) { System.out.println(getCMoney(102030405067L)); } private …

8.2 命令歷史

2019獨角獸企業重金招聘Python工程師標準>>> 命令歷史 history //查看之前的命令.bash_history //存放之前敲過的命令&#xff0c;在 /root/ 目錄下最大1000條 //默認參數值是1000條變量HISTSIZE/etc/profile中修改 //在其中可編輯HISTSIZE參數HISTTIMEFORMAT"…

使用GCC生成無格式二進制文件(plain binary files)

使用C語言生成一個二進制文件 使用自己喜歡的文本編輯器寫一個test.c&#xff1a; int main() { } 再使用如下命令編譯&#xff1a; gcc –c test.c ld –o test –Ttext 0x0 –e main test.o objcopy –R .note –R .comment –S –O binary test test.bin 最后生成的二進…

TensorFlow 實例一:線性回歸模型

代碼 # -- encoding:utf-8 -- """ Create by ibf on 2018/5/6 """import numpy as np import tensorflow as tf# 1. 構造一個數據 np.random.seed(28) N 100 x np.linspace(0, 6, N) np.random.normal(loc0.0, scale2, sizeN) y 14 * x - …

python后端數據發送到前端_Python Django 前后端數據交互 之 后端向前端發送數據...

Django 從后臺往前臺傳遞數據時有多種方法可以實現。最簡單的后臺是這樣的&#xff1a;from django.shortcuts import renderdefmain_page(request):return render(request, ‘index.html‘)這個就是返回index.html的內容&#xff0c;但是如果要帶一些數據一起傳給前臺的話&…

Dapper的基本使用

Dapper是.NET下一個micro的ORM&#xff0c;它和Entity Framework或Nhibnate不同&#xff0c;屬于輕量級的&#xff0c;并且是半自動的。也就是說實體類都要自己寫。它沒有復雜的配置文件&#xff0c;一個單文件就可以了。給出官方地址。 http://code.google.com/p/dapper-dot-n…