JMeter性能测试基础 (4)-使用JMeter录制测试脚本

在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制。

例如,对“百度翻译”进行压力测试,在使用中文输入法的情况下,我们输入“测试”两个字,在实际使用中我们可以看到,我们的实际输入是依次输入 [ceshi 测试] 这样一个过程,而baidu翻译默认对用户的每一次字符输入均发送了请求,实时获取翻译数据。

压力测试过程中,显然不能 只对最后的“测试”字符串进行测试。这时候就需要将[ceshi 测试]中的每次输入均作为压测的一个请求。下面对这一过程进行录制。

1.打开JMeter,点击菜单栏[templates]模版按钮,选择[Recording]模版,点击[Create]创建JMeter录制环境

2.查看录制配置结构,包含有1个TestPlan和一个WorkBench。其中的关键部件为WorkBench下的HTTP(S) Test Script Recorder,该部件是一个HTTP代理服务器,具体配置见图

HTTP代理服务器将JMeter设置为一个代理server,端口为8888。其中包含模式为代理服务器将采集的url类型,排除模式为代理服务器不会进行采集的url类型。当包含模式为空时,将默认采集排除模式之外的所有url。

3.点击[启动]按钮,启动JMeter代理

4.配置浏览器代理,设置代理地址为 localhost:8888,开始进行录制

1)打开fanyi.baidu.com
2) 依次输入 [ceshi 测试]
3)点击[翻译]按钮

5.点击JMeter代理服务器的[停止]按钮,停止脚本录制。

6.在JMeter中打开Recording Controller,观察录制的请求,可以看到,对于参数为 c\ce\ces\cesh\ceshi\测试 的每次请求,均包含在脚本之中,符合实际的输入情况。

7.配置ThreadGroup,进行压测,在监听器中获取测试结果