Jmeter壓力測試
一、壓力測試場景設置
一般我們在做壓力測試的時候,分單場景和混合場景,單場景也就是咱們壓測單個接口的時候,多場景也就是有業務流程的情況下,比如說一個購物流程,那么這樣的場景就是混合場景,就是有多個接口一起來做操作。
1、單場景,一個請求就可以了
2、混合場景,多個請求
3、壓測時間,一般場景都是運行10-15分鍾,如果是做疲勞測試的話,可以壓一天或者一周,根據具體的情況來定
二、線程屬性 、調度器配置
- 線程數:當前線程數量,可以簡單的理解為用戶數量。
- Ramp-up Period (in seconds):達到上面指定線程數所花費的時間,單位為秒。舉個栗子:假設線程數為100個,花費時間20s,那么每秒啟動的線程數 = 線程數/時間,即100/20 = 5。換句話說,就是1秒啟動5個線程。
- 循環次數:勾選“永遠”選項,則線程組一直循環。否則,以后面所填數量為准。
- Delay Thread creation until needed:當線程需要執行的時候,才會被創建。如果不勾選此選項,所有線程在開始時就全部被創建。
- 調度器:勾選此選項,才可修改下面的調度器配置。
調度器配置
- 持續時間(秒):整個測試計划持續的時間。(優先於后面的結束時間選項)
- 啟動延遲(秒):測試計划啟動后,會被延遲啟動,時間為選項填入的時間。(優先於后面的啟動時間選項)
- 啟動時間:整個測試計划將於此處填寫的時間點啟動
- 結束時間:整個測試計划將於此處填寫的時間點結束
線程組說白了就是模擬多個用戶,同時或者有順序的去執行任務。一個線程組可設置多個線程,每個線程之間互不影響。在服務器的並發測試有着非常重要的作用。其中,每個線程的執行,操作的變量都不會影響其他線程的變量值
三、壓力測試數據准備
在做壓測的時候,數據量少和數據量大的情況下,測試的結果是不一樣的,所以,我們在設計場景的時候是要考慮到這種情況的,要測試數據庫中數據量大和數據量小的情況,如果是要測試數據量大的情況下,就要造數據了,造數據可以使用jmeter,操作數據庫來造數據,也可以使用python連接數據庫,批量的造數據。
四、壓力測試結果查看
添加聚合報告:
查看結果關注的幾個指標
1、tps是每秒鍾處理的請求數,也就是指服務器的處理能力,tps越高說明服務器處理能力越好
2、響應時間,也就是每個請求的處理時間
3、並發用戶數 也就是多少並發
Jmeter分布式壓測 (添加負載機)
我們在壓測的時候,可能並發比較大, 一台機子已經啟動不了那么多並發了,這個時候我們就要使用多台機子一起來發壓力,就要添加壓力機,添加壓力機怎么添加呢,首先要在做壓力機的機子上啟動jmeter的代理,然后做為控制機的機子上添加上壓力機的ip即可。 Jmeter的bin目錄下有一個jmeter-server,啟動它即可,windows機子作為壓力機的話,運行jmeter-sever.bat,linux作為壓力機的話,運行jmeter-server。 然后在作為控制機的jmeter配置文件里添加壓力機ip即可,jmeter的配置文件在bin目錄下jmeter.properties,添加壓力機的時候,在配置文件里面找到remote_hosts添加ip,然后重啟jmeter就可以看到遠程壓力機了
一、jmeter分布式壓測 (多台電腦一起壓測)
1、有多台電腦,每台電腦上都有jmeter,而且這幾台電腦都互相能ping通
2、在我的電腦的jmeter的配置文件jmeter.properties里面添加了其他電腦的ip (打開配置文件后,搜索 remote_hosts)(其他機子不需要配置)
3、在其他人的電腦上要啟動jmeter-server
通過jmeter-server.bat
主機上的Jmeter才能找到其他電腦上的Jmeter,來調他們的包,讓他們的電腦去幫助主機發請求(發壓力);
只需要在主機上寫好腳本就好,但是如果有參數化文件,那么也要在其他人的電腦的同樣位置放一份
因為改了配置文件,因此需要重啟Jmeter才能看到添加的機子
、2、在我的電腦的jmeter的配置文件jmeter.properties里面添加了其他電腦的ip (打開配置文件后,搜索 remote_hosts)(其他機子不需要配置)
關系圖:一台主年腦+多台壓測電腦
3、在其他人的電腦上要啟動jmeter-server
重啟 Jmeter之后:
不以圖形化界面運行 如 :在Linux下運行 jmx腳本 ,或windows下CMD運行
我們在做測試的時候,有時候要運行很久,公司用的測試服務器一般都是linux,就可以運行在linux下面,linux下面不能像windows一樣有圖形化界面,那怎么運行腳本呢,就先在windows上把腳本做好,然后在linux下運行即可,linux下運行jmeter是在jmeter的bin目錄下的jmeter.sh這個shell腳本。 sh jmeter.sh -n –t a.jmx -l res.jtl -n代表以沒有圖形化界面啟動,-t代表后面是測試腳本,a.jmx也就是我們做好的jmeter腳本,-l代表測試結果 res.jtl就是測試結果文件,查看結果的話,在查看結果樹視圖中導入這個res.jtl就可以查看到測試結果了
1、沒有圖形化界面運行
2、先把jmeter的bin目錄加入到環境變量里面
然后執行這個命令 (cmd命令窗口)
jmeter -n -t e:\path\HTTP請求.jmx -l e:/path/res.jtl
-n 代表在沒有圖形化界面下運行
-t 指定一個測試腳本
-l 指定結果文件,這個查看結果的文件要以.jtl
上圖運行的時候 在 C:\Users\Administrator 下運行,因此如果命令行與結果文件 res.jtl 沒有指定路徑的話,該結果文件就會存在於當前所在路徑下
在jmeter里面添加聚合報告,在導入res.jtl文件就可以查看執行結果
Jmeter 連接數據庫、操作數據庫
一、步驟:
1、導入jdbc的jar包,因為jmeter本身不能直接連接mysql,所以需要導入第三方的jar包,來連接mysql 。
找到JAR包的絕對路徑
2、創建數據庫連接配置,mysql的url、端口號、賬號、密碼
1、添加一個JDBC Connection Configuration
2、配置mysql連接池的名稱,后面發sql請求的時候指定連接哪里
3、數據庫的url:jdbc:mysql://192.00.0.00:3307/bugfree?allowMultiQueries=true
4、數據庫驅動:這里就是指定連接什么類型的數據庫,mysql、oracle、SqlServer等等
5、賬號密碼
3、寫sql,執行sql
4、查看結果
斷言
斷言:
就是自動幫你校驗結果用的。