上一节说到的HttpRequest 可以测试一下对Http请求的压力测试,不过这种方法是有局限,如果设置到登录验证的url,由于url中或者参数中携带了动态的用户SessionID,所以以上的方案就无法实现,这是可以通过脚本录制的方法,也就是录制下用户对网站进行的一系列操作,然后重复播放这段操作,就相当于N多个人进行操作。
第三方录制方式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线程数已经完成启动
查看报表
图形报表
聚合报表,看到每个页面的响应时间,错误率,请求次数等。