三 模擬多使用者訪問 jmeter壓測

2021-09-21 05:43:08 字數 2941 閱讀 5573

步驟:新增執行緒組、新增***(聚合報告)、執行緒組右鍵->新增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 設定啟動時間,持續多少...