首页 > 其他分享 >jmeter使用

jmeter使用

时间:2024-01-23 17:15:12浏览次数:24  
标签:jmeter 结果 jtl 测试 使用 save saveservice

一、jmeter使用;

1、获取请求参数;

   入参可以写固定值,可以使用用户定义变量,可以读取文件获取、可以通过函数助手生成、可以通过beanshell前置处理器加工生成,以加密为例介绍2种;

(1)使用函数助手的加密方法(算法摘要,可输入值:MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512)



(2)beanshell处理器进行加密处理;



2、变量传递;

   传递可以通过JSON提取器、正则表达式、beanshell后置处理器等,以数据加密为例;

(1)vars是对变量进行操作,只能在当前线程组内使用;

vars.put("data1",data1) 
${data1} 
(2)props是对属性进行操作,可以跨线程组使用;

props.setProperty("data2",data2)
${__P("data2",)}






3、cookie传递;

(1)jmeter配置文件可以设置自动保存cookie变量,在bin目录下的jmeter.properties,搜CookieManager.save.cookies,把后面的值改为true,去掉行首的#号,然后保存后重启jmeter;

(2)添加一个Http cookie管理器,对不同线程的cookie不会互相影响;

4、结果文件配置;

(1)jmeter.save.saveservice.output_format:定义保存测试结果文件的格式,枚举值有xml、csv、json,比如该参数设置为xml,那么生成的jtl文件将以xml格式保存;

(2)jmeter.save.saveservice.hostname:是否在测试结果中包含主机名,比如域名或者IP;

(3)jmeter.save.saveservice.thread_name:是否在测试结果中包含线程组名称;

(4)jmeter.save.saveservice.lable:是否在测试结果中包含采样器名称,比如设置true的,测试结果中可见是哪个接口请求;

(5)jmeter.save.saveservice.samplerData:是否在测试结果中包含请求数据,例如请求方式、请求头、请求参数;

(6)jmeter.save.saveservice.url:是否在测试结果中包含请求url;

(7)jmeter.save.saveservice.request_header:是否在测试结果中包含请求头;

(8)jmeter.save.saveservice.reponse_header:是否在测试结果中包含响应头;

(9)jmeter.save.saveservice.response_data:是否在测试结果中包含响应数据,例如HTML、JSON等,CSV格式目前不支持 response_data;

(10)jmeter.save.saveservice.response_code:是否在测试结果中包含响应状态码,请求成功即为200;

(11)jmeter.save.saveservice.response_message:响应信息是否记录到测试结果中,请求成功即为OK ;

(12)jmeter.save.saveservice.response_data.on_error:发生错误是否保存在测试结果中,该参数实现仅接口报错,保存响应数据;

(13)jmeter.save.saveservice.success:是否在测试结果中包含请求的成功/失败状态;

(14)jmeter.save.saveservice.data_type:是否在测试结果中包含数据类型,主要是增加测试结果详细度,可以了解每个请求的响应数据类型;

(15)jmeter.save.saveservice.assertion_results:是否在测试结果中包含断言详细信息,比如失败的响应内容,枚举值是none、first、all,none代表不保存、first标识只保存第一个断言结果,all代表保存全部断言结果;

(16)jmeter.save.saveservice.assertion_results_failure_message:是否在测试结果中包含失败的断言结果,枚举值是true、false,目前仅影响CSV输出;

(17)jmeter.save.saveservice.assertions:是否在测试结果中保存断言执行状态(成功/失败);

(18)jmeter.save.saveservice.thread_counts:是否在测试结果中包含当前活动线程的数量;使用Active Threads Over Time Listener或Response Times vs Threads等监听器,就要启动此功能;

(19)jmeter.save.saveservice.sampler_count:是否在测试结果中包含每个采样器的执行次数;

(20)jmeter.save.saveservice.time:是否在测试结果中包含响应时间(单位ms),了解了接口的响应时间,就可以找出响应时间较长的请求;

(21)jmeter.save.saveservice.connect_time:是否在测试结果中包含连接时间,连接时间是发起请求到建立与服务器的连接所花费的时间,辅助分析网络性能和服务器响应快慢;

(22)jmeter.save.saveservice.encoding:指定保存测试结果使用的字符编码(常用UTF-8)

(23)csv结果;



(24)xml结果;





5、备份文件配置;

前提:jmx备份配置,只在GUI模式下,这些属性才会生效;

(1)jmeter.gui.action.save.backup_directory:设置自动备份路径,设置不存在路径则创建;

(2)jmeter.gui.action.save.backup_on_save:是否在保存测试文件时创建备份文件,比如设置为true,则在备份路径创建test_000001.jmx,依次递增;

(3)jmeter.gui.action.save.keep_backup_max_hours:设置备份文件保存时间(单位是小时),超时自动删除,主要是避免占用过多磁盘空间。设置为0则意味着永远保存;

(4)jmeter.gui.action.save.keep_backup_max_count:设置保留备份文件的最大数,默认设置10,将保留10份,设置为0则意味着永远保存;

(5)save_automatically_before_run:是否是执行测试计划时,自动保存并备份到指定目录;



6、知识点;

(1)线程组、请求或断言等,ctrl+t实现启用/停用;

(2)jmeter压测执行nohup命令,中途想停止运行,找到第二个pid,然后杀进程;

ps -ef|grep jmeter;
kill -9 第二个进程id;
(3)性能测试要求比较严格的话,要将查看结果数、聚合报告等组件注释掉,因为消耗内存;

7、命令行参数;

(1)-n:非GUI方式运行;

(2)-t:指定运行的测试脚本地址与名称,可以是相对或绝对路径,比如 -t test.jmx;

(3)-h:查看帮助;

(4)-v:查看版本;

