步驟:新增執行緒組、新增***(聚合報告)、執行緒組右鍵->新增sampler-》http請求
在本地對/goods/to_list這個簡單的壓力測試,其實這個介面裡面就乙個任務:
listgoodsvolist = goodsservice.getgoodsvolist();
我以1000的併發,迴圈10次,盡快執行完。測試結果發現吞吐量最高大約是350。這個併發量比較小。
模擬多個不同使用者同時操作。其實就是建立乙個檔案,然後引用配置檔案中變數即可。下面有示例。
1.測試計畫->新增配置元件->csv data set config
2.引用變數${}
先在本地用軟體生成乙個jmx檔案,將其上傳到liunx伺服器上,這個伺服器上現在跑當前程式的war包,如何生成這個war見下面介紹
在linux上安裝好jmeter執行:
jmeter.sh -n -t ***.jmx -l result.jtl
生成結果儲存到result.jtl檔案中。可以在圖形化介面軟體中開啟這個結果進行檢視。
在一台linux上進行測試,介面就上面提到的to_list。5000併發量,迴圈10次,在上面的測試結果大概是1267的qps。記錄此值,下面進行優化。
3.1 秒殺介面測試
我們的重點是對do_miaosha這個介面進行測試。但是呢,我們不能用乙個user來測試,所以在壓測之前,我們需要準備好資料:
整體思路是:先往資料庫插入5000條資料,然後生成5000個token到乙個txt檔案中。
3.2 連線資料庫的工具類:dbutil
public class dbutil catch(exception e) }
public static connection getconn() throws exception
}
3.3 db.properties檔案
spring.datasource.url=jdbc:mysql:
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.driver
spring.datasource.type=com.alibaba.druid.pool.druiddatasource
spring.datasource.filters=stat
3.4 執行程式,要先啟動web程式
public class userutil
inputstream.close();
bout.close();
string response = new string(bout.tobytearray());
jsonobject jo = json.parseobject(response);
string token = jo.getstring("data");
system.out.println("create token : " + user.getid());
string row = user.getid()+","+token;
raf.seek(raf.length());
raf.write(row.getbytes());
raf.write("\r\n".getbytes());
system.out.println("write to file : " + user.getid());
} raf.close();
system.out.println("over"); }
public static void main(string args)throws exception
}
最後檢視資料庫是否生成了5000條使用者資訊,以及是否在d盤下生成了相應的token檔案。
我們的目標是生成userid和token的檔案,所以我們需要對dologin這個方法進行修改,原來是返回result,現在返回result,這個string就是生成的token。
如果順利的話,生成的檔案是這樣的:
13000000000,3e9e716b555047f2af8ccdb3224da4f2
13000000001,53f55f4b1b3247669c5c2588548d8ee8
13000000002,87a313072df74b2d944c3227b14c2d4a
13000000003,77c7e4a834fd4986952a78c18c27d22c
下面,開啟jmeter軟體,首先是按照上面的步驟csv data set config,引入tokens.txt這個檔案。在variable names這一項寫上userid,token,這樣,就可以獲取到這兩個引數。
然後配置好http請求:
用aggregate report來檢視結果。這裡用5000的併發來發請求。
我在資料庫準備5個秒殺商品。
在測試中,發現資料庫的秒殺商品數量竟然變成了負數。。這個時候出現了執行緒安全,我們的超賣現象。
有的時候也能根據預期執行完,我們會發現5000個使用者只有5個人搶到了。資料庫裡只有五條記錄。秒殺的壓力測試效果我們已經達到了,下面就是執行緒安全和提高併發量的工作了。
**:壓測/
jmeter 多使用者登入多步驟訪問系統
轉 jmeter是乙個效能測試工具,同loadrunner類似,他功能較多,我們常用的功能是用jmeter模擬多瀏覽器對 做壓力測試。我們一般的 在進入業務功能前先需登入,然後才能訪問業務功能。下面介紹如何用jmeter登入系統再對主業務做壓力測試。1 執行jmeter 2 左邊樹將出現測試計畫 工...
vsftpd(多使用者訪問不同的目錄)
實現目標test1 使用者訪問 mnt m200 test1 test2使用者訪問 mnt m200 test2 sutest使用者訪問 mnt m200 centos7.5 1.關閉 setenforce 0 iptables f 2.建立使用者檔案 vim etc vsftpd vusers.l...
(jmeter筆記)模擬使用者各種場景壓測
外掛程式 standard set 1.jp gc ultimate thread group 波浪式壓測,最終執行緒組 start threads count 設定啟用併發數 initial delay,sec 設定延遲時間,延遲多少秒開始 startup time,sec 設定啟動時間,持續多少...