在使用Jmeter進行接口的性能測試時,由于Jmeter 是JAVA應用,對于CPU和內存的消耗比較大,所以,當需要模擬數以萬計的并發用戶時,使用單臺機器模擬所有的并發用戶就有些力不從心,甚至會引起JAVA內存溢出錯誤。為了讓jmeter工具提供更大的負載能力,這時可以使用Jmeter提供的分布式功能來啟動多臺電腦來分壓測試。
一、Jmeter分布式執行原理:
1、Jmeter分布式測試時,選擇其中一臺作為控制機(Controller),其它機器做為代理機(Agent)。
2、執行時,Controller會把腳本發送到每臺Agent上,Agent 拿到腳本后開始執行,Agent執行時不需要啟動Jmeter,只需要把jmeter-server.bat文件打開,它應該是通過命令行模式來執行的。
3、執行后,Agent會把結果回傳給Controller,Controller會收集所有Agent的信息并匯總。
二、代理機(Agent)配置:
1、Agent機上需要安裝JDK、Jmeter,并且配置好環境變量。
2、打開“運行”,輸入"cmd",打開運行面板,輸入“ipconfig”,找到IP地址,例如是:192.168.8.149
3、打開Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把這一行修改為”remote_hosts=192.168.8.149:1099,1099是端口號,可以隨意自定義。
4、打開jmeter-server.bat文件,就設置完成了,等待控制機(Controller)啟動。
三、控制機(Controller)配置:
1、Controller機上需要安裝JDK、Jmeter,并且配置好環境變量。
2、打開“運行”,輸入"cmd",打開運行面板,輸入“ipconfig”,找到IP地址,例如是:192.168.8.174
3、打開Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把這一行修改為”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口號,可以隨意自定義。如果有多臺代理機,這里需要把所有的代理機的IP地址和端口號都加入進來。
4、打開jmeter-server.bat文件,設置完成了。
四、開始添加線程組和請求來運行查看結果:
1、打開jmeter.bat文件,添加線程組,編輯線程數,這里設置100個線程數,循環2次,就是一臺機器發送100*2=200個請求。
2、添加HTTP請求,這里以訪問淘寶為例。
3、添加察看結果數和聚合報告,點擊運行,可以選擇遠程啟動或者遠程全部啟動,如果是點擊遠程啟動,可以選擇任意一臺電腦來運行,如果是點擊遠程全部啟動就會運行控制機和所有的代理機。
4、這里以點擊遠程全部啟動為例。運行結束后,查看聚合報告,每臺電腦設置的線程數為200,這里一共是兩臺電腦,所以是200*2=400個線程數。