Jmeter:使用代理录制脚本

Jmeter中有两种方法可以录制脚本,但笔者一向不喜欢把简单的事情复杂化(安装badbody麻烦,就不介绍这种方法了),那么自然就选择通过Jmeter代理来录制脚本。下面讲讲具体的脚本录制步骤:

1、打开Jmeter,选择【测试计划】,鼠标右击,依次【添加】->【Treads(Users)】->【线程组】,添加一个线程组。

添加线程组

2、选择【工作台】,鼠标右击,依次【添加】->【非测试元件】->【HTTP代理服务器】,即可以添加上HTTP代理服务器。

添加代理服务器

3、对“HTTP代理服务器”进行设置,分别设置端口(如:8899),目标控制器(如:测试计划->线程组),以及分组(如:Put each group in a new transaction controller),其他为默认值。

代理服务器设置

介绍下各设置项:

端口:代理服务器的端口,默认为8888,可自行修改,但不要与其它应用端口冲突。

目标控制器:录制的脚本存放位置,通常都选择为测试计划中的线程组。

代理服务器:对请求进行分组。将一批请求汇总分组,可以把url请求理解为组。下面分别说明各选项:

1)不对样本分组 :所有请求全部罗列。
2)在组间添加分隔 :加入一个虚拟的以分割线命名的动作,运行同“不对样本分组”,无实际意义。
3)每个组放入一个新的控制器 :执行时按控制器输出结果。
4)只存储每个组的第一个样本 :对于一次url请求,实际很多次http请求的情况,这里只存储第一个请求。这个选项很实用,常常我们是不关心后面的那些请求的。
5)Put each group in a new transaction controller :将每个组置于新事务控制器中,通常我们都选择该项。

记录HTTP信息头:录制request的head信息。
HTTP Sampler settings:http请求的实现包版本以及具体协议类型。
Content-type filter:请求类型过滤器 1)Include 包含xx  2)Exclude 不包含xx
包含模式:通过过滤只录制指定的内容,如正则表达式:.*.php 。
排除模式:过滤掉我们不要录制的内容,如:.*.gif 。

4、在HTTP代理服务器中点击启动。

可能遇到的问题:当启动时出现提示“Root CA certificate:ApacheJMeterTemporaryRootCA created in JMeter bin directory”

解决办法:在【Internet选项】->【内容】->【证书】中,点击导入“Jmeter安装目录/bin下的证书 ApacheJMeterTemporaryRootCA.crt”即可,然后再重新启动HTTP代理服务器。如果导入证书后,仍然提示,可以不用理会了。这里是提示我们要加上对应的证书,否则后面不能进行脚本录制。

5、启动HTTP代理服务器后,打开浏览器(IE,Firefox,Chrome等),添加代理,地址填写本机ip或localhost,端口填写上面设置的代理端口(8899),在浏览器中进行正常网页浏览,即可录制下对应的http请求。IE上的设置:

IE代理设置
6、当录制完后,停止HTTP代理服务器即可。这样,一个脚本就录制成功了。可以进行断言,参数化了。具体的断言、参数化、设置监听器等设置,可以查看文章《使用Jemeter对HTTP接口压测》



留言