JMeter压力测试技术-脚本录制

上一节说到的HttpRequest 可以测试一下对Http请求的压力测试,不过这种方法是有局限,如果设置到登录验证的url,由于url中或者参数中携带了动态的用户SessionID,所以以上的方案就无法实现,这是可以通过脚本录制的方法,也就是录制下用户对网站进行的一系列操作,然后重复播放这段操作,就相当于N多个人进行操作。

Jmeter支持第三方录制方式和代理录制方式。

第三方录制方式Badboy

Badboy是一款不错web自动化测试工具,利用它来录制脚本,并且录制的脚本可以直接保存为JMeter文件来使用。我无疑给我们带来了很大我方便。

安装Badboy

下载地址 http://badboy.com.au/download/index,按网页提示输入name/email/company等后下载标识为recommended的那个版本。这是一个可执行程序,下载之后双击,根据安装向导安装。

我的环境

  • Badboy version 2.1.1

  • Apache JMeter-2.13 (需要JDK环境来运行)

Badboy录制

打开人badboy工具点击工栏目上的红色圆形按钮,在地址栏目中输入被测试项目的地址。

录制完成后,点击工具栏旁边黑色按钮,结束录制。

选择“文件”–àExport to Jmeter…

JMeter导入录制结果

打开Jmeter工具,选择“文件”–>“打开”选择刚才保存的文件(.jmx类型),将文件导入进来了。

通过JMeter录制脚本

脚本录制

脚本录制,JMeter启用WEB代理,浏览器把代理上网设置为JMeter所在的IP地址,自己电脑就是127.0.0.1代理端口默认8080。至于浏览器修改代理上网服务器,不做截图。

Jmeter运行在目录 \apache-jmeter-2.10\bin下jmeter.dat文件,双击打开进入Jmeter界面

Jmeter界面

建立测试计划,录制阶段不需要更改任何配置。名称可以自己改

Cookie管理器

添加一个Cookie管理器,该次测试是需要登陆操作,如果没有Cookie管理器,登陆后的HTTP请求,在脚本运行的时候,就不会带Cookie。应该知道后果吧,就是登陆成功后的请求提示你未登陆。添加就行不需要配置。

在工作台启用HTTP代理服务器

配置目标控制器:选择刚刚建立的测试计划, Type选择HttpClient4。然后启动。

浏览器开启代理服务

JMeter官方提供了配置Firefox,Chrome,IE,Opera等浏览器的证书:

Installing the certificate in Firefox

  • Choose the following options:
  • Tools / Options
  • Advanced / Certificates
  • View Certificates
  • Authorities
  • Import …
  • Browse to the JMeter launch directory, and click on the file ApacheJMeterTemporaryRootCA.crt, press Open
  • Click View and check that the certificate details agree with the ones displayed by the JMeter Test Script Recorder
  • If OK, select “Trust this CA to identify web sites”, and press OK
  • Close dialogs by pressing OK as necessary

Installing the certificate in Chrome or Internet Explorer

Both Chrome and Internet Explorer use the same trust store for certificates.

  • Browse to the JMeter launch directory, and click on the file ApacheJMeterTemporaryRootCA.crt, and open it
  • Click on the “Details” tab and check that the certificate details agree with the ones displayed by the JMeter Test Script Recorder
  • If OK, go back to the “General” tab, and click on “Install Certificate …” and follow the Wizard prompts

Installing the certificate in Opera

  • Tools / Preferences / Advanced / Security
  • Manage Certificates…
  • Select “Intermediate” tab, click “Import…”
  • Browse to the JMeter launch directory, and click on the file ApacheJMeterTemporaryRootCA.usr, and open it

进入脚本录制

进入脚本录制,按照预设的测试脚本过程,操作一次ECHSOP。

登陆ECSHOP

进入用户管理中心,打开评论页面

退出

筛选

以上操作后,录制已经完成。录制的页面中,可能有其他的访问在里面,可以将不需要的页面删除

里面浏览器发起的请求也被录制下来,这种就可以删除。

将干扰测试的页面删除完后保存

测试验证脚本脚本

以上两种方法都可以录制脚本,录制完成后,运行一次。运行之前添加一个监听器,用于查看脚本运行情况,建议用观察结果树监听器,可以看到来回的HTTP交互。

运行

运行完后通过结果树查看脚本运行结果,中间栏为脚本运行请求过的页面,都是绿色表示页面请求和响应都正常。再查看下关键页面的请求和响应参数,

登陆的请求正常,账号songmin密码123456 正常提交,看下响应数据

响应数据,看到有登陆成功的关键字。OK 脚本没问题,其他页面不去验证了,测试时,根据测试流程验证关键的几个页面请求和响应数据,是否和正常操作对应。

开始测试

添加报表

报表格式很多种,根据自己情况使用。不清楚的话,可以都添加运行一次后,看那个报表更合适

编辑测试压力数据

300并发,10秒中300并发准备完成,循环次数永远,持续时间300秒

运行脚本

300线程数已经完成启动

查看报表

图形报表

聚合报表,看到每个页面的响应时间,错误率,请求次数等。

本站总访问量