【转】使用JMeter 完成常用的压力测试(二)

使用JMeter 完成常用的压力测试

  Login.jsp 和welcome.jsp。其中 login.jsp 负责生成 User 对象,并调用 User 的login。当 login 返回为 true 时转向到 welcome.jsp。其验证部分的代码:

  <%   if( request.getParameter("Submit") != null) {
  User ur= new User( request.getParameter("user"), request.getParameter("pwd"));
  if( ur.login()){
  session.setAttribute("user", ur);
  response.sendRedirect("/gWeb/welcome.jsp");
  } else{
  session.setAttribute( "LOGIN_ERROR_MSG", "无效的用户,可能原因:用户不存在或被禁用。");
  response.sendRedirect("/gWeb/index.jsp");
  return;
  }
  }
  %>

  web.xml,配置 filter 拦截所有访问 JSP 页面的请求:

  <filter>
  <filter-name>authorizen</filter-name>
  <filter-class>org.foxgem.jmeter.AuthorizenFilter</filter-class> </filter> <filter-mapping>
  <filter-name>authorizen</filter-name>
  <url-pattern>*.jsp</url-pattern> </filter-mapping>

  2. 创建如下结构的Web测试计划:

  

  其中主要测试元件说明如下:

  http请求默认值负责记录请求的默认值,如服务器、协议、端口等。
第一个http请求,请求login.jsp,并附加验证所需要的参数(user=foxgem,pwd=12345678,Submit=Submit);其包含的响应断言验证url中包含"welcome.jsp",这一点可以从程序中反应。

  第二个http请求,请求是welcome.jsp;其包含的响应断言验证响应文本中包含"foxgem",它是welcome.jsp页面逻辑的一部分。

  http cookie管理器负责管理整个测试过程中使用的cookie,它不需要设置任何属性。

  循环控制器设置发送第二个请求的循环次数,表格监听器负责收集和显示第二个请求的测试结果。

  启动测试计划之后,执行的顺序是:首先,第一个请求登录页进行登录;成功登录之后,使用循环控制器执行第二个请求。请求welcome.jsp时,响应断  言用来验证是否确实是welocme.jsp来处理请求,而不是因为其它页。在这个测试计划中需要注意的是http  cookie管理器。正是由于它的作用,使得第二个请求能顺利的发送到welcome.jsp进行处理,而不是因为缺少用户安全信息转发到  login.jsp。

  在这个例子中,我们并没有在程序中使用cookie(使用的是session),那么http cookie管理器怎么会起作用呢?这是因为在servlet/jsp规范中对于session的状态跟踪有2种方式:

  使用cookie,保留和传递sessionid。它不要求程序对于url有什么特殊的处理,但是要求浏览器允许cookie。在这个例子中,就是这种情形。

  使用url重写,每次显式的在浏览器和服务器之间传递sessionid。它要求程序对url进行编码,对浏览器没有要求。          对于第二种情形,可以使用JMeter前置管理器中的http url重写修饰符来完成。对于Tomcat,Session参数是jsessionid,路径扩展使用";"。使用url编码时需要注意,必须将浏览器的  cookie功能关闭。因为url编码函数,如encodeURL,会判断是否需要将sessionid编码到url中。当浏览器允许cookie时,就不会进行编码。

  如果cookie而不是session来保存用户安全信息,那么直接使用http cookie管理器就行了。此时,需要将使用的cookie参数和值直接写到管理器中,由它负责管理。对于其它的cookie使用,也是如此操作。

  登录问题解决之后,对于 Web  服务器的测试就没什么难点了。剩下的就是根据实际需要,灵活运用相关的测试组件搭建编写的测试计划。(当然,对于安全问题还有其它的使用情景。在使用时需要明确:JMeter 是否支持,如果支持使用哪种测试组件解决。)

  数据库服务器

  数据库服务器在大多数企业项目中是不可缺少的,对于它进行压力测试是为了找出:数据库对象是否可以有效地承受来自多个用户的访问。这些对象主要是:索引、触发器、存储过程和锁。通过对于sql语句和存储过程的测试,JMeter 可以间接的反应数据库对象是否需要优化。

  JMeter 使用 JDBC 发送请求,完成对于数据库的测试。一个数据库测试计划,建立如下结构即可:

  

  其中:

  JDBC连接配置,负责配置数据库连接相关的信息。如:数据库url、数据库驱动类名、用户名和密码等等。在这些配置中,"绑定到池的变量名"  (Variable Name Bound to Pool)是一个非常重要的属性,这个属性会在JDBC请求中被引用。通过它,  JDBC请求和JDBC连接配置建立关联。(测试前,请将所需要的数据库驱动放到JMeter的classpath中)。  JDBC请求,负责发送请求进行测试。 图形结果,收集显示测试结果。

  在实际的项目中,至少有2种类型的JDBC请求需要关注:select语句和存储过程。前者反应了select语句是否高效,以及表的索引等是否需要优  化;后者则是反应存储过程的算法是否高效。它们如果效率低下,必然会带来响应上的不尽如人意。对于这两种请求,JDBC请求的配置略有区别:

  Select语句

  

  存储过程

  

  如果对于oracle,如果测试的是函数,那么也可以使用select语句来进行配置,此时可以使用:select 函数(入参) from dual形式的语句来测试,其中dual是oracle的关键字,表示哑表。对于其它厂商的数据库产品,请查找手册。

