-- Jmeter模拟并发实现压力测试的教程-新手入门
【官网】:http://jmeter.apache.org/
应用场景
Apache JMeter 是一个 100% 纯 Java的,旨在支持压力测试(或者说性能,负载测试) ,可通过插件和脚本扩展,且可和jenkins,maven,gradle等实现持续集成软件。它最初是为测试 Web 应用程序而设计的,但后来扩展了其它测试功能。基础资源
Java 8+
使用须知
JMeter主要用于web应用程序的功能负载测试以度量软件的性能,也可以用于其它类型的测试比如API测试等. 1)支持很多协议:Http,Https,SOAP,SMTP,POP3,IMAP,TCP,本机命令等等. 2)可随时呈现动态HTML报告。 3)多线程框架允许多线程同时采样. 4)缓存和离线分析/重放测试结果. 5)可扩展的核心:插件,脚本(与Groovy和 BeanShell等 JSR223 兼容的语言)。 6)通过Maven、Gradle 和 Jenkins 的3 rd方开源库轻松实现持续集成.
配置步骤
A)Jmeter下载,安装与运行。
step1)安装jdk(已经安装的可以忽略该步骤).
本文安装的jdk是:jdk-8u181-windows-x64
如何下载安装jdk(oracle jdk, open jdk都可以): Window上JDK(oracle,open jdk)的下载安装与Java环境变量的原理,配置及验证
如果新手对jdk想深入了解还可以看下这里:全面了解JDK: 与JRE,JVM关系,JDK各版本名称,特性,发布时间及与spring等框架的对应
安装好后,检测下:
step2)打开Jmeter下载页面.
根据操作系统分别在这里可以下载到对应版本: https://jmeter.apache.org/download_jmeter.cgi
step3)选择windows上编译好的Jmeter版本.
例如:https://www.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.3.zip
step4)运行Jmeter.
点击Bin目录下的Jmeter.bat.
稍等几秒,界面打开了:
常见问题
-
restful风格url中间的参数如何设置动态读取
【解决方案】示例:/my/path/with/${paraa}/${parab}/ ,其中 ${paraa}, ${parab} 指的是在 CSV Data Set Config 中提取的对应值
快速入门
A)Jmeter应用实例。
A1)一个简单的http类型的并发多线程测试。
step1)创建一个TestPlan, 运行之前要求保存测试计划。
step2)创建一个ThreadGroup, 并指定多少个并发线程,每个线程在多少时间内启动,循环执行多少次等等。
step3)在ThreadGroup创建一个测试相关Http请求的环境变量(类似 api的host地址,端口,协议,默认参数等)..这些的作用是提高复用,降低工作量。
step4)在ThreadGroup下创建一个API的请求(当然可以创建多个), 包含http请求的具体参数.
step5)添加监听,也就是服务于报表的数据监听和收集.
[注]这时可以同步查看下服务器端的相关性能表现,错误日志等,同步结合起来分析。
A2)一个简单的http类型的,包含从配置文件中读取自定义变量的并发多线程测试。
step1)设置用例数据集(用于支持自定义变量).
[注] 图片中userId,KeyWord相当于指定CSV数据源(也就是自定义变量的数据源)的列名。
step2)执行并查看结果。
【注1] Api测试预期请求的次数=线程数(虚拟用户)* LoopCount.
Api测试的具体用例如何规划的呢?
如果Api测试预期请求次数<用例数则不会重复执行用例,否则会循环执行用例。