当前位置:首页 » 网页前端 » javaweb压力测试
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

javaweb压力测试

发布时间: 2022-12-09 19:52:16

㈠ java web项目怎么测试

java web项目测试用Web的测试工具,如HtmlUnit,JWebUnit等。
main()方法就可以测试,在main方法中获得connection对象将他输出就可以了。
如果正常输出一大串就是对了。

例子:
public class DBConnection {
private static String url = "jdbc:sqlserver://localhost:1433;DataBaseName=HXParserDB";
private static String username = "sa";
private static String password = "123";
private DBConnection(){}
private static DBConnection dbconn = new DBConnection();
private static Connection conn = null;
// 注册驱动
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public DBConnection getDBConn(){
if(null==dbconn){
dbconn = new DBConnection();
}
return dbconn;
}
// 返回Connection对象
public static Connection getConnection() {
try {
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
return null;
}
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(DBConnection.getConnection());
}

}

㈡ Java Web应用如何压力测试工具有哪些具体怎么做

经典的自然是loadrunner,可以进行并发压力测试,很实用,可以模拟多IP,多用户同时运行,可以设置运行间隔,可以参考下相关的文档,建议去csdn上下一个相关的教程

㈢ 怎样正确做 Web 应用的压力测试

可以看下腾讯wetest的这个压测工具http://wetest.qq.com/gaps/

通过产生真实压力来发现问题、结合系统性能来解决问题

㈣ java后台压力测试用什么工具好

思路:
压力测试原理有两种,一种是连接测试,一种是负载测试
1,连接测试,就是多线程,不停的请求直到服务器死机或达到预期效果即可!
2,负载测试,就是一个线程的多步操作,每个线程占用服务器cpu 内存是否符合节能高效的标准,如果不是,那就优化吧
建议用LOADRUNNER吧。

㈤ javaweb 用户同时多次请求一个方法时,出现奇怪的问题

发送请求时,由网站并发量决定用户的请求最大数,超过限制时会等待并多次执行

㈥ web压力测试 要测试哪些方面

web压力测试通过产生真实压力来发现问题需要关注以下方面:
1、对要测试的系统进行分析,明确需要对哪一块做压力测试。比如:淘宝网站双十一期间,秒杀跟支付,此模式用户操作中占比比较大
再比如:游戏,登录--开始战斗--结束战斗这种混合模式在用户操作中占比较大
那么就可以针对这种占比比较大的模式进行压力测试
2、明确了要测试的点后,如何对这些测试点进行施压呢?
第一种方式可以通过写脚本产生压力机器人对服务器进行发包收包操作;
第二种方式就是借助一些压力测试工具如:JMeter或LoadRunner
3、如何对这些测试点进行正确的施压呢?
那么就需要用压力测试工具或者其它方法来录制脚本,模拟用户的操作
4、对测试点该施加多大的压力比较合适?该施加多少的数据才能找出系统的瓶颈?
那么就需要明确压力测试所限制的数量,即用户并发量,这里分3种情况来明确:
1)根据上级的明确规定数量,来设定最确大值,然后根据情况往上或往下增减
2)上级未规定,由自己判断,从1开始慢慢递增。如:1,5,10,20等等
3)若做过压力测试,则可以根据上次的压力测试结果为基数进行测试
5、测试完之后,如何通过这些数据来定位性能问题呢?
虽然通过这些测试结果我们可以得到TPS(吞吐量),平均响应时间等这些数据,可判断出服务器是否存在问题,但却不能定位问题。

㈦ 如何搭建java web测试环境

WEB
测试

搭建测试环境
所需的软硬件包括:电脑一台、
JDK1.6

Tomcat7.0

mysql

IE
浏览器、
Firefox
浏览器、
Chrome
浏览器、
SVN
客户端

通过
SVN
客户端导出最新的
Web
工程部署到
Tomcat7.0


webapps

,另外重要的一
点就是修改数据库连接的配置文件,
连接到正确的测试数据库
(企业一般有开发人员所用的
数据库和测试人员所用的数据库)
,数据库连接的配置文件在
WEB-INF
文件夹下,修改好
数据库的配置文件后,

Tomcat7.0\bin\startup.bat
启动
Tomcat


Tomcat
没报错的情况下,
用浏览器访问后台,出现一个登录界面,这样,一个简单完整的
Web
测试环境就搭建起来
了!

二、
Web
测试方法

1
、链接测试

链接是
web
应用系统的一个主要特征,它表示页面与页面直接的切换和用户不知道具体地
址去访问其他页面的手段,如果页面不能跳转或者是访问失败,有很大程度上是
web
应用
程序的链接出问题了;
其中有一个重要的性能指标就是链接速度的测试,
用户打开一个页面
或者是去访问另外一个页面,如果
web
系统响应时间太长(例如超过
5
秒钟)
,用户就会因
没耐心而离开,
还有就是有些页面有超时的限制,
这样可能引起数据丢失,
使用户得不到真
实的页面。

2
、数据库测试


web
应用技术中,数据库起着重要的作用,数据库为
web
应用系统的管理、运行、查询
和实现用户对数据存储的请求提供空间,
也就是说用户在页面进行各类操作,
如添加、
查询

删除等一系列动作,都会被数据库记录。

3
、浏览器测试

浏览器是
web
客户端最核心的构件,来自不同厂商的浏览器对不同开发语言开发的应用程
序有不同的支持,这就需测试人员对主流的浏览器和不同版本的浏览器进行有效的测试。