时间: 2024-08-01 17:54:42

【转】使用JMeter 完成常用的压力测试(二)的相关文章

转:使用 JMeter 完成常用的压力测试

使用 JMeter 完成常用的压力测试 就目前 Java EE 的平台下开发的软件来说,这种节点通常可能是:Web 服务器.数据库服务器和 JMS 服务器.它们都是请求主要发生的地点,请求频率较其它的节点要高,而且处于请求序列的关键路径之上.如果它们效率无法提高的话,对于整个软件的效率有致命的影响.而且在这些节点上一般都会发生较大规模的数据交换,有时其中还包含有业务逻辑处理,它们正是在进行压力测试时首先需要考虑的. 文中有例子 http://www.ibm.com/developerworks/

使用 JMeter 完成常用的压力测试

原文地址: http://www.ibm.com/developerworks/cn/opensource/os-pressiontest/ 胡 键 ([email protected]), 西安交通大学硕士 本文介绍了 JMeter 相关的基本概念.并以 JMeter 为例,介绍了使用它来完成最常用的三种类型服务器,即 Web 服务器.数据库服务器和消息中间件,压力测试的方法.步骤以及注意事项. 讲到测试,人们脑海中首先浮现的就是针对软件正确性的测试,即常说的功能测试.但是软件仅仅只是功能正确

使用 JMeter 完成常用的压力测试 [转]

讲到测试,人们脑海中首先浮现的就是针对软件正确性的测试,即常说的功能测试.但是软件仅仅只是功能正确是不够的.在实际开发中,还有其它的非功能因素也起着决定性的因素,例如软件的响应速度.影响软件响应速度的因素有很多,有些是因为算法不够高效:还有些可能受用户并发数的影响. 在众多类型的软件测试中,压力测试正是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户的访问时,软件的抗压能力.本文以 JMeter 为例,介绍了如何使用它来完成常用的压力测试:Web 测试.数据库测试和 JMS 测试.

jmeter 连接 mysql 进行压力测试

jmeter 连接 mysql 进行压力测试,布布扣,bubuko.com

jmeter 连接 sqlite 进行压力测试

jmeter 连接 sqlite 进行压力测试,布布扣,bubuko.com

学习总结——JMeter做http接口压力测试

JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做压力测试的时候就是混合场景,需要多个接口共同作用. 压测时间设定 通常时间设为10 – 15 分钟,如果涉及疲劳测试的话时间可根据实际情况设定,1周,一个月不等. 测试数据准备 如果需要测试的数据量很大的话,需要造数据,造数据可以JMeter操作数据库来完成,也可以用Python造数据. 结果查看

Android APP压力测试(二)之Monkey信息自动收集脚本

Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息,主要收集Monkey测试日志.手机日志.手机屏幕截图.测试手机信息,自动按次按时间点保存信息.只需轻轻一点,腾出手腾出脑想干吗干吗,执行结束应该有信息的都有收集,一定程序提升了效率,节约了时间.可以偷空看看美图.聊天扯淡...哦不,是学习提高审美观,沟通交流增进同事情感... 转载请注明出处:Find

Jmeter教程 简单的压力测试

转载:http://www.cnblogs.com/TankXiao/p/4059378.html?utm_source=tuicool Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 什么是压力测试 顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况) 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站

用Jmeter对数据库执行压力测试

在我看来压力测试的压测对象可以分为UI,接口及数据库三个部分吧,对界面及接口进行压测还算熟悉, 定位性能瓶颈,对数据库SQL执行压测也是需要做的.工具呢?还是Jmeter 1.将需要用到的链接Oracle的架包放到jmeter中 在数据库服务器安装路径下,找到ojdbc5.jar,如 D:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib 拷贝到jmeter/lib中 2.配置Jmeter           2.1 新建线程组