jmeter mina2总结

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}

 

 

 

 

 

你可能感兴趣的:(xml,socket,Mina,UP,loadrunner)