求一个对java测试web服务器程序最大连接
接到boss要求写一个模拟测试web服务器访问,当最大连接数的多少,这台服务器不可访问。
程序不用很复杂,只要能在web服务器上运行,而且能记录模拟接连接的峰值与时间,到达多少是不能访问。
就是不知怎么同一时间发起这种大量模拟连接,哪位有程序代码能提供一份吗,谢谢。
还有种访问模拟客户端最好是用web程序网页的,另不要给我推荐一些工具测试之类的。
------最佳解决方案--------------------可以找个开源项目现在很多
------其他解决方案--------------------1,你机器可以开这个多访问线程吗?
2,如果连上就关闭,这样的话很不准确的哦
------其他解决方案--------------------这个不要写程序啊,现成的压力软件就可以满足他的要求啊,而且比他的还要详细,还可以输出压力检测图来的。
------其他解决方案--------------------WAS(Web Application Stress) 和 LoadRunner 都可以满足,而且是专业的测试工具。
上手也不难,网上资料也很多。
------其他解决方案--------------------linux下的 jmeter + probe
------其他解决方案--------------------那你不要關閉連接 無限讀數據庫 然後輸出數值
------其他解决方案--------------------jmeter吧
------其他解决方案--------------------WAS+LOADRUNNER
------其他解决方案-------------------- jmeter貌似也可以让web程序集成到系统中吧.. lz实在不行就用corba接口
------其他解决方案--------------------关注中。。。
------其他解决方案--------------------学习啦
------其他解决方案--------------------
up...
------其他解决方案--------------------
我说了,不用工具工具我能找到。
------其他解决方案--------------------
这是关于线程上的问题,不是输出值就能解决的,网上倒时找了一个文章就是并发用户,但问题就是不知怎么才能知道,多少用户时服务器当了测试服务端代码怎么判断。
import java.io.BufferedReader;
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) {