代码如下:
不要做坏事呦
package pressureTest;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Calendar;
import java.util.Scanner;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class HttpTest implements Runnable {
private static String strUrl = null;
private static long numL = 0L;
private static Scanner scanner = new Scanner(System.in);
private static File f = new File("E:\\test.txt");
private static HttpClient httpClient;
public HttpTest(HttpClient httpClient){
this.httpClient=httpClient;
}
public void run() {
while (true)
try {
// Cookie[] cookies = httpClient.getState().getCookies();
// httpClient.getState().addCookies(cookies);
GetMethod get = new GetMethod(strUrl + numL);
// get.setRequestHeader("Cookie" , cookies.toString());
int statusCode = httpClient.executeMethod(get);
// CloseableHttpClient httpclient = HttpClients.createDefault();
// HttpGet httpget = new HttpGet(strUrl + numL);
// CloseableHttpResponse response = httpclient.execute(httpget);
try {
// int statusCode = response.getStatusLine().getStatusCode();
if(statusCode!=200){
BufferedWriter bw = new BufferedWriter(new FileWriter(f, true));
bw.write("第"+numL+"次访问,状态码:["+statusCode+"] 时间"+Calendar.getInstance().getTime().toString());
bw.newLine();
bw.close();
break;
}
} finally {
get.releaseConnection();
numL++;
}
Thread.sleep(10L);
} catch (InterruptedException e) {
while (true) {
e.getMessage();
try {
Thread.sleep(1000L);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws HttpException, IOException {
HttpClient client = login();
System.out.println("");
int threadNum;
while (true) {
System.out.println("请输入要生成的线程数:");
threadNum = scanner.nextInt();
System.out.println("请输入网址:");
String str = scanner.next();
// String str = "http://www.baidu.com";
if ((!(str.startsWith("http://")))
&& (!(str.startsWith("https://")))) {
strUrl = "http://" + str;
System.out.println(strUrl);
} else {
strUrl = str;
}
if (str.indexOf("?") >= 0)
strUrl += "&num=";
else {
strUrl += "?num=";
}
System.out.println("--------------------------------------");
System.out.println("线程数:" + threadNum);
System.out.println("地址" + str);
System.out.println("请再次确认(Y/N):");
String tmp = scanner.next();
if ("Y".equalsIgnoreCase(tmp))
break;
if ("N".equalsIgnoreCase(tmp)) {
continue;
}
// System.out.println("输入错误,请重新输入(Y/N):");
}
BufferedWriter bw;
try {
bw = new BufferedWriter(new FileWriter(f, true));
bw.write("测试开始 时间:"+Calendar.getInstance().getTime().toString());
bw.newLine();
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; i < threadNum; i++) {
HttpTest at = new HttpTest(client);
Thread t = new Thread(at);
t.start();
// System.out.println(i);
}
}
private static HttpClient login() throws HttpException, IOException {
HttpClient client = new HttpClient();
// web系统登录页面 以及登陆信息设置
PostMethod post = new PostMethod(
"http://XXXXXXXXXXXXX");
NameValuePair ie = new NameValuePair("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
NameValuePair url = new NameValuePair("url", "/TelinCRMQW/");
NameValuePair username = new NameValuePair("username", "admin");
NameValuePair password = new NameValuePair("userpassword", "password");
NameValuePair session = new NameValuePair("session", "1111111");
post.setRequestBody(new NameValuePair[] { ie, url, username, password });
client.executeMethod(post);
System.out
.println("******************************登录******************************");
Cookie[] cookies = client.getState().getCookies();
client.getState().addCookies(cookies);
post.releaseConnection();
return client;
}
}