4
、平台测试

市场上有很多不同的操作系统类型,
web
应用系统的最终用户究竟使用哪一种操作系统,

决于用户系统的配置,因此,在
web
系统发布之前,需要在各种主流的

操作系统下对
web
系统进程测试。

5
、负载测试

负载测试是为了测量
web
系统在哪一负载级别上的性能,以保证
web
系统在需求范围内能
正常工作。
例如:
web
应用系统能允许多少个用户同时在线?如果超过这个数量会出现什么
现象?
Web
应用系统能否同时处理大量用户对同一个页面的请求?

6
、压力测试

进行压力测试通俗的来讲是指破坏一个
web
应用系统,测试系统的反映,测试系统的限制
和故障恢复的能力,也就是测试
web
应用系统会不会崩溃,在什么样的情况下崩溃。

7
、整体界面测试

整体界面是指整个
web
应用系统的爷们结构设计,是给用户的一个整体感。例如:当用户
浏览
web
页面时是否感到舒适,是否凭直觉就知道要找的信息在什么地方,整个
web
应用
系统的可用性在哪里。

三、总结

本文主要讲述了
web
应用系统的搭建测试环境和
web
测试方法,在测试过程中,有的仅需
要手动测试的,有的需要自动化测试工具的帮助,所以
web
系统的测试要求测试人员有很
深的自动化测试技术。

㈧ 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-generatedmethodstub

ExecutorServiceexec=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);//此处填写供测试的url

HttpURLConnectionconnection=(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();

}

(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(" "+ret);

returnret;

}

}

㈨ 怎样正确做 Web 应用的压力测试

关于工具的选择

其实工具并不是最重要的,那么多的测试工具,HP的是LoadRunner、IBM的是Rational Performance Tester、Apache有Jmeter(免费开源)、还有Borland的SilkPerformer,这些都是可以的。有人提到了Apache的AB,AB不是说不行的,但既然问题是"正确的压力测试",那么还是选择一个那些容易支撑起复杂业务的性能场景的工具吧。

什么样的工具能够在脚本中让你模拟业务场景中一个用户的行为?什么样的工具能够在场景中让你模拟业务场景中一群用户的行为?什么样的工具能够让你模拟用户所处于的使用环境?什么样的工具能够让你比较方便、快捷的通过它的性能图表了解Web应用的大致性能表现?答案肯定不会是那些对某个URL不断施压的那些工具。

关于场景的设计过程

过半数的性能测试人员并不了解自己执行的性能测试场景代表的是用户生产环境中什么样的场景。事实很难正确的说清楚“性能测试”、“负载测试”、“压力测试”、“可靠性测试”、“配置测试”、“疲劳测试”这些测试的概念。

任何一个场景的设计都必须首先明确一些相关的性能指标,这些指标的阈值一旦被超出,那么场景一般是不必继续执行的。

关于性能指标我们可以几个角度来看:

首先是用户视角的性能指标,一般来说这些指标包括了测试事务的平均响应时间、最大响应时间、90%事务的响应时间、事务响应时间标准差,我们通过着一些指标来判断用户实际获得的性能体验如何。然后是运维视角指标,点击率、吞吐量、处理能力、各种硬件资源占用、运维通过这些指标来了解目前应用的处理能力,通过业务增长了解何时需要进行扩容,还有开发视角的指标,锁竞争。具体要考虑的视角由项目干系人、关键角色定义。

采用的指标确定好以后,再开始为这些指标定义阈值,例如事务的响应时间,也许用户认为请求在2秒以内得到响应是满意的,5秒以内响应是一般,超出8秒则会感觉太慢,超出10秒会超出了可容忍的上限,那么对于这一项指标来说,它的阈值可以是:

<2秒响应,优秀

<5秒响应,良好

<8秒响应,较差

>10秒响应,超出可容忍上线

关于用户性能体验的指标一般会划分为4个级别。硬件指标至少也会划分2个级别。

系统在任何时候都应该为用户提供优秀的响应体验吗?并不总是,在2倍的峰值负载中,我认为良好、甚至较差的响应体验也是可接受的。那是不是说在正常的峰值负载中,各项指标表现不在优秀范围内就是不理想呢?也不一定,要看正常的峰值负载持续时间长短是否合理。

场景的设计不合理最终将可能导致我们面对一堆性能缺陷无法确定处理的优先级。

场景设计中,重点考虑的问题:

脚本测试数据符合典型用户的数据差异(测试帐号差异、操作数据差异、提交表单参数差异等)

脚本操作次序符合典型用户的操作差异(思考时间、业务间间隔等);

脚本执行符合典型用户的使用环境(浏览器缓存模拟、带宽模拟等);

测试环境的业务基础数据必须合理(0年到N年的基础数据);

测试场景所产生的负载必须合理(代表峰值的负载?代表1.5倍峰值的负载?代表促销活动的负载?)。

一般都是使用工具,可以模拟多用户 同时/异步地进行比较好的工具,要钱的有loadrunner ,不要钱的有JMeter 。这2种工具都能自动生成图形报告。这样你就能判断出服务器的瓶颈在哪里。是需要增加内存还是提高处理器性能,或者增加硬盘

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

使用loadrunner,进行压力测试,有比较详细的测试结果,
就是配置和使用loadrunner比较麻烦,不过网上有详细的教程,去下载一个吧,
自己写循环去测试,极不准确