Jmeter和Locust的相同点和不同点?locust和Jmeter分布式设置
相同点:都是性能测试工具, 都支持no-web运行,都支持分布式
不同点:
Jmeter: java写的,有完整的内置函数和第三方插件,能测试几乎所有应用程序和协议,
基于线程,为每个用户分配一个单独的线程,消耗大量资源,在一台机器上可模拟的用户数量少;
支持脚本录制,测试报告完整;
大并发还是选择Jmeter来做
Locust:python写代码,基于协程,在一台机器上能轻松模拟数千个并发用户;
相同配置的机器,Locust单机并发量更高;
分布式配置比更Jmeter更简单;
相同并发下,Locust的单机QPS会低于Jmeter的结果,是因为 Locust的client本身是基于python的第三方库requests,然而,requests本身为了简化requests包的使用的便捷,造成了requests的包相对的资源消耗更高,导致发压工具本身的性能消耗过高,从而导致最终的数据并不准确,解决方案为分布式;
Locust分布式设置
1、在每台机器上放置相同点脚本;
2、在master机上执行: locust -f locustfile.py --master
3、在slave机上执行:locust -f locustfile.py –slave --master-host=xxxxx
Jmeter分布式设置
1、在controller机的Jmeter/bin目录下,找到JMeter.properties,修改remote_hosts=ip:1099, ip2:1099 (1099为Jmeter的control机和agent机通讯的端口号;
2、每台slave机器都需cd到jmeter安装目录,执行./jmeter-server;
3、master机器 jmeter.bat -n -t testscript/Baidu.jmx -R 192.168.182.129:1100,192.168.182.130:1200 -l testresult/01-result.jtl