JMeter学习重点笔记专业资料.doc
《JMeter学习重点笔记专业资料.doc》由会员分享,可在线阅读,更多相关《JMeter学习重点笔记专业资料.doc(29页珍藏版)》请在咨信网上搜索。
1、JMeter学习笔记1. 安装JMeter1. 安装JDK1.4以上版本。2. 设立环境变量:i. 在顾客变量中,新建变量名“JAVA_HOME”,变量值为:安装JDK目录,如我为:“C:Program FilesJavajdk1.5.0;” ii. 再新建变量名为“CLASSPATH”,变量值为:“%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;%JAVA_HOME%bin;” 。iii. 在系统变量“Path”变量值后加上:“%JAVA_HOME%bin;”。3. 安装Jmeter,解压“jakarta-jmeter-2.3.2.zip”到E盘根目
2、录下:“E:jakarta-jmeter-2.3.2”。4. 设立环境变量:i. 在顾客变量中,新建变量名“JMETER_HOME”,变量值为:“E:jakarta-jmeter-2.3.2;”。ii. 修改“CLASSPATH”,添加:“%JMETER_HOME%libextApacheJMeter_core.jar;%JMETER_HOME%libjorphan.jar;%JMETER_HOME%liblogkit-1.2.jar;”。5. 运营jmeter:直接打开 E:jakarta-jmeter-2.3.2binjmeter.bat 即可。2. JMeter 重要测试组件总结如下:1
3、. 测试筹划是使用 JMeter 进行测试起点,它是其他 JMeter 测试元件容器。2. 线程组代表一定数量并发顾客,它可以用来模仿并发顾客发送祈求。实际祈求内容在Sampler中定义,它被线程组包括。3. 监听器负责收集测试成果,同步也被告知了成果显示方式。4. 逻辑控制器可以自定义JMeter发送祈求行为逻辑,它与Sampler结合使用可以模仿复杂祈求序列。5. 断言可以用来判断祈求响应成果与否如顾客所盼望。它可以用来隔离问题域,即在保证功能对的前提下执行压力测试。这个限制对于有效测试是非常有用。6. 配备元件维护Sampler需要配备信息,并依照实际需要会修改祈求内容。7. 前置解决器
4、和后置解决器负责在生成祈求之前和之后完毕工作。前置解决器常惯用来修改祈求设立,后置解决器则常惯用来解决响应数据。8. 定期器负责定义祈求之间延迟间隔。3. 惯用测试本文以这三种节点为例,简介如何使用 JMeter 来完毕针对于它们压力测试。3.1 Web 服务器对于大多数项目来说,并不会自行开发一种Web服务器,因而Web服务器压力测试对象实际就是-发布到Web服务器中软件。最简朴Web测试筹划只需要三个 JMeter 测试元件,如下图:其中: 在线程组中定义线程数、产生线程发生时间和测试循环次数。 在http祈求中定义服务器、端口、合同和办法、祈求途径等。 表格监听器负责收集和显示成果。这种
5、设立对于包括了安全机制 web 应用是不够,典型 web 应用普通都会:1. 有一种登录页,它是整个应用入口。当顾客登录之后,应用会将顾客有关安全信息放到 session 中。2. 有一种 filter,它拦截祈求,检查每个祈求有关 session 中与否包具有顾客安全信息。如果没有,那么祈求被重定向到登录页,规定顾客提供安全信息。在这种配备下应用上面测试筹划,那么除了登录页之外其他祈求都将由于缺少顾客安全信息,而使祈求实际定位到登录页。如果不加断言,那么在监听器看来所有祈求都是成功。而事实上,这些祈求最后都没有到达它们应当去地方。显然,这种测试成果不是咱们所盼望。为了成功测试,至少有2种办法
6、: 办法一,去掉程序安全设立,如filter,使得不需要顾客安全信息也能访问受限内容; 办法二,不修改程序,使用JMeter提供Http URL重写修饰符或Http Cookie管理器。对于第一种办法,有其局限性: 需要修改程序配备,如去掉web.xml中关于安全filter设立。需要维护各种版本web.xml,如压力测试和功能测试分别各自web.xml,增长了维护成本,并且有也许会在测试之后忘掉将web.xml修改回来。 对于某些需要顾客安全信息页面无能为力,如某些业务审计操作需要顾客安全信息来记录。由于缺少这样信息,注定了测试失败。如果解决为了这个问题进一步修改程序,那么由于存在各种版本程
7、序,那么其维护难度将大大增长。虽然,第二种办法配备难度增长了,但是它不用修改程序。并且还可将测试筹划保存成文献,以便重复使用。因而,选用第二种办法是较为抱负做法。下面以一种简化例子阐明用法二配备环节。1. 例子由如下几种文献构成: AuthorizenFilter.java,过滤器负责检查session中与否存在顾客信息。如果没有,那么就转向到 login.jsp。它重要办法 doFilter 内容如下:public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws
8、 IOException,ServletException HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse res = (HttpServletResponse)response; HttpSession session= req.getSession(); User user = (User)session.getAttribute(user); if(null = user) String uri= req.getRequestURI(); /如果祈求页是登录页,不转向 if( uri.eq
9、ualsIgnoreCase(/gWeb/login.jsp) chain.doFilter(request,response); else res.sendRedirect(/gWeb/login.jsp);else chain.doFilter(request,response); User.java,顾客类负责记录顾客信息。为了简化,这里登录操作只容许指定顾客名和密码。重要内容如下:public class User private String user;private String pwd;public User(String user,String pwd) this.user =
10、 user;this.pwd = pwd;public boolean login()return user.equals(foxgem) & pwd.equals(12345678);public String getUser() return user;public void setUser(String user) this.user = user; Login.jsp 和welcome.jsp。其中 login.jsp 负责生成 User 对象,并调用 User login。当 login 返回为 true 时转向到 welcome.jsp。其验证某些代码: web.xml,配备 fi
11、lter 拦截所有访问 JSP 页面祈求: authorizen org.foxgem.jmeter.AuthorizenFilter authorizen*.jsp2. 创立如下构造Web测试筹划:其中重要测试元件阐明如下: http祈求默认值负责记录祈求默认值,如服务器、合同、端口等。 第一种http祈求,祈求login.jsp,并附加验证所需要参数(user=foxgem,pwd=12345678,Submit=Submit);其包括响应断言验证url中包括welcome.jsp,这一点可以从程序中反映。 第二个http祈求,祈求是welcome.jsp;其包括响应断言验证响应文本中包括
12、foxgem,它是welcome.jsp页面逻辑一某些。 http cookie管理器负责管理整个测试过程中使用cookie,它不需要设立任何属性。 循环控制器设立发送第二个祈求循环次数,表格监听器负责收集和显示第二个祈求测试成果。启动测试筹划之后,执行顺序是:一方面,第一种祈求登录页进行登录;成功登录之后,使用循环控制器执行第二个祈求。祈求welcome.jsp时,响应断言用来验证与否的确是welocme.jsp来解决祈求,而不是由于其他页。在这个测试筹划中需要注意是http cookie管理器。正是由于它作用,使得第二个祈求能顺利发送到welcome.jsp进行解决,而不是由于缺少顾客安全
13、信息转发到login.jsp。在这个例子中,咱们并没有在程序中使用cookie(使用是session),那么http cookie管理器怎么会起作用呢?这是由于在servlet/jsp规范中对于session状态跟踪有2种方式: 使用cookie,保存和传递sessionid。它不规定程序对于url有什么特殊解决,但是规定浏览器容许cookie。在这个例子中,就是这种情形。 使用url重写,每次显式在浏览器和服务器之间传递sessionid。它规定程序对url进行编码,对浏览器没有规定。对于第二种情形,可以使用JMeter前置管理器中http url重写修饰符来完毕。对于Tomcat,Sess
14、ion参数是jsessionid,途径扩展使用;。使用url编码时需要注意,必要将浏览器cookie功能关闭。由于url编码函数,如encodeURL,会判断与否需要将sessionid编码到url中。当浏览器容许cookie时,就不会进行编码。如果cookie而不是session来保存顾客安全信息,那么直接使用http cookie管理器就行了。此时,需要将使用cookie参数和值直接写到管理器中,由它负责管理。对于其他cookie使用,也是如此操作。登录问题解决之后,对于 Web 服务器测试就没什么难点了。剩余就是依照实际需要,灵活运用有关测试组件搭建编写测试筹划。(固然,对于安全问题尚有
15、其他使用情景。在使用时需要明确:JMeter 与否支持,如果支持使用哪种测试组件解决。)3.2 数据库服务器数据库服务器在大多数公司项目中是不可缺少,对于它进行压力测试是为了找出:数据库对象与否可以有效地承受来自各种顾客访问。这些对象重要是:索引、触发器、存储过程和锁。通过对于SQL语句和存储过程测试,JMeter 可以间接反映数据库对象与否需要优化。JMeter 使用 JDBC 发送祈求,完毕对于数据库测试。一种数据库测试筹划,建立如下构造即可:其中: JDBC连接配备,负责配备数据库连接有关信息。如:数据库url、数据库驱动类名、顾客名和密码等等。在这些配备中,绑定到池变量名(Variab
16、le Name Bound to Pool)是一种非常重要属性,这个属性会在JDBC祈求中被引用。通过它, JDBC祈求和JDBC连接配备建立关联。(测试前,请将所需要数据库驱动放到JMeterclasspath中)。 JDBC祈求,负责发送祈求进行测试。 图形成果,收集显示测试成果。在实际项目中,至少有2种类型JDBC祈求需要关注:select语句和存储过程。前者反映了select语句与否高效,以及表索引等与否需要优化;后者则是反映存储过程算法与否高效。它们如果效率低下,必然会带来响应上不尽如人意。对于这两种祈求,JDBC祈求配备略有区别: Select语句 存储过程如果对于Oracle,如
17、果测试是函数,那么也可以使用select语句来进行配备,此时可以使用:select 函数(入参) from dual形式语句来测试,其中dual是oracle核心字,表达哑表。对于其他厂商数据库产品,请查找手册。3.3 JMS服务器MOM 作为消息数据互换平台,也是影响应用执行效率潜在环节。在 Java 程序中,是通过 JMS 与 MOM 进行交互。作为 Java 实现压力测试工具,JMeter 也能使用 JMS 相应用消息互换和有关数据解决能力进行测试。这一点应当不难理解,由于在整个测试过程中,JMeter 测试重点应当是消息产生者和消费者自身能力,而不是 MOM自身。依照 JMS 规范,消
18、息互换有2种方式:发布/订阅和点对点。JMeter针对这两种情形,分别提供了不同Sampler进行支持。如下MOM咱们使用ActiveMQ 3.2.1,分别描述这两种消息互换方式是如何使用 JMeter 进行测试。1. 测试前准备(两种状况都合用)下面就是实际使用 jmeter 进行 jms 测试一方面需要启动 activemq,直接运营 ACTIVEMQ_HOME/bin/activemq.bat (ACTIVEMQ_HOME即activemq安装目录)批解决脚本,当看到如下图所示内容,阐明 activemq 已经成功启动。下 面开始启动 jmeter。在运营 jmeter 之前需要完毕几件
19、事情。由于 jmeter 是通过 jndi 来获得 jms 中有关对象,如 ConnectionFactory 和 Destination,因此在 jmeter classpath 中需要添加一种 jndi.properties 属性文献,用于配备jndi。这个文献配备是 activemq 有关jndi,关于 activemq 与 jndi 集成可以参照。jndi.properties 文献内容如下:java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactoryjava.naming.prov
20、ider.url=tcp:/localhost:61616connectionFactoryNames=connectionFactoryqueue.MyQueue=example.MyQueuequeue.MyQueue2=example.MyQueue2topic.MyTopic=example.MyTopic保存并把这个文献复制到 JMETER_HOME/bin (JMETER_HOME为 jmeter 安装目录)目录中。由于 bin 目录并不在 jmeter classpath 中,因此需要执行某些额外工作来把 jndi.properties 添加到 jmeter classpath
21、中,这儿使用一种最简朴办法:把 jndi.properties 打包到 jmeter 启动 jar 包中。 jmeter 启动 jar 包为 JMETER_HOME/bin/ApacheJMeter.jar,因此需要把 jndi.properties 打包到这个 jar 文献中。执行如下操作,打开命令行窗口,并定位到 JMETER_HOME/bin 目录,运营如下命令 jar uf ApacheJMeter.jar jndi.properties 就可以,如图所示下图是运营 jar uf ApacheJMeter.jar 命令之前,ApacheJMeter.jar 中所包括目录或文献下图是运营
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JMeter 学习 重点 笔记 专业 资料
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。