一、BadBoy录制
过程:
- New test
- New step
- 录制、暂停按钮
- File-export to Jmeter
注意点:
- 使用BadBoy录制并导出成.jmx的脚步,导入到Jmeter后,需要修改step1的controller
二、Http代理服务器录制(适用于APP)
- Jmeter自带http proxy server,支持HTTP协议脚本录制
- 第一步:启动Jmeter后,右键点击测试计划(Test Plan)添加 - Threads - Threads Group(线程组)
- 第二步:Test Plan - 添加 - 非测试元件 - HTTP代理服务器(HTTP Proxy Server)
- 第三步:设置HTTP代理服务器
HTTP代理服务器的细节设置
名称:代理服务器的名字,默认即可
端口:代理服务器的端口,默认是8888,如果被占用,可以换一个未被使用的端口
查看本机当前被使用的端口:netstat -an
目标控制器:录制的脚本存放的位置,这里选择之前创建好的线程组
分组:对于录制的samplers是否分组,怎么控制分组
记录HTTP信息头:是否自动记录并生成http header信息
添加断言:是否添加空白的断言步骤
REgex matching:替换变量的时候是否使用正则表达式
HTTP Sampler settings:指定http sampler的设置
Type:指定请求的模拟方式,默认是java的,可以选择httpclient4
自动重定向和跟随重定向:
例如:A重定向到B,自动重定向在查看结果树中,只能看到B的调用及响应,跟随重定向在查看结果树种,既能看到A的调用及响应,也能看到B的调用及响应
UseKeppAlive:在头文件里面添加KeepAlive属性
从HTML文件中获取所有内涵的资源:获取除了html页面外所有内涵的资源,包括图片等。一般不勾选。
- Content-type filter:对Content-type进行过滤,多个类型之间使用逗号分隔。
比如,只想录制到text/html和text/xml格式的content,则在include里面输入“text/html,text/xml” - 包含/排除模式:对请求的过滤,采用正则表达式的规则进行过滤
例如,录制下来有很多css,js,png等请求内容,想要过滤掉,可以在排除模式中添加:.*\.css.*
- 启动:启动HTTP代理服务器
当弹出CA证书时,点击“确定”即可 - 停止:停止HTTP代理服务器
- 重启:重启HTTP代理服务器
- 第四步:浏览器设置
选中代理服务器:为LAN使用代理服务器
配置地址为localhost或者127.0.0.1,端口为8888
- 第五步:在浏览器中进行相应的业务操作,就可以看到在JMeter的线程组下新增了很多请求
使用代理模式,最好添加上cookie管理器。HTTP Cookie Manager可以自动存储服务器发送给客户端的所有Cookie,并在发送请求时附加上合适的Cookie。
三、JMeter参数化
三种参数化方式
- 通过前置处理器参数化
- 通过CSV Data Set Config参数化
- 借助函数助手方式采用随机参数化
1.通过前置处理器参数化(发送请求之前对参数进行修改)
示例:论坛多用户登录
步骤:
- Badboy录制论坛登录的脚本
- 导入Jmeter
- 添加-前置处理器-用户参数
- 设置参数:添加变量和用户
- 在脚本中用参数替代文本
- 设置循环次数
- 添加“察看结果树”并运行
2.通过CSV Data Set Config参数化
测试数据和测试框架相分离,后期好维护
示例:论坛多用户登录
步骤:
①Badboy录制论坛登录的脚本
②导入Jmeter
③制作含有三组登录名和密码的txt文件
④添加-配置元件-CSV Data Set config
⑤设置参数:添加变量和用户
⑥在脚本中用参数替代文本
⑦设置循环次数
⑧添加“察看结果树”并运行
3.借助函数助手方式采用随机参数化
冒烟测试、压力测试
示例:在论坛中使用随机内容发帖
步骤:
①Badboy录制论坛发帖的脚本
②导入Jmeter
③选项-函数助手对话框
④设置RandomString
⑤生成函数字符串
⑥把论坛发帖的title替换成函数字符串
⑦设置循环次数
⑧添加“察看结果树”并运行