深圳网站维护优化,wordpress寻模板,电商app排名300,怎么做自己的网站?目录
前言
wrk
优点
缺点
jmeter
优点
缺点
locust
优点
缺点
总结
资料获取方法 前言
当你想做性能测试的时候#xff0c;你会选择什么样的测试工具呢#xff1f;是会选择wrk#xff1f;jmeter#xff1f;locust#xff1f;还是loadrunner呢#xff1f;
今…目录
前言
wrk
优点
缺点
jmeter
优点
缺点
locust
优点
缺点
总结
资料获取方法 前言
当你想做性能测试的时候你会选择什么样的测试工具呢是会选择wrkjmeterlocust还是loadrunner呢
今天笔者将根据自己使用经验针对jmeter、locust、wrk和loadrunner常用的性能测试工具进行简单介绍和对比。首先四者基本对比图
.loadrunnerjmeterlocustwrk分布式压力支持支持支持不支持单机并发能力低低高低并发机制进程/线程线程协程线程开发语言C/JavaJavaPythonC报告与分析完善简单图标简单图表简单结果授权方式商业收费开源免费开源免费开源免费测试脚本形式C/JavaGUIPythonC资源监控支持不支持不支持不支持
由于loadrunner为商业收费模式对于公司级测试使用而言涉及到授权问题因此本文暂不对loadrunner进行详细讨论。 wrk
wrk是轻量化的http性能测试工具采用线程网络异步IO模型网络异步IO可以使得系统使用很少的线程模拟大量的网络连接以增大并发量、提高压力。
优点
操作简单、易于使用
使用方式例如
./wrk -c 1000 -t 8 -d 10s http://www.baidu.com主要包括以下参数 -t--thread 需要模拟的线程数-cconnection 需要模拟的连接数--timeout 超时的时间-d--duration 测试的持续时间 缺点
①wrk只支持http协议类型请求如get、post等但若是需要执行get之外的http类型请求需要使用者自行编写lua脚本
②只允许单机测试不支持多机分布式压力测试因此wrk适合性能基准测试对于模拟上万的用户并发测试显得有点力不从心
③测试结果简单无详细图表解析举例如下
wrk测试结果输出 jmeter
jmeter同样采用线程并发机制但其主要依靠增加线程数提高并发量当单机模拟数以千计的并发用户时对于CPU和内存的消耗比较大。与上述wrk相比jmeter本身具有以下优点和缺点
优点
①界面可视化操作可以使用录制脚本方式对较为复杂的用户流建模还可以创建断言来验证测试行为是否通过
②表格、图形、结果树等多类可视化数据分析和报告输出举例如下 jmeter聚合报告及表格查看结果 ③支持http、ftp、tcp等多种协议类型测试
④支持分布式压力测试但对于上万的用户并发测试需要多台测试机支持资源要求比较大
⑤可以用于测试固定吞吐量下的系统性能例如在100QPSQPS每秒查询率下系统的响应时间和资源消耗
缺点
jmeter的GUI模式消耗资源较大当需要测试高负载时需要先使用GUI工具来生成XML测试计划然后在非GUI模式下导入测试计划运行测试并且关闭不需要的侦听器收集数据与展示测量的组件因为侦听器也会消耗掉本用于生成负载的大量资源。测试结束后后需要将原始结果数据导入GUI以才能查看结果。 locust
locust是一个的简单易用的分布式负载测试工具主要用来对网站进行负载压力测试。locust使用python语言开发测试资源消耗远远小于java语言开发的jmeter。且其支持分布式部署测试能够轻松模拟百万级用户并发测试。
与jmeter和wrk相比locust具有以下优缺点
优点
①不同与wrk和jmeter使用线程数提高并发量locust借助于协程实现对用户的模拟相同物理资源机器cpu、内存等配置下locust能支持的并发用户数相比jmeter可以提升一个数量级
②相比wrk对复杂场景测试的捉襟见肘和jmeter需要界面点击录制复杂场景的麻烦locust只需用户使用python编写用户场景完成测试
③不同与jmeter复杂的用户使用界面locust的界面干净整洁可以实时显示测试的相关细节如发送请求数、失败数和当前发送请求速度等
④locust虽然是面向web应用测试的但是它可以用来测试几乎所有系统。给locust编写一个客户端可以满足你所有的测试要求
缺点
同wrk一样locust测试结果输出不如jmeter的测试结果展示类型多
locust测试结果 总结
本文简单介绍和对比了wrk、jmeter及locust三种性能测试工具希望能给大家带来基础的认识。此外让我们最后一起来看看面临以下测试需求我们应该如何在三者中进行选择
我想使用界面操作的形式对我的系统做性能测试并且希望我的测试数据有个良好的可视化展示方式 建议使用jmeter工具 我想要对我系统的http rest接口进行性能测试但是我之前没有进行过任何测试我不知道我的系统QPS是个什么样的水平 建议使用wrk工具 我想对我的系统模拟用户操作进行复杂场景的性能测试 建议使用locust工具 我想测试我的系统在一定QPS情况下一段时间内的性能指标cpu消耗、内存消耗等 建议使用jmeter工具 我想使用匀速请求的方式对我的系统进行性能测试 建议使用jmeter或locust工具 我想体验编程的乐趣自己编写脚本进行性能测试 http请求wrk使用lua语言编写脚本 locust使用python语言编写脚本 或者just do it by yourself自己选择编程语言编写性能测试脚本。 附录
wrk 使用参数说明
①参数-cconnection线链接数与操作系统文件句柄数相关-c不能超过文件句柄数设置开始测试前应保证系统可用端口数大于-c设置
②参数-t--thread线程数与操作系统cpu核数有关-t不宜设置过大过大的线程数设置反而会因线程调度反而使性能降低。如下图所示操作系统为8核cpu相同连接数和测试时长条件下不同线程数对同一系统REST接口测试从测试结果可以看出当thread8与cpu核数一致时系统性能测试结果最佳性能波动最小 8核cpu相同连接数和测试时长条件下不同线程数对同一系统REST接口测试结果对比图 资料获取方法
【留言777】 各位想获取源码等教程资料的朋友请点赞 评论 收藏三连
三连之后我会在评论区挨个私信发给你们~