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