(5)-p:指定读取Jmeter属性文件,默认使用jmeter.properties,使用指定文件就是 -p myconfig.properties;

(6)-l:记录测试结果到文件,指定名称与路径,可以是相对或绝对路径,比如 -l result.jtl ;

(7)-L:定义Jmeter的日志级别,比如 -L ERROR;

(8)-J:定义Jmeter属性,等同于在jmeter.properties中设置,比如 -Jserver.rmi.ssl.disable=true;

(9)-G:定义Jmeter全局属性,等同于在Global.properties中设置,线程间可相互共享;

-Gtemp=value;
${__P(temp)} ;
(10)-r:开启远程负载机,远程负载机列表在jmeter.properties文件中指定;



(11)-R:开启远程负载机,可以指定负载机IP,会覆盖jmeter.properties中的设置,比如./jmeter.sh -n -t test.jmx -r -R ip1:port1,ip2:port2 ;



(12)-X:停止远程执行,比如 -R ip1:port1,ip2:port2 -x ;



二、分布式压测

1、原理;



2、配置流程;

(1)每台机器均部署jmeter,确保jmeter版本一致;

(2)jmeter脚本上传到主压力机;

(3)配置文件和参数文件(比如csv参数文件),放在每台压力机上,并且目录相同;

(4)每台机器,配置文件都需要调整,jmeter.properties,设置 ssl.disable=true(禁用SSL,不建立加密连接);



(5)主压力机,配置文件增加从压力机ip和端口(jmeter.properties,设置 remote_hosts);



(6)每台机器,均后台启动jmeter-server,命令 nohup ./jmeter-server &;

(7)在主压力机上执行启动命令;

./jmeter -n -t ../jmx/genRandom.jmx -l ../jtl/result.jtl -r ;


./runall.sh jmx/ ;




(8)通过jtl生成HTML报告;

已存在jtl文件,执行./jmeter.sh -g ../jtl/result.jtl -o ../report ;
没有jtl文件,执行./jmeter.sh -n -t ../jtl/result.jtl -e -o ../report ;
GUI模式,工具-生成HTML报告;
使用定制版jmeter,生成word版测试报告;


(9)HTML报告;

 

标签:jmeter,结果,jtl,测试,使用,save,saveservice
From: https://www.cnblogs.com/wtxyear/p/17982900

相关文章

  • 【STM32使用Arduino编程0】Arduino_Core_STM32固件的安装和使用
    【STM32使用Arduino编程0】Arduino_Core_STM32固件的安装和使用对于STM32来说,使用Arduino编程可以大大降低编程难度,同时也可以使用Arduino的许多库。Arduino_Core_STM32介绍要使用Arduino对STM32进行编程需要使用相应的固件,目前官方的固件为Arduino_Core_STM32。对应的github......
  • 使用 easyofd 解析ofd 文件
    使用easyofd解析ofd文件关于OFD格式OFD格式简单来说是PDF的国产替代。目前只有国内一定范围内在用,所以相对应的工具库还比较少。安装easyofdpip安装pipinstalleasyofdgithub源码地址gitclonehttps://github.com/renoyuan/easyofd.git使用easyofdofd转pfdi......
  • 玩转数据处理利器:学会使用 YAML 文件轻松处理数据
    霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。YAML文件处理什......
  • Element Ui使用技巧——Form表单的校验规则rules详细说明
    ElementUi使用技巧——Form表单的校验规则rules详细说明:https://blog.csdn.net/weixin_46711427/article/details/117672462?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-117672462-blog-124431947.235^v40^pc_relevant_rights_sort......
  • Java反编译工具 JD-GUI安装使用
    将源代码转换成二进制执行代码的过程叫“编译”,那么反编译就是将二进制执行代码转换成源代码。在java开发里,源代码是.java文件,然后经过编译后生成计算机识别的.class文件,但是.class文件是计算机识别的我们一般看不明白,因此需要反编译变成我们能读懂的源码,但是反编译后的......
  • 使用jar命令替换jar包中指定文件
    一、jar命令用法`1. -c创建新的归档文件3.-t列出归档目录和文件5.-x解压缩已归档的指定(或所有)文件7.-u更新现有的归档文件9.-v在标准输出中生成详细输出/提供更详细输出信息11.-f指定归档文件名/为压缩包指定名字13.-m包含......
  • OAuth2.0实战使用JWT令牌认证
    JWT分为三部分:头部、载荷、签名。如下:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzMSJdLCJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDU5OTQ0MzgsImF1dGhvcml0aWVzIjpbIlJPTEVfYWRtaW4iXSwianRpIjoiM2RiYjVkNGUtN2Q3My00ODI3LTlkOGYtMmI3OGVmMmVmZTE......
  • 用CI/CD工具Vela部署Elasticsearch + C# 如何使用
    Vela除了可以帮我们编译、部署程序,利用它的docker部署功能,也能用来部署其他线上的docker镜像,例如部署RabbitMQ、PostgreSql、Elasticsearch等等,便于集中管理。部署Elasticsearch创建文件夹并赋予权限:mkdir/usr/local/es/datamkdir/usr/local/es/pluginschmod777/usr/......
  • SQL优化--使用 EXISTS 代替 IN 和 inner join来选择正确的执行计划
       在使用Exists时,如果能正确使用,有时会提高查询速度:     1,使用Exists代替innerjoin     2,使用Exists代替in  1,使用Exists代替innerjoin例子:    在一般写sql语句时通常会遇到如下语句:     两个表连接时,取一个表的数据,一般的写法通过关联查询(inne......
  • vector的使用
    1、基本概念vector是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector是C++STL的一个重要成员,使用它时需要包含头文件:1#include<vector>构造函数与初始化: vector的构造函数用来构造vector容器,函数原型为:1vector<T>v;//......