JMeter基本使用
1 JMeter是什么
1.1 定义
JMeter是基于Java的压力测试工具,用于对软件做压力测试,设计之初只用于Web应用测试,后来扩展到了其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,还能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
1.2 作用
1.2.1 JMeter的作用
1、能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。
2、完全的可移植性和100% 纯java。
3、完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
4、完全多线程 框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。
5、精心的GUI设计允许快速操作和更精确的计时。
6、缓存和离线分析/回放测试结果。
1.2.2 JMeter的高可扩展性
1、可链接的取样器允许无限制的测试能力。
2、各种负载统计表和可链接的计时器可供选择。
3、数据分析和可视化插件提供了很好的可扩展性以及个性化。
4、具有提供动态输入到测试的功能(包括Javascript)。
5、支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。
1.3 意义
1、Label: 定义的HTTP请求名称
2、Samples: 表示这次测试中一共发出了多少个请求
3、Average: 访问页面的平均响应时间
4、Min: 访问页面的最小响应时间
5、Max: 访问页面的最大响应时间
6、Error%: 错误的请求的数量/请求的总数
7、Throughput:每秒完成的请求数
8、KB/Sec: 每秒从服务器端接收到的数据量
2 如何使用JMeter
2.1 JMeter的安装方式
运行环境:jre(直接安装jdk即可),JMeter为开源工具,直接官网下载即可(https://jmeter.apache.org/)。下载完成后,直接解压,解压完成,打开bin目录下的jmeter.bat便成功打开了(做分布式性能测试时会用到jemeter-server.bat;Linux系统用jmeter.sh)。
2.2 JMeter的常用元件
2.2.1 测试计划
打开之后,会看到一个测试计划(相当于写代码中的工程项目,使用英文命名最佳,防止不必要的麻烦),窗口修改语言是临时性的,想要永久修改需要进入bin目录下的jmeter.properties进行修改,修改之后,便可以看到下图所示效果:
其中,注释一般来说会写是哪个项目的测试计划;用户定义的变量是参数化技术会用到的内容;独立运行每个线程组若处于勾选状态,则多个线程租会一个接一个运行,否则会同步运行;
2.2.2 线程租
在测试计划下创建线程组(可模拟多用户并行操作):
其中线程数就相当于模拟的用户数量,设成100,就相当于有100个用户要进行操作;如果此时将Ramp-Up时间(秒)设成10,就相当于100个用户启动了10秒钟,1秒10个,若要做并发,将其设为1或0;如果要使用调度器,设置了其持续时间(延时时间是隔多长时间启动),那么就要将循环次数那里勾选永远,若未勾选永远而设置了循环次数,则下边的调度器不生效,其以循环次数为主。
对某个请求做断言时,一定要将断言放在该请求下(作用域限制)。固定定时器一般用来做模拟新老用户的思考时间(熟练度不同,思考时间不同)。在两个请求之间做固定定时,一定要将定时器放在第二个请求下才有效。常用的监听器有:察看结果树、聚合报告、断言结果、用表格查看结果、图形结果。