一、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