`

使用jmeter测试web应用遇到的几个问题及解决

阅读更多

本周配合负责测试的同事对项目进行并发测试,选用开源的jmeter,之前同事下了loadrunner试用,
效果并不理想,对测试机本身的资源占用,导致压力无法"压"到服务上。相比之下,jmeter轻巧多了。
环境:
windows7 64位简体中文专业版
jdk1.6.0
服务 tomcat6.0

  • 下载   到官网(http://jakarta.apache.org/jmeter/)下载并解压jmeter到本地
  • 乱码 运行/bin/jmeter.bat 启动jmeter,出现中文乱码
    中文乱码
    打开同目录下的 jmeter.properties,去掉“#language=en”的注释,再次启动,语言改为英文了。
    改为英文界面
  • 录制 录制脚本
    • 在"Test Plan"中增加"Thread Group"
      增加thread group

    • 在"WorkBench"中增加“Http proxy Server”
      增加http proxy server

    • 完成后如下图,我的代理端口设置为8090:
       

    • 在浏览器中设置代理为localhost, 端口为上述8090。
    • 用浏览器访问web应用,这时所有http都经过jmeter转发,因此所有的http请求被jmeter录制并加入到Thread Group中。(注意如果Web应用在本机的话,不要直接用localhost访问,否则浏览器可能忽略代理设置,直接向web应用请求,我是好半天才醒 悟过来,google下,犯此错误的网友不少)
    • 录制结果

 

 

 

  • Session 要使jmeter能够保持住session,必须使其能够维持cookie中的jessionId,因此增加“http cookie manager”.
  •  
    • 维持session
  • 用户   并发线程以不同的用户名登录。  找到你的登录脚本,修改用户名为变量,例如:
    我的用户登录脚本为一个jsonRPC调用,用户名在http参数中
    录制脚本为 params:["L", {"map": {"user": "USER_TEST_u001}"
    将其修改为:params:["L", {"map": {"user": "USER_TEST_u2${__threadNum}"
    其中${__threadNum}为jmeter提供的函数,每个线程具有的独立id
    当然我的后台是允许所有前缀为“USER_TEST_”的测试用户登录的。
  • 循环 循环回放脚本
    • 录制的脚本回放用以模拟用户点击请求,如果想长时间压力测试,可以设置为循环回放脚本。
    • 循环回放
  •  
    • 设置适当的请求间隔。
    • 默认设置下,jmeter是前一个请求返回立即发送下一个请求,远远超出实际的用户点击,一般应当根据需要在两个请求之间设置时间间隔,我使用了“Constant Timer ”
    • 请求间隔
  • 并发LOOP
    • 我的测试用例包含两部分:1.用户的点击交互,录制为一系列jsonrpc请求; 2.Comet交互, 我设想分别建立两个thread Group,并发运行。
    • 结果却遗憾的发现:如果一个Thread Group包含了loop forever,jmeter将阻塞在这个loop,下一个thread Group将永不会启动。
    • 我的解决办法是将两个thread Group分拆到两个独立的test plan中,同时运行两个jmeter,不知道有没有更简洁的办法。
    BTW:javaeye在线编辑的编号功能实在不好用。
  • 大小: 26.9 KB
  • 大小: 29.7 KB
  • 大小: 56.6 KB
  • 大小: 49.5 KB
  • 大小: 49.7 KB
  • 大小: 82.8 KB
  • 大小: 80.1 KB
  • 大小: 81.5 KB
  • 大小: 58.2 KB
  • 大小: 58.9 KB
2
0
分享到:
评论
2 楼 chen4w 2013-01-05  
yanhui.qi 写道
在不?帅哥? 为什么我设置完之后录制不了脚本? 求知道啊。。。 ~~~

注意如果Web应用在本机的话,不要直接用localhost访问,否则浏览器可能忽略代理设置,直接向web应用请求
1 楼 yanhui.qi 2012-12-19  
在不?帅哥? 为什么我设置完之后录制不了脚本? 求知道啊。。。 ~~~

相关推荐

    JMeter测试WebSocket Security

    Apache JMeter是开源的性能测试工具,主要用于测试Web应用的负载和压力。在JMeter 3.2版本中,已经支持了WebSocket的负载测试。通过这个工具,我们可以模拟大量用户同时连接到WebSocket服务器,从而检测服务器在高...

    Jmeter安装包及安装步骤

    Apache JMeter是一款强大的开源性能测试工具,主要用于模拟多种并发用户执行不同的操作,以此来测试Web应用服务器的性能和稳定性。它的可扩展性、灵活性以及易用性使其在软件测试领域备受青睐。本教程将详细介绍...

    jmeter中进行selenium性能测试的lib包

    在使用这个lib包进行性能测试时,有几个关键知识点需要注意: 1. **JMeter与Selenium的集成**:JMeter不内置支持Selenium,因此需要通过添加额外的库来实现。这个lib包提供了这种集成,使得用户可以通过JMeter的JSR...

    apache-jmeter-5.4.3,接口压测工具jmeter

    它最初设计用来测试Web应用,但随着时间的发展,JMeter的功能已经扩展到支持各种类型的接口测试,包括HTTP、FTP、TCP、JDBC等,使其成为了一款多用途的性能测试工具。 JMeter的工作原理是模拟多个并发用户执行特定...

    jmeter-plugins-manager-1.6.7z

    6. **社区支持**:作为开源项目,JMeter Plugins Manager拥有活跃的开发者社区,用户可以在其中找到丰富的资源和解决方案,遇到问题时也能得到及时的帮助。 在压缩包文件"jmeter-plugins-manager-1.6.7z"中,包含的...

    jmeter

    对于JMeter测试,它可能会介绍测试计划的目的、如何运行测试、预期的结果以及可能遇到的问题和解决方案。 3. build.xml:这是一个Ant构建文件,Ant是Java的一个构建工具。虽然JMeter自身不需要Ant来运行,但此文件...

    jmeter2.9和4.0

    JMeter是Apache组织开发的一款强大的性能测试工具,主要用于对Web应用程序进行压力测试和负载测试。在本主题中,我们关注的是JMeter的两个不同版本——2.9和4.0,这两个版本适用于不同的Java Development Kit (JDK) ...

    jmeter初步使用

    JMeter是一款开源的压力测试工具,主要用于对各种静态或动态资源(例如静态文件、Web应用程序等)进行性能测试。它能够模拟大量的用户并发访问服务器,从而帮助我们评估系统的负载能力和响应时间。JMeter支持多种...

    jmeter工具插件资源管理器.zip

    这对于企业级的JMeter测试环境尤其有用,可以确保团队使用的是经过安全审核和定制的插件。 总的来说,JMeter Tools Plugin Manager是一个实用的工具,它极大地简化了JMeter插件的管理和维护,使得测试人员可以更...

    Jmeter训练营文档.pdf

    JMeter是一款由Apache软件基金会开发的100%纯Java桌面应用程序,它是一个开源的性能测试工具,专门用于测试和衡量各种服务的性能。JMeter通过模拟多个用户执行并发请求,来测试服务器、网络或对象的性能。这款工具...

    jmeter3.0安装包附带安装教程

    Apache JMeter是一款开源的、Java开发的压力测试工具,广泛应用于性能测试和负载测试,适用于Web应用、FTP服务器、SMTP服务器等多种协议的测试。在JMeter3.0版本中,它提供了丰富的功能,包括模拟大量用户并发访问、...

    jmeter-report.rar

    用户可以通过导入这个模板来快速设置自己的JMeter测试计划,生成符合需求的中文报告。 在使用这个汉化包时,需要注意以下几点: 1. **版本兼容性**:确保你的JMeter版本与汉化包兼容。如果JMeter版本过低或过高,...

    web测试内容 测试种类 测试要点

    Web测试是软件开发过程中不可或缺的一环,其主要目的是确保Web应用程序的稳定性和可靠性,为用户提供顺畅的交互体验。本文档将详细阐述Web测试的关键内容、测试种类以及测试要点,帮助测试人员全面理解Web测试的各个...

    Jmeter JDBC请求常见问题解决方案

    Jmeter 是一种功能强大的性能测试工具,经常用于测试Web应用程序的性能。然而,在使用Jmeter进行JDBC请求时,经常会遇到一些常见的问题。下面我们将讲解Jmeter JDBC请求常见问题解决方案。 时区设置问题 Jmeter中...

    Jmeter WebSocket

    Apache JMeter是一款开源的Java应用程序,设计用来负载测试和性能评估,可以模拟多个用户并发执行各种操作,非常适合测试Web应用的性能和稳定性。 JMeter原生并不支持WebSocket协议的测试,但通过扩展插件机制,...

    apache-jmeter-5.4.1.zip

    Apache JMeter是一款强大的开源性能测试工具,主要用于模拟大量并发用户对Web应用进行负载和压力测试。在"apache-jmeter-5.4.1.zip"这个压缩包中,包含了JMeter的5.4.1版本,这是一个稳定且功能丰富的版本,支持多种...

    性能测试最佳实践之JMeter

    为了确保测试的有效性和准确性,以下几个关键知识点至关重要: 1. **保持JMeter版本更新**:始终使用最新版本的JMeter,因为新版本通常包含性能提升、功能增强和错误修复。定期查看变更记录,以便了解新增特性。 2...

Global site tag (gtag.js) - Google Analytics