首页 > 办公教程 > 正文

java 压力测试,JAVA如何写一个纯并发的压力测试

2020-05-20 09:42:21  来源:http://www.capsicumpm.com  编辑:admin

JAVA JDBC连接Oracle数据库 进行压力测试

你好,你的UserDao第46行已经报空指针了,还有Connection reset是估计你的连接池资源不够达到上限了!

java写的web程序 怎么做压力测试呀,就是测试并发率(同一时间最大支持多少用户请求呢)?

我用过Apache Jmeter,可以录制脚本,并且多线程并发访问,网上有教程

JAVA如何写一个纯并发的压力测试

importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.HttpURLConnection;importjava.net.URL;importjava.util.HashMap;importjava.util.Map;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurrent.Semaphore;publicclassConcurrentTest{privatestaticintthread_num=200;privatestaticintclient_num=460;privatestaticMapkeywordMap=newHashMap();static{try{InputStreamReaderisr=newInputStreamReader(newFileInputStream(newFile("clicks.txt")),"GBK");BufferedReaderbuffer=newBufferedReader(isr);Stringline="";while((line=buffer.readLine())!=null){keywordMap.put(line.substring(0,line.lastIndexOf(":")),"");}}catch(Exceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){intsize=keywordMap.size();//TODOAuto-generatedmethodstubExecutorServiceexec=Executors.newCachedThreadPool();//50个线程可以同时访问finalSemaphoresemp=newSemaphore(thread_num);//模拟2000个客户端访问for(intindex=0;index<client_num;index++){finalintNO=index;Runnablerun=newRunnable(){publicvoidrun(){try{//获取许可semp.acquire();System.out.println("Thread:"+NO);Stringhost="http://10.99.23.42:7001/KMQueryCenter/query.do?";Stringpara="method=getQueryResult&pageNum=1&pageSize=5&"+"queryKeyWord="+getRandomSearchKey(NO)+"&questionID=-1&questionIdPath=-1&searchType=1"+"&proLine=&proSeries=&proType="+NO;System.out.println(host+para);URLurl=newURL(host);//此处填写供测试的urlHttpURLConnectionconnection=(HttpURLConnection)url.openConnection();//connection.setRequestMethod("POST");//connection.setRequestProperty("Proxy-Connection",//"Keep-Alive");connection.setDoOutput(true);connection.setDoInput(true);PrintWriterout=newPrintWriter(connection.getOutputStream());out.print(para);out.flush();out.close();BufferedReaderin=newBufferedReader(newInputStreamReader(connection.getInputStream()));Stringline="";Stringresult="";while((line=in.readLine())!=null){result+=line;}//System.out.println(result);//Thread.sleep((long)(Math.random())*1000);//释放System.out.println("第:"+NO+"个");semp.release();}catch(Exceptione){e.printStackTrace();}}};exec.execute(run);}//退出线程池exec.shutdown();}privatestaticStringgetRandomSearchKey(finalintno){Stringret="";intsize=keywordMap.size();//intwanna=(int)(Math.random())*(size-1);ret=(keywordMap.entrySet().toArray())[no].toString();ret=ret.substring(0,ret.lastIndexOf("="));System.out.println("\t"+ret);returnret;}}

如何使用loadrunner进行手机网站的压力测试?

这个so easy啊!听我慢慢道来:1、你的请求是H5的,如果没猜错的话协议应该是http+json之类的,所以你要确定你的测试协议;2、测试的对象:就是你的服务器了,直接用工具压服务器3、测试方法:用LR或者Jmeter模拟你手机短的报文,然后并发压到被测服务器上即可,报文嘛,需要你或者开发帮忙抓下报文了至于LR或者JMeter怎么用,自己查下吧,可以明确的给你说这个两个工具测试完全没有问题。给分吧!

java nio-SocketChannel压力测试场景下,收发消息时间不断变长

跑的线程太多了吧,你是用的Linux还是Windows服务器?再者,看看服务端那块数据接收正常不?这个没有那么简单的