Jmeter模拟并发实现支持自定义变量的压力测试-新手入门教程

-- 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测试预期请求次数<用例数则不会重复执行用例,否则会循环执行用例。



参考资料