public class TestYuan extends AbstractJavaSamplerClient {
private static String label = "CBCTest";
private String ip;
private String port;
private String INSTYPE;
private SampleResult sr;
public void setupTest(JavaSamplerContext arg0) {
System.out.println("setupTest");
}
public SampleResult runTest(JavaSamplerContext arg0) {
ip = arg0.getParameter("ip");
port = arg0.getParameter("port");
INSTYPE = arg0.getParameter("INSTYPE");
sr = new SampleResult();
sr.setSampleLabel(label);
try{
sr.sampleStart(); //记录程序执行时间,以及执行结果
//发送数据
String s=getInsData(INSTYPE);
System.out.println("send begin!");
sendMsg(ip,Integer.parseInt(port),s);
sr.setSuccessful(true);
System.out.println("send over!");
}catch(Throwable e){
sr.setSuccessful(false);
}finally{
sr.sampleEnd();
}
return sr;
}
private String getInsData(String instype2) throws Exception {
String retstr;
try {
retstr = redInput(instype2);
} catch (Exception e) {
System.out.println("instype:"+instype2+" file not exist!");
throw e;
}
return retstr;
}
public void teardownTest(JavaSamplerContext arg0) {
}
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("ip", "99.6.150.31");
params.addArgument("port", "8016");
params.addArgument("INSTYPE", "1");
return params;
}
private void sendMsg(String ip,int port,String data) throws Exception{
ClientSocket clientSocket = new ClientSocket(null, ip, port);
XmlIniPlus ini = null;
try {
ini = clientSocket.clientConnect("DCINSFRM","10041004",data/*, tmsListener*/);
} catch (Exception e) {
//支付设置为可疑 电子指令设置为失败 查支付设置为可疑
System.out.println("Exception:"+e.getMessage());
throw e;
}
System.out.println("success return!");
}
public static String redInput(String insType) throws Exception {
char data[] = new char[1024]; // 建立可容纳1024个字符的数组
FileReader fr = null;
try {
//fr = new FileReader("c:\\DCQRYBKP.xml");
fr = new FileReader("c:\\DCINSFRM_"+insType+".xml");
} catch (Exception e) {
e.printStackTrace();
throw e;
} // 建立对象fr
int num = 0;
String str = null;
try {
num = fr.read(data);
str = new String(data, 0, num); // 将字符列表转换成字符串
fr.close();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return str;
}
}
项目用mina做socket底层通信,需要做性能测试,loadrunner太难,还是jemeter小,功能全。自己实现了jemete的TCPsampler。
大致总结如下:
1.线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。
2、sampler
java请求:是自己写的一个sampler
3、聚合报告
Label:取样器名称
Samples:运行过程中一共发出了多少个请求,一般来说是其值=线程数*循环次数(前提:测试按计划跑完,其中没有异常结束的线程),如5个线程,每个线程循环10次,那么对应行的Samples数是:5*10=50,总体Samples是各请求Samples之和。
Average:平均响应时间
Median:响应时间中间值
90%Line:响应时间90%线
Min:最小响应时间
Max:最大响应时间
Error%:出错率(出错的Request数/所有的request数)
Throughput:吞吐量,每秒/每分钟(具体看“/”后面的单位)处理的Request数
KB/sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
【注意】关于总体值并不是各列的累加。是以所有Samples为样本的统计值,如:总体Min=min{各个Samples的Min},总体Max=max{各个Samples的Max}
分享到:
相关推荐
### jmeter使用个人总结 #### 一、Apache JMeter简介 Apache JMeter是一款开源的压力测试工具,由Apache组织开发和维护。它主要基于Java语言编写,可以用来对各种应用程序(尤其是Web应用)进行性能和功能测试。...
jmeter总结 jmeter是一个功能强大且广泛应用的性能测试工具,本总结将从基本概念到高级功能对jmeter进行详细的介绍。 目录 * 第一章:jmeter概述 + 线程组:jmeter中最基本的概念,线程组是指一组独立的线程,...
### jmeter测试DB2性能详解 #### 一、Apache JMeter简介 Apache JMeter是一款开源的性能测试工具,由Apache Jakarta项目开发。JMeter最初设计用于Web应用的负载测试和性能评估,但随着功能的不断完善,它现已支持...
### 关于JMeter的知识点详解 #### 一、概述 JMeter是一款100%纯Java桌面应用程序,专为测试CS架构(客户端/服务器)的软件而设计。它不仅可以用于测试静态和动态资源(如静态文件、Java Servlets、CGI脚本、Java...
### Jmeter使用流程总结 #### 一、压测简介 ##### 1.1 压测目的 压力测试的主要目标是评估系统在高负载条件下的性能表现,这有助于确定系统的极限容量并识别潜在的瓶颈。具体来说,压力测试通常有两个核心目的: ...
JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册...
jmeter测试总结 JMeter 是一个功能强大且功能丰富的压力测试工具,由 Apache 组织开发的开放源代码项目。它可以用于测试静态或者动态资源的性能,包括文件、Servlets、Perl 脚本、Java 对象、数据库和查询、ftp ...
【JMeter压测经历与总结】 在进行JMeter压力测试时,我们首先需要确保API在Windows环境下能够正常工作。这包括调通所有的压测接口,确保接口能够无误地响应请求。在这个过程中,一个常见的问题就是内存管理,尤其是...
├ 第10章 高级篇之Jmeter压测课程总结和架构浅析 │ └ 35、课程总结和关于系统架构,推荐学习资料.mp4 ├ 第1章 章节一JMeter压力测试课程介绍 │ │ 1、亿级流量压测系列之Jmeter4.0课程介绍和效果演示.mp4 │ └...
首先,"jmeter-plugins-redis2"是一个专为JMeter设计的插件,它的核心功能在于实现了JMeter与Redis之间的数据写入和读取。Redis作为一款高性能的键值数据库,常被用于存储临时性数据,缓存或者消息队列,因此在接口...
将 jpgc-graphs-basic-2.0.zip 解压缩后只有一个 lib 目录,该目录下有一个 ext 文件夹和一个 jmeter-plugins-cmn-jmeter-0.3.jar 包,ext 文件夹中有 jmeter-plugins-graphs-basic-2.0.jar 和 jmeter-plugins-...
k6和JMeter区别总结分享 k6和JMeter都是性能测试领域中的重要工具,都是负载测试脚本工具,但它们之间存在着一些关键的区别。下面我们将对k6和JMeter进行总结分享,比较它们的特征、优缺点和使用场景。 一、k6和...
2. **bcmail-jdk16-1.40.jar**: 这个JAR文件包含了Bouncy Castle的邮件处理模块,主要用于处理与安全电子邮件相关的加密和签名功能。在JMeter的二次开发中,如果涉及到邮件服务的模拟或者测试,这个库可能被用到,...
本人原创,非常详细的整理,纯文本大小都27M+,干货满满,JMeter的知识面面俱到。可以当成案头工具查阅。所以要求的分数比较高,适合真正需要的你。适合对JMeter已初步掌握,想要更加全面了解的人。
2. **采样器**: - HTTP请求采样器:用于模拟用户对HTTP服务的请求,支持GET、POST等多种HTTP方法。 - JDBC请求采样器:用于执行SQL查询或数据库操作,测试数据库性能。 - JMX操作采样器:可以调用MBean服务进行...
《JMeter学习视频2》的内容涵盖了JMeter工具的多个核心功能和高级用法,旨在帮助用户深入理解和熟练掌握这款强大的性能测试工具。JMeter是Apache软件基金会开发的开源项目,主要用于对Web应用进行压力和负载测试,以...
【Jmeter 使用总结】 Apache JMeter 是一个广泛使用的开源性能测试工具,主要针对Web应用程序进行压力和负载测试。本文将详细介绍Jmeter的基本配置、组成部分、语言选择、相关选项以及核心组件,帮助用户理解和掌握...