PressureTest

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class PressureTest {
	
	private static String url = "http://192.168.0.109:8080/prms/send";
	private static Integer error = 0;
	private static Integer threads =630;
	private static Long startTime;
	
	public static void main(String[] args) {
		WorkThread[] workThreads = new WorkThread[threads];
		for(int i=0;i<threads;i++){
			workThreads[i] = new WorkThread();
		}
		startTime = System.currentTimeMillis();
	
		for(int i=0;i<threads;i++)
		{
			workThreads[i].start();
		}
	}
	
	private static class WorkThread extends Thread{

		@Override
		public void run() {
			long start = System.currentTimeMillis();
			long end = 0;
			// TODO Auto-generated method stub
			try {
				URL u = new URL(url);
				HttpURLConnection urlConn = (HttpURLConnection) u.openConnection();
				urlConn.setRequestProperty("Content-type", "text/html;charset=UTF-8");
				urlConn.setUseCaches(false);
				urlConn.setRequestMethod("POST");
				urlConn.connect();
				InputStream is =urlConn.getInputStream();
				StringBuffer buffer = new StringBuffer();
				read2Buffer(buffer, is);
				end = System.currentTimeMillis();
				System.out.println(buffer.toString());
			} catch (Exception e) {
				// TODO Auto-generated catch block
				synchronized(error){
					error ++;
				}
				e.printStackTrace();
			}
			
			synchronized (threads) {
				threads --;
				System.out.printf("還有%d個未完成線程,用時%d毫秒\n",threads,(System.currentTimeMillis() - startTime));
				if(threads == 0){
					System.out.printf("總用時:%d毫秒\n", (System.currentTimeMillis() - startTime));
					System.out.printf("連接失敗:%d\n",error);
				}
			}
		}
		
		public void read2Buffer(StringBuffer buffer,InputStream is) throws IOException{
			String line;
			BufferedReader reader=new BufferedReader(new InputStreamReader(is));
			line = reader.readLine();
			while(line != null){
				buffer.append(line);
				buffer.append("\n");
				line =reader.readLine();
			}
		}
	}
	

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章