import?java.io.BufferedReader;
我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、濱城ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的濱城網(wǎng)站制作公司
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.InputStreamReader;
import?java.io.PrintWriter;
import?java.net.HttpURLConnection;
import?java.net.URL;
import?java.util.HashMap;
import?java.util.Map;
import?java.util.concurrent.ExecutorService;
import?java.util.concurrent.Executors;
import?java.util.concurrent.Semaphore;
public?class?ConcurrentTest?{
private?static?int?thread_num?=?200;
private?static?int?client_num?=?460;
private?static?Map?keywordMap?=?new?HashMap();
static?{
try?{
InputStreamReader?isr?=?new?InputStreamReader(new?FileInputStream(
new?File("clicks.txt")),?"GBK");
BufferedReader?buffer?=?new?BufferedReader(isr);
String?line?=?"";
while?((line?=?buffer.readLine())?!=?null)?{
keywordMap.put(line.substring(0,?line.lastIndexOf(":")),?"");
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
public?static?void?main(String[]?args)?{
int?size?=?keywordMap.size();
//?TODO?Auto-generated?method?stub
ExecutorService?exec?=?Executors.newCachedThreadPool();
//?50個線程可以同時訪問
final?Semaphore?semp?=?new?Semaphore(thread_num);
//?模擬2000個客戶端訪問
for?(int?index?=?0;?index??client_num;?index++)?{
final?int?NO?=?index;
Runnable?run?=?new?Runnable()?{
public?void?run()?{
try?{
//?獲取許可
semp.acquire();
System.out.println("Thread:"?+?NO);
String?host?=?"?";
String?para?=?"method=getQueryResultpageNum=1pageSize=5"
+?"queryKeyWord="
+?getRandomSearchKey(NO)
+?"questionID=-1questionIdPath=-1searchType=1"
+?"proLine=proSeries=proType="?+?NO;
System.out.println(host?+?para);
URL?url?=?new?URL(host);//?此處填寫供測試的url
HttpURLConnection?connection?=?(HttpURLConnection)?url
.openConnection();
//?connection.setRequestMethod("POST");
//?connection.setRequestProperty("Proxy-Connection",
//?"Keep-Alive");
connection.setDoOutput(true);
connection.setDoInput(true);
PrintWriter?out?=?new?PrintWriter(connection
.getOutputStream());
out.print(para);
out.flush();
out.close();
BufferedReader?in?=?new?BufferedReader(
new?InputStreamReader(connection
.getInputStream()));
String?line?=?"";
String?result?=?"";
while?((line?=?in.readLine())?!=?null)?{
result?+=?line;
}
//?System.out.println(result);
//?Thread.sleep((long)?(Math.random())?*?1000);
//?釋放
System.out.println("第:"?+?NO?+?"?個");
semp.release();
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
};
exec.execute(run);
}
//?退出線程池
exec.shutdown();
}
private?static?String?getRandomSearchKey(final?int?no)?{
String?ret?=?"";
int?size?=?keywordMap.size();
//?int?wanna?=?(int)?(Math.random())?*?(size?-?1);
ret?=?(keywordMap.entrySet().toArray())[no].toString();
ret?=?ret.substring(0,?ret.lastIndexOf("="));
System.out.println("\t"?+?ret);
return?ret;
}
}
經(jīng)典的自然是loadrunner,可以進(jìn)行并發(fā)壓力測試,很實用,可以模擬多IP,多用戶同時運行,可以設(shè)置運行間隔,可以參考下相關(guān)的文檔,建議去csdn上下一個相關(guān)的教程
選我吧。。絕對短小精悍!
思路:
壓力測試原理有兩種,一種是連接測試,一種是負(fù)載測試
1,連接測試,就是多線程,不停的請求直到服務(wù)器死機(jī)或達(dá)到預(yù)期效果即可!
2,負(fù)載測試,就是一個線程的多步操作,每個線程占用服務(wù)器cpu 內(nèi)存是否符合節(jié)能高效的標(biāo)準(zhǔn),如果不是,那就優(yōu)化吧
所有測試以額定用戶(最大用戶)為基礎(chǔ)
使用loadrunner,進(jìn)行壓力測試,有比較詳細(xì)的測試結(jié)果,
就是配置和使用loadrunner比較麻煩,不過網(wǎng)上有詳細(xì)的教程,去下載一個吧,
自己寫循環(huán)去測試,極不準(zhǔn)確
文章標(biāo)題:壓力測試java代碼 JAVA壓力測試
當(dāng)前地址:http://muchs.cn/article22/dodhhjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、全網(wǎng)營銷推廣、標(biāo)簽優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站改版、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)