jmeter3.1 压测
压测目标:error 为0,线程起到250,服务器配置达到最大
一.Jmeter3.1 压测
JMeter3.1提供一个用于生成HTML页面格式图形化报告的扩展模块。该模块支持通过两种方式生成多维度图形化测试报告:
- 在JMeter性能测试结束时,自动生成本次测试的HTML图形化报告
- 使用一个已有的结果文件(如CSV文件)来生成该次结果的HTML图形化报告
其默认提供的度量维度包括:
- APDEX(Application Performance Index)指数
- 聚合报告
- 类似于UI上的Aggregate Report
- Errors报告
- 展示不同错误类型的数量以及百分比
- 响应时间变化曲线
- 展示平均响应时间随时间变化情况
- 类似于JMeter Plugins在UI上的jp@gc - Response Times Over Time
- 数据吞吐量时间曲线
- 展示每秒数据吞吐量随时间变化的情况
- 类似于JMeter Plugins在UI上的jp@gc - Bytes Throughput Over Time
- Latency time变化曲线
- 展示Latency time随时间变化的情况
- 类似于JMeter Plugins在UI上的jp@gc - Response Latencies Over Time
- 每秒点击数曲线
- 类似于JMeter Plugins在UI上的jp@gc - Hits per Second
- HTTP状态码时间分布曲线
- 展示响应状态码随时间的分布情况
- 类似于JMeter Plugins在UI上的jp@gc - Response Codes per Second
- 事务吞吐量时间曲线(TPS)
- 展示每秒处理的事务数随时间变化情况
- 类似于JMeter Plugins在UI上的jp@gc - Transactions per Second
- 平均响应时间与每秒请求数的关系图
- 展示平均响应时间与每秒请求数(可以理解为QPS)的关系
- Latency time与每秒请求数的关系图
- 展示Latency time与每秒请求数的关系
- 响应时间百分位图
- 响应时间的百分位分布图
- 活动线程数变化曲线
- 展示测试过程中活动线程数随时间变化情况
- 平均响应时间与线程数的关系图
- 展示平均响应时间与线程数的关系
- 类似于JMeter Plugins在UI上的jp@gc - Response Times vs Threads
- 柱状响应时间分布图
- 展示落在各个平均响应时间区间的请求数情况
- Latency time = 接收到响应的第一个字节的时间点 - 请求开始发送的时间点
from just before sending the request to just after the first response has been received
-- Apache JMeter Glossary
- 响应时间(JMeter术语中的Elapsed time) = 接收完所有响应内容的时间点 - 请求开始发送的时间点
from just before sending the request to just after the last response has
been received
-- Apache JMeter Glossary
二.配置参数修改
1.确认基本配置
- 在jmeter.properties或者user.properties确认如下配置项:
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true
# Timestamp format - this only affects CSV output files
# legitimate values: none, ms, or a format suitable for SimpleDateFormat
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
- 如果希望在Errors报告中展示更详细数据,需要确保如下配置
- jmeter.save.saveservice.assertion_results_failure_message
= true - 如果使用了事务控制器(Transaction
Controller),确认Generate parent sample为未勾选状态
2.生成报告
a. 在压力测试结束时报告
- 基本命令格式:
jmeter -n -t <test JMX file> -l <log file> -e -o <Path to
output folder> - 样例:
jmeter -n -t E:\apache-jmeter-3.0\script\test.jmx -l LogFile -e -o
./report
b. 使用已有的压力测试CSV日志文件生成报告
- 基本命令格式:
jmeter -g <log file> -o <Path to output folder> - 样例:
jmeter -g E:\apache-jmeter-3.0\bin\LogFile -o ./report
两个样例都会在\apache-jmeter-3.0\bin\report目录下产生如下文件(夹):
用浏览器打开index.html文件,即可查看各种图形化报告:

注:在3.1版本,由于源码中字符编码的问题,可能会遇到生成的报告中,中文标签展示为乱码的问题
解决方案:修改JMeter report模块读取数据源码中的字符集设置为UTF-8,编译后替换到JMETER_HOME\lib\ext\ApacheJMeter_core.jar


附上:
1.监听接口脚本
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="3.1" jmeter="3.1 r1770033">
<hashTree>
<BeanShellListener guiclass="TestBeanGUI" testclass="BeanShellListener" testname="BeanShell Listener" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<boolProp name="resetInterpreter">false</boolProp>
<stringProp name="script">import java.util.regex.*;
import txtWrite.*;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
import org.apache.commons.io.FileUtils;
import org.apache.jmeter.assertions.AssertionResult;
import java.text.*;
import java.util.Date;
import org.apache.jmeter.functions.SamplerName;
import org.apache.jmeter.functions.AbstractFunction;
import java.lang.*;
StringBuffer aaa = new StringBuffer();
String bbb;
String ccc;
String eee;
String fff;
String sss = new SimpleDateFormat("yyyyMMdd-HH").format(new Date());
String result;
String ttt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
bbb = prev.getResponseDataAsString();
ccc = prev.getResponseHeaders();
eee = prev.getThreadName();
fff = prev.getSampleLabel();
AssertionResult[] ddd = prev.getAssertionResults();
for (int n=0;n < ddd.length;n++)
{
aaa.append("断言结果:"
+ ddd[n].isFailure().toString() + "|" +
"断言详情:" + ddd[n].getFailureMessage() +
"\r\n");
}
result =fff
+"\r\n\r\n" + "本地时间:" + ttt +
"\r\n\r\n" + eee +"\r\n\r\n" +
"响应结果:\r\n" + bbb + "\r\n\r\n"+
"header:\r\n" + ccc + "\r\n" + aaa +
"\r\n" +
"============================================================================================"
+ "\r\n";
if (aaa.toString().contains("true"))
{
File file = new File("C:\\我的文档\\jmeter脚本\\获取断言结果\\"+sss+".txt");
FileUtils.write(file,result,"utf-8",true);
}</stringProp>
</BeanShellListener>
<hashTree/>
</hashTree>
</jmeterTestPlan>
操作步骤及注意:
1.将脚本放到d盘
命令行切换到jme/bin目录下,执行命令
jmeter -n -t d:\9000-jmeter.jmx -l LogFile -e -o ./10report
2.
每执行一次,删除目录下的:LogFile,10report
命令行显示结果每30s刷新一次
3.查看bin目录下的10report目录下index.html文件,查看执行结果
chart-overtime-active threads over time,启动线程数
apdex:健康
Statistics:结果数据
4.BeanshellListener显示执行结果
5.分布式部署
代理机:
1.jdk,jmeter环境
2.输入“ipconfig”,找到IP地址,例如是:192.168.8.149
3.配置jmeter.properties
打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,1099是端口号
4.启动jmeter-server.bat,
主机:
1.配置jmeter.properties
Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。
2.打开jmeter-server.bat文件,设置完成了
3.启动jemter.bat文件
4.运行-远程启动
jmeter3.1 压测的更多相关文章
- jmeter3.3 接口压测入门和软件下载
Jmeter3.3软件下载地址 https://download.csdn.net/download/qq_36625806/11076556 简单的使用教程 1.启动Jmeter 双击jemeter ...
- JMeter压测Rest请求
下载及安装 官网下载JMeter3.0: 找到bin目录下的jmeter.bat启动: 压测Rest请求 1.添加线程组 路径:右键“测试计划”->添加“Threads(Users)”-> ...
- Jmeter之http性能测试实战 非GUI模式压测 NON-GUI模式 结果解析TPS——干货(十一)
性能测试计划 性能测试用例 录制脚本 性能测试结果 性能测试报告 性能测试监控报告 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Sec ...
- Jmeter之性能压测Stepping Thread Group 逐步增加并发数 阶梯式加压并发 (十五)
前段时间有描述过性能的测试类型 配置负载 Big Bang: 负载同时产生 Ramp up: 开始时候产生一定负载,然后每隔一段时间增加一些负载直到达到目标负载,这是典型模式 Ramp-up (wit ...
- linux下实现压测-html报表生成-控制台参数优化【jmeter】
jmeter - 单机压测 - 命令行模式-html报表生成-控制台参数优化 一/ 准备工作 1.压力机安装并配置好 jdk 2.调试好程序脚本 再上传到 linux下 3.进入jmeter bin ...
- Jmeter(一)非GUI模式压测(NON-GUI模式)结果解析TPS
非GUI模式压测(NON-GUI模式)结果解析TPS 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Second https://jme ...
- Jmeter之TCP取样器(模拟数据上报压测)
TCP压测 场景:模拟硬件设备上报数据(登录,心跳,GPS定位数据/光感数据/电量数据),对这个功能进行压测 啰嗦一句:TCP压测很简单,只要调通了一个TCP,后续的逻辑判断就用逻辑控制器和正则处理就 ...
- JMeter4.0分布式调度压测部署
我们在Loadrunner学过使用Load Generator做肉鸡, 通过Controller来进行脚本和权重的分配来进行分布式压测, Jmeter作为当今的网红性能测试工具,这个功能必须是少不了的 ...
- jmeter分布式压测 java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
解决办法:1.控制机和代理机:修改jmeter.properties中server.rmi.ssl.disable=true 不启动SSL2.控制机和代理机: Slave(从压力机)启动jmeter- ...
随机推荐
- [bzoj1592][Usaco09Feb]Making the Grade 路面修整_动态规划
Making the Grade 路面修整 bzoj-1592 题目大意:给你n段路,每段路有一个高度h[i],将h[i]修改成h[i]$\pm\delta$的代价为$\delta$,求将这n段路修成 ...
- DATASNAP中间件调用带OUTPUT参数的存储过程
服务端: function TServerMethods1.spExecOut(funcId, sqlId, inParams: OleVariant): OleVariant;var d: Tfrm ...
- oc28--Property增强
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject /* { @public int ...
- NOI 2009A 诗人小G
NOI 2009A 诗人小G 诗人小G [问题描述] 小G是一个出色的诗人,经常作诗自娱自乐.但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们 ...
- 历届试题 邮局(dfs+剪枝)
历届试题 邮局 时间限制:1.0s 内存限制:256.0MB 问题描述 C村住着n户村民,由于交通闭塞,C村的村民只能通过信件与外界交流.为了方便村民们发信,C村打算在C村建设k ...
- poj--1101--The Game(bfs)
The Game Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9746 Accepted: 2967 Descript ...
- Mybatis:目录
ylbtech-MyBatis:目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbte ...
- the user must supply a jdbc connection 错误解决方法
转自:https://blog.csdn.net/actionzh/article/details/54200451 今天在配置hibernate之后,进行添加数据测试时,运行中报出了 the use ...
- java web支持jsonp跨域
jsonp跨域请求处理 Jsonp(JSON with Padding) 是 json的一种"使用模式",可以让网页从别的域名(网站)那获取资料,绕过同源策略(若地址里面的协议.域 ...
- Fishnet(几何)
http://poj.org/problem?id=1408 题意:给出 a1 a2 ... an b1 b2 ... bn c1 c2 . ...