jmeter压测实践

unknows unknows     2022-12-15     774

关键词:

技巧一:命令行执行

命令执行:指定参数,报告的存储位置

jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/resultReport

-n : 非GUI 模式执行JMeter

-t : 执行测试文件所在的位置及文件名

-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r

 -l : 指定生成测试结果的保存文件, jtl 文件格式

-e : 测试结束后,生成测试报告

-o : 指定测试报告的存放位置

注意事项:

1、-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错

2、只有自动结束才会生成测试报告,强制结束执行不会生成测试报告

 

技巧二:阶梯压测

Concurrency Thread Group和Stepping Thread Group两种线程组都可用于阶梯式加压测试,但是由于Stepping Thread Group已经不再被官方推荐使用了,我们对Concurrency Thread Group进行介绍。

技术图片

 

target concurrency:目标并发数

ramp up time(min):加速时间

ramp-up steps count:加速步骤计数

hold target rate time(min):保持目标速度时间

thread iterations limit:线程迭代次数限制

log threads status into file:将线程状态记录到文件

以上,以图形的方式展示了线程加压的过程。

 

技巧三:控制请求数(QPS)压测

Arrivals Thread Group我们可以通过该线程组达到控制请求数的目的

技术图片

target rate:目标速率,每秒钟多少个请求数

ramp up time(sec):达到目标速率需要的时间

ramp-up steps count:达到目标速率需要多少步

hold target rate time(sec):保持目标速率时间

thread iterations limit:线程迭代次数限制

log threads status into file:将线程状态记录到文件

concurrency limit:最大并发数限制

 

技巧四:权重控制压测

weighted switch controller 控制权重百分比的场景控件

技术图片

技术图片

 

技巧五:调试脚本添加Debug PostProcessor

一般是在需要添加正则(Regular Expression Extractor)、Xpath Extractor、 JSON Path Extractor等提取器的时候或者在参数化的时候,添加一个Debug PostProcessor,这样方便在调试脚本的时候,

看是否正确的提取到了所要的信息。当然,得添加View Result Tree,因为执行脚本以后是在tree里看debug的信息

 

技巧六:benshell使用

    JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

  • log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);

  •  beanshell断言 Failure=true/false
  • ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext

    ctx.getCurrentSampler(); 获取当前 sampler 请求

    ctx.getPreviousSampler(); 获取前一个 sampler 请求

    ctx.getThreadNum(); 获取当前线程的序号,从 0 开始计数

    ctx.getThread(); 获取当前线程

    ctx.getThreadGroup(); 获取当前线程组

    ctx.getProperties(); 获取所有属性

    ctx.getVariables(); 获取当前线程的所有变量

  • vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

    a) vars.get(String key):从jmeter中获得变量值

    b) vars.put(String key,String value):数据存到jmeter变量中

    更多方法可参考:org.apache.jmeter.threads.JMeterVariables

  • props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。 

    a) props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义 

    b) props.put("PROP1","1234"); 

  • prev - (SampleResult):获取前面的sample返回的信息,常用方法:

    a) getResponseDataAsString():获取响应信息

    b) getResponseCode() :获取响应code

jmeter性能测试全过程review

前情提要:1.会一点点jmeter的脚本录制和编辑,完全没实际操作过压测,review一下第一次实践。     2.压测使用的是HTTP请求,且未加密;     3.压测的10个接口没有数据关联和数据要求,就是数据随便输入随便设置;... 查看详情

jmeter跨线程组传递token实践

很多需求都是先登录一次之后在操作,所以需要专注压测登陆之后的接口,则需要登陆,把token传递到下一个线程组中。1、首先增加一个setUp线程组,会在所有线程之前执行,新增http接口(登陆),通过正则获取Token,给请求加... 查看详情

jmeter压测和抓包

一、Jmeter分布式压测步骤(添加压力机):1.在其他的压力机启动jmeter-server.bat,几台机器都在一个局域网里,能ping通2.在主控机jmeter的配置文件jmeter.properties找到remote_hosts=xx,添加压力机的ip,默认端口号1099,重启jmeter3.运行主... 查看详情

jmeter分布式压测

...较多时,就需要使用多台计算机同时进行压测。这就需要Jmeter的分布式压测1.在主控机上保存好脚本2.在压力机上安装jdk和Jmeter,启动bin目录下的jmeter-server.bat3.修改主控机bin目录下的 jmeter.properties,找到remote_hosts,后面加上... 查看详情

第一周:jmeter分布式压测简介

...测试工作中经常会需要对系统进行压测,一般来说,使用jmeter一台电脑支持的最大并发数为200,那么当我们压测时需要更大的并发数时,我们就需要使用多台电脑来进行分布式压测。  第一步:首先要准备多台电脑,全部安装... 查看详情

jmeter3.1压测

压测目标:error为0,线程起到250,服务器配置达到最大一.Jmeter3.1压测JMeter3.1提供一个用于生成HTML页面格式图形化报告的扩展模块。该模块支持通过两种方式生成多维度图形化测试报告:在JMeter性能测试结束时,自动生成本次测试... 查看详情

java编写jmeter压测脚本

...后会对部分接口进行压测,采用的是java编写脚本,导入jmeter进行压测。 使用到的jmeter的相关包写一个测试类,继承AbstractJavaSamplerClient    设置请求参数,这些参数在导入进jmeter之后会在java请求页面显示出来&nb... 查看详情

jmeter性能测试之模拟压测

...jmeyer中的一个插件SteppingThreadGroup1、 安装插件,下载jmeter-plugins-manager-1.4.jar下载链接:https://jmeter-plugins.org/downloads/old/将下载好的插件放入jmeter的lib/ext目录下,重启jmeter2、SteppingTh 查看详情

jmeter分布式压测----windows

...需要使用多台负载机同时进行对服务端压测,这个时候,jmeter的分布式的方法就会被广泛使用。  ************************************************************************************************************ 查看详情

jmeter压测

   我下载的是 apache-jmeter-2.13,因为这个包下载下来通用linux和windows的,所以我们现在windows下打开它。    直接点击bat,打开jmeter:  添加一个线程组:   添加完成之后,先设置这两项:     ... 查看详情

并发压测jmeter使用教程

  百度网盘下载软件 提取码:2nur  第一步:首先从jmeter的官网下载jmeter,目前最新版本为4.0,支持的JDK最高为1.8下载地址:jmeter:http://jmeter.apache.org/download_jmeter.cgiJDK:http://www.oracle.com/technetwork/java/javase/ 查看详情

jmeter分布式压测配置linux

参考技术A本文只讲jmeter分布式压测怎么在Linux环境下配置:使用分布式压测,是因为单个压测机并发到不到系统要求,所以多个压测机同时去压。一般是由一个主机(master)和几台压力机(slave)组成。主机主要是起到启动和收... 查看详情

jmeter压测前清理内存

jmeter压测时设置了内存为sed-i‘s/HEAP="-Xms512m-Xmx512m"/HEAP="-Xms36096m-Xmx360096m"/‘jmeter占了48G内存中的很大一部分再执行的时候会出现如下提示:CannotallocatememoryCreatingsummariser<summary>Createdthetreesuccessfullyusingmulti 查看详情

jmeter分布式压测

...测,将测试的压力分给其他的电脑,这时候,我们称控制jmeter运行的机器为主控机(本机),而其他的机器成为压力机。如何设置压力机?1.我们首先需要在主控机和压力机中装好jmeter;2.打开主控机的jmeter文件夹,找到jmeter.proper 查看详情

jmeter实现smtp邮件协议压测

实现目的通过jmeter的SMTP取样器,调用SMTP协议,批量进行邮件的发送,已达到压测的目的。脚本实现UserDefinedVariables定义用户变量编辑SMTPSampler取样器,设置邮件发送相关参数响应断言 查看详情

jmeter在服务器上的压测命令

...205;♀️。果然不复习的话,知识忘得也快。其实启动jmeter的时候,人家就告诉你:不要使用GUI模式进行负载测试,仅用于测试创建和测试调试!所以jmeter的压测命令很简单:jmeter-n-t[jmx文件]-l[结果文件]-e-o[输出文件夹的路径... 查看详情

jmeter压测配置

windows上面修改最大使用端口数和time_await等待时间注册表需要添加两个配置,位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters MaxUserPort:65534TcpTimedWaitDelay:30 然而这么配置了之后,压测一段时间任然会有connectuse... 查看详情

jmeter分布式压测

...原因  1、当你想并发很大的时候(比如3000)那么一台jmeter可能就不能胜任了,这时候就需要多台jmeter同时加压  2、当jmeter压力机安装在没有gui的linux上,又不想通过非gui的方式完成性能测试二、原理  原理很简单就是找... 查看详情