网站大量收购独家精品文档,联系QQ:2885784924

(使用JMeter做压力测试.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(使用JMeter做压力测试

使用JMeter做压力测试-对数据库博客分类:?Java综合软件测试数据结构SQLAIXJDBC最早发表时间:2009-04-06?  作为一名开发人员,大多情况下都会认真的做好功能测试,但是却常常忽略了软件开发之后的压力测试,尤其是在面向大量用户同时使用的Web应用系统的开发过程,压力测试往往是不够充分的。近期我在一个求职招聘型的网站项目中就对压力测试的重要性体会颇深。  在项目中,我负责开发职位信息的搜索部分,但是由于缺乏压力测试,仓促将搜素部分的功能提交到生产环境,结果当并发量稍稍到达一定程度时,数据库系统便已经不堪重负。无奈之下向网上资源查询解决方法,其中一个就是对现有的应用做足够到位的压力测试。  压力测试有着很丰富的内容,而这里,我只针对应用中所遇到的问题以及解决方法做一个简单的描述,希望对以后遇到同样问题的朋友能够起到些许帮助作用。  我自己做的例子使用的环境是:    测试工具:JMeter 2.3.1    数据库:Oracle 10G    其他环境:JDK 1.6.0_05(也可以使用JDK1.4及以上版本)  1.创建好的JMeter测试计划树形结构图如下:  2.在刚打开JMeter的时候,默认会存在两个节点,一个是Test Plan,点击这个节点,在右边的属性页面中,命名为我们的数据库测试计划  在属性页的最下面,我们看到设置jar包所在路径的选项,默认存在一个选项E:\software\develop\testunit\jMeter\jakarta-jmeter-2.3.1\lib,这个是我的机器中JMeter的lib目录,在这个例子中,Oracle的jdbc驱动也已经拷贝到该目录下。  3.新增一个Thread Group,重命名为使用变化的SQL来做数据库压力测试。其中,Number of Threads表示的是JMeter会同时创建多少个线程来进行压力测试,对于一个网站而言,也就是模拟一次存在多少个用户来访问该网站;而Ramp-Up Period(in seconds)表示JMeter每个多少秒发动并发;Loop Count则是指配置好的并发情形发生多少次。  4.在Thead Group下创建一个User Defined Variables,即用户自定义变量,重命名为我们定义的动态语句部分,这里我们使用它来生成动态SQL语句,让用户每次访问数据库的SQL语句都不一样,这样减少Oracle数据库对相同SQL语句的缓存对测试结果所带来的影响。?  变量定义的完整内容如下:Name Valuestr${__split(D610 or 笔记本|D610 or D620|D620|服务器,keyword,|)}many_sqlp_name like %D610% or p_name like %AIX%| p_name like %笔记本% or p_name like %D610%|p_name like %D610%| p_name like %AIX%smt${__split(${many_sql},smt,|)}  注:${__split(...)} 是JMeter中自带的拆分字符串为数组的函数,可以通过JMeter工具栏Options-Function Helper Dialog来打开函数代码辅助工具生成我们所需的函数调用。  另外有个需要注意的问题是:在${__split(...)} 中,如果拆分字符串中的内容包含有符号,,一定得用符号\进行转义,否则可能被JMeter误认为是参数分隔符,会导致无法正确生成字符串数组。  5.接下来是配置JDBC连接设置?  6.创建一个具体的JDBC请求?  Query Type中选择的是预编译语句;  SQL语句当中,动态内容的代码行是and contains(p.p_name, ?) 0,这里的?就是预编译语句中的动态参数,在属性页下面的Parameter Values和Parameter types来指定,由于预编译语句在Java教程已有很多讲解,这里不再赘述。  注:这里有一个JMeter的函数__V...没有提到,将在后面说明另外一个JDBC调用测试的时候进行补充。  7.创建三个监听器,可以从三个不同的层面来观察响应结果  执行一下测试计划,我们来看看三个监听器所返回的结果是怎样的。?以上是表格方式查看响应结果的情况,可以看到通过表格可以查看某个范围内的响应时间和响应状态是否正常;???以上三幅截图则是来自树形监听器,树形监听器在几种监听器中应该是最细致的,可以查看响应状态、时间、以及执行的SQL语句,乃至返回的结果均能进行验证。至于上面的图形监听器,可以宏观的观察SQL语句在压力测试下响应的平滑度,并且有一定的统计信息,能够观察平均响应

文档评论(0)

1983xuesheng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档