Web性能测试自动化方案

来源:互联网 发布:苏格兰炸蛋淘宝 编辑:程序博客网 时间:2024/04/28 23:37

常见的性能测试是这样的:

有人开发了百度知道,然后,想知道单机的最大并发处理量是多少。这就需要性能测试了。然后,我们常见的性能测试方法是:

1.apache的ab;

2.JMeter;

3.loadrunner;

4.自己开发的工具。


先大致的评价下上面的几个方法:1.apache的ab。这东西,用起来很简单,就一个命令。缺点就是,可定制差,使用不是很方便。2.JMeter真的很强大,我们的性能测试自动化,就是使用JMeter实现的;3.loadrunner,这东西要收费的,功能很强大,但是自动化方面,不清楚。直接入正题,看看怎么实现性能测试自动化。

性能测试是很耗费时间、人力的事情,每次测试都需要有人来值守。在这里,提供一个JMeter和JMeter plugins,一起配合使用达到的性能测试自动化。


为了大家的学习方便,我把我的JMeter打包起来,欢迎大家下载使用。

一、什么是JMeter?

JMeter是开源的性能测试工具,能够完成很多的测试任务。详细的可以参考:http://jmeter.apache.org。

1.1 安装

先安装JMeter plugins,按照这里的步骤来安装。https://code.google.com/p/jmeter-plugins/wiki/PluginInstall

1.2 编写case

在windows下打开jmeter.bat,就可以看到编辑页面了。如下图:


第二步:右键测试计划,新建线程,配置线程数及循环次数。这里我们配置100*100 =10000次请求。


第三步:在线程上右键,选择add->sampler->Http Request Sampler。然后,配置好服务器地址,端口地址,get或者post的参数。如图:


第四步:在线程组上右键,选择add->Assertions->Response Assertion. 配置断言的参数,这样就可以让Jmeter为我们判断哪些请求是错误的。

第五步:在测试计划上右键,选择add->Timer->Constant Throughput Timer,配置每分钟的流量。这样就可以有一个稳定的压力。这里要注意,在测试计划上右键,而不是在线程组,这样这个timer才会生效。我们要400的压力,就需要400*60 = 24000.然后,下面的计算选择:all active threads.


最后,可以点击运行,查看是否我们需要的压力值,查看地址是否正确。 如果OK,就可以点击保存了,保存为performance.jmx。到这里,我们就完成case的编写了。对于复杂的case,可以添加cookie manager等来支持。


二、在linux上执行

我们可以直接执行,然后查看压力等情况。但是,个人的PC机难免会有很多的限制,压力可能起不上去,而且不方便我们持续集成,这里可以在linux上跑。

         将jmeter的tar.gz包放到机器上,然后配置好java,这里需要java5以上,公司机器的默认java是不符合要求的。

         可以使用如下命令:

                   sh  ./jmeter.sh  -n  –t  performance.jmx  -l  log.jlt

上面的命令,-n是不适用ui界面,也就是在linux下跑,-t是选择指定的测试计划;-l是将生成的结果保存为log.jlt,这也是我们后面提供给hudson的结果文件。

         就可以看到Jmeter已经开始运行了。


三、hudson插件安装

为了分析jmeter的结果,我们需要在hudson上安装一个Hudson Performance Plugin插件,如图:


然后,在job的配置里面,就可以规定我们认为OK的压力值。


四、hudson执行结果


可以看到上图中,有很多直观的数据,让我们对代码的性能有直观的了解。另外,点击Performance Trend,就可以看到更多的数据。比如那些请求是失败的,结果是什么。

至此,完整的压力测试就OK了。


五、后续提升

上面的测试,最多只算是压力测试自动化,而不能成为性能测试自动化。真正的性能测试自动化,应该包含对CPU, IO, Mem等服务器资源的详尽分析。另外,还需要给出其最大的瓶颈是什么,能够承受的极限压力是什么。还需要自动的调节压力,并且在某些情况下,还需要分布式的压力测试。

         所以,后期还会继续研究,如何完成:

         1.服务端CPUIOMem资源监控;

         2.自动压力调节;

         3.分布式压测

         如此,便可以让性能测试完全自动化,并且有一个详尽的报表,能够将人力从手工的性能测试解放出来,提高性能测试的准确度及缩短性能测试的时间,并且可以不用三更半夜的压环境了~
这个就可以查看JMeter plugins的代码,然后,写一个插件,来支持。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 眼睛进东西了弄不出来怎么办 18k金不给换黄金怎么办 我22岁欠了10万怎么办 1岁宝宝又吐又拉怎么办 月经10天了还没干净怎么办 舌头有异味怎么办是有口臭吗 快8个月羊水破了怎么办 25岁欠了50万债怎么办 28岁血压高150低压110怎么办 苹果6的4g网络慢怎么办 一个月染了6次头怎么办 五0二干在衣服上怎么办 刚怀孕见红了肚子不痛怎么办 我有外遇了老婆不离婚怎么办 套了牙套的牙疼怎么办 我鼻子上有很多螨虫和黑头怎么办 鱼刺卡在喉咙怎么办最有效的办法 脚被蚊子咬了很痒怎么办 好压7z密码忘了怎么办 4g卡显示2g网络怎么办 过塑机把纸吞了怎么办 红米1s开不了机怎么办 跟老婆吵架闹的要离婚该怎么办 充了q币没有到账怎么办 9个月宝宝吃了盐怎么办 红米4x开不了机怎么办 鱼身上有红斑像出血了怎么办 草鱼身上有红斑像出血了怎么办 宝宝屁眼红的破皮了怎么办 孩子身上起红疙瘩很痒怎么办 久而不射,但软了怎么办 盆底综合肌力1级怎么办 头发掉的厉害怎么办吃什么好 给蜂蛰了肿了痒怎么办 小米手环2没电了怎么办 小米手环2不亮了怎么办 红米3s无限重启怎么办 乐视手机1s卡顿怎么办 老公出轨了怎么办你会选择离婚吗 c盘和d盘换换了怎么办 晚上2点到3点醒怎么办