说到性能测试,咱们Java程序员必须得了解一下 这个神器。作为一个开源的性能测试工具,它可不是一般的厉害。干活这么多年,我发现很多小伙伴在做性能测试时总喜欢上来就整些复杂的工具,其实就能帮你搞定大部分场景。
1.
是个啥
简单来说,就是一个用Java写的性能测试工具。它就像一个能模拟成千上万用户同时访问你系统的机器人。比如你写了个网站,想看看能不能扛住1万人同时在线,用分分钟帮你测出来。
2.
安装配置
要用,得先装好Java环境,建议用JDK 8或更高版本。装好Java后去官网下载最新版,解压完直接运行bin目录下的.bat()或.sh(Linux/Mac)就能用了。
温馨提示:别忘了配置环境变量,不然启动不了。
3.
创建测试计划
1
// 一个简单的HTTP请求示例
2
public class HttpRequest {
3
public static void main(String[] args) {
4
// 创建线程组
5
ThreadGroup threadGroup = new ThreadGroup();
6
threadGroup.setNumThreads(100);// 100个并发用户
7
threadGroup.setRampUp(10);// 10秒内启动
9
// 添加HTTP请求
10
HTTPSampler httpRequest = new HTTPSampler();
11
httpRequest.setDomain(“api.example.com”);
12
httpRequest.setPath(“/users”);
13
httpRequest.setMethod(“GET”);
14
}
15
}
创建测试计划可太简单了,点击右键添加→线程组jmeter随机变量,设置并发用户数和启动时间。再添加HTTP请求,填上要测试的URL就成了。
4.
断言和监听器
测试光发请求可不够,得知道请求是否成功吧?的断言功能就是干这个的:
1
ResponseAssertion assertion = new ResponseAssertion();
2
assertion.setTestFieldResponseCode();
3
assertion.setToEqualsType();
4
assertion.addTestString(“200”);// 期望响应码是200
监听器能帮你看到测试结果,我最常用的是“查看结果树”和“聚合报告”,一个能看详细信息,一个能看总体统计。
5.
高级玩法
还能玩出花儿来。想模拟用户登录再操作?用CSV数据集配置。要测试数据库性能?JDBC请求搞定。要写复杂的测试逻辑?或都能帮你。
1
// 使用变量和函数示例
2
${__time(yyyy-MM-dd,)} // 当前日期
3
${__Random(1,100)} // 随机数
4
${__threadNum} // 当前线程号
温馨提示:录制功能特好使,直接用的代理服务器录制浏览器操作jmeter随机变量,分分钟生成测试脚本。
6.
性能优化建议
跑性能测试时,内存给大点,启动加个参数:
1
JVM_ARGS=“-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m”
测试结果保存成csv格式比jtl小多了,GUI模式下别跑太大的并发,容易卡死。正经测试都是用命令行模式:
1
jmeter -n -t test.jmx -l result.csv -e -o report
真是个好东西,改改配置就能测出系统的性能瓶颈。我记得有次测试一个新上线的接口,发现1000并发就扛不住了,用一测,原来是数据库连接池配小了,调大点立马就好了。
要是你还在为性能测试发愁,赶紧试试吧,准没错。
温馨提示:本文内容不作为任何投资建议。市场投资具有一定的风险性,因此投资需谨慎