技术开发 频道

利用JMeter进行压力测试

  【IT168 技术文档】压力测试以软件响应速度为测试目标,尤其是在较短时间内大量并发用户的同时访问时,软件的性能和抗压能力。

  JMeter是一款开源的压力测试工具,目前最新Release版本是2.3.4,它不仅可以测试Web服务器,还可以测试数据库、JMS、Web Service、LDAP、JUNIT 等多种对象的测试能力。下载地址:http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi

  下面简单介绍一下JMeter。

  测试计划是测试的起点,其他所有组件的容器。

  线程组是用来模拟用户并发的组件。JMeter的每个任务都是用线程来处理的。线程组主要有三个属性,线程数、Ramp-up Period和循环次数。线程数就是并发的数量,Ramp-up Period表示在多长时间内创建线程数中定义的所有线程。

  逻辑控制器可以组织取样器,做出复杂的测试用的请求。

  配置元件中主要配置取样器中所需要的配置。

  定时器设置请求间的时间间隔。

  前置处理器一般用来修改请求(Request)。

  Sampler(取样器),主要的执行组件。每一个取样器都可以被监听器监听,并生成测试结果。

  后置处理器一般用来出来返回的数据(Response)。

  断言,判断取样器是否正常工作。

  监听器,收集整理测试结果,并可以指定格式生成XML、CSV等形式的文件。

  工作台中可以添加非测试元件,其中一个最重要的就是HTTP代理服务器。

  HTTP代理服务器可以用来录制测试脚本。将浏览器的代理服务器设置为127.0.0.1:8080,然后启动JMeter的HTTP代理服务器,就可以录制在浏览器中进行的操作。HTTP代理服务器可以设置包含模式和排除模式,我一般用排除模式来排除一些CSS、JS、GIF、PNG之类的。

  JMeter的基本元件就是这样,这些元件具体怎么运用请继续看下文。

  JMeter的中文资料不是很多,我Google了一下,发现基本上没有介绍如何一步步使用的资料。我这里就先整理一下。

  大概就是以下几个方面:

  录制脚本

  使用用户自定义参数

  使用控制器

  使用定时器

  使用前置后置处理器

  使用监听器

  我也只是入门级别,所以写出来的东西可能比较简单,适合新手参考使用。

  这次就介绍使用HTTP代理服务器进行脚本的录制。

  JMeter可以录制脚本,也可使用别的工具,如Badboy录制适合JMeter使用的脚本,我们默认使用JMeter自带的功能。

  打开JMeter,在工作台节点点击右键,添加 >> 非测试元件 >> HTTP代理服务器,使用默认设置即可。

  然后设置浏览器,把代理服务器设置为127.0.0.1:8080。

  然后启动HTTP代理服务器,以打开Google为例,它生成的脚本如下:

  它把许多JS、CSS、PNG、GIF的路径都录制了进来,而这些对于测试脚本是没有用处的,我们可以在HTTP代理服务器的排除模式设置,不记录这些。

  设置完排除模式,重新启动HTTP代理服务器,再次打开Google的首页,发现录制完的脚本简洁多了。

  以搜索“JMeter”为例,录制完的脚本是这样的:

  在一些用到JS很多的网页中,JS的动作也会被录制进来,像其中的/complete/search是输入提示框JS的动作,可以删掉的。

  JMeter的脚本录制就是这样,另外还可以利用别的工具,例如Badboy,它的使用更加简单,具体可以参考官方网站http://www.badboy.com.au/.

  最后,在设置HTTP代理服务器的时候,有两个地方需要注意:

  要确认8080端口是否有冲突,被别的程序,例如Web服务器占用。如果有冲突,可以更改为别的没有冲突的端口

  JMeter HTTP代理服务器的端口和浏览器设置的端口要一致.

0
相关文章