目录
JMeter(一):基础概念
JMeter(二):配置元件
JMeter(三):变量参数化
JMeter(四):监听器
本文提纲:3种脚本录制方法
一:使用原生的HTTP代理服务器
二:使用第三方软件badboy录制
三:通过Fiddler抓包导出Jmeter脚本
四:通过抓包工具(Fiddler、F12、FireBug都可以)手写脚本
方法一:使用原生的HTTP代理服务器
1、创建模板
通过菜单:文件 → Templates… → Recording →Create
工作台---非测试元件---HTTP代理服务器,默认端口8080,可自行修改,但不要与其他应用端口冲突
目标控制器:录制的脚本存放的位置,可选择项为测试计划中的线程组(根据实际来选择)
2、设置代理
打开IE/Firefox,不要关闭Jmeter
-
FireFox:点击工具(Tool) → 选项(Internet Options) → 高级(advanced) → NetWork(网络) → 设置(Settings)
输入IP和端口号,勾选上【为所有协议使用相同代理 (Use this proxy server for all protocols)】 - IE:工具 →Internet选项 → 连接 →局域网设置
3、录制脚本
- 打开浏览器,在地址栏输入网址,然后回车
- 在被测网站上点击操作
- 返回Jmeter查看脚本
4、验证脚本
录制完之后,在测试计划之前我们需要对脚本进行验证
先保存测试计划,然后右键Thread Group选择Validate
检查结果树,看请求返回是否都ok
如出差申请页面,根据登录者信息获取部门信息,在请求页签可以看到是通过POST请求传递gonghao参数实现的,返回的请求码为200,响应数据页签显示的是部门信息
查看结果树.png另外我们也可以看到出差列表页的请求参数以及每页显示的行数
请求数据.png方法二:使用第三方软件badboy录制
操作:
1、点击红色按钮,地址栏输入被测地址,录制完成点旁边黑色按钮,结束录制,选择 File---Export to Jmeter
2、打开Jmeter工具,在文件---打开(.jxm类型),不需要的页面可以删掉或者禁用
打开录制脚本.png关于badboy录制脚本时碰到的问题
1、提示脚本错误
解决办法:
(1)直接点击脚本提示“是”即可
(2)IE浏览器,在Internet选项>高级属性>浏览器标签>选中禁止脚本调试
2、版本不一致
解决办法:排查badboy和jmeter版本不匹配,把badboy升级到最新版
3、录制后的脚本,在导入Jmeter后会使线程组的循环次数失效
解决办法:先将循环控制器改成其他任一类型控制器,然后再改回来
PS :badboy脚本里设置好的东西(比如参数化、检查点)是不会带到jmeter里的,只能录制基本的东西,导入到jmeter里还需要重新调试
方法三:通过Fiddler抓包导出Jmeter脚本
1、下载插件, 密码:rthd
将FiddlerExtensions.dll、FiddlerExtensions.pdb 放置到Fiddler的安装目录下的ImportExport里面
2、抓包
3、导出抓包请求为jmx格式,点击File,选择 Export Sessions ,根据需求选择 All Sessions 或者 Selected Sessions,在弹出框的下拉菜单中选择JMeter,然后保存即可
4、在JMeter中打开jmx文件
PS:导出的jmeter脚本是不包含Thread Group的,需要自己创建Thread Group,然后在运行脚本查看结果进行分析
方法四:手写脚本(推荐)
如果是通过Fiddler工具抓包,参数需要特别注意下,因为Fiddler是抓取id的name值,而Jmeter是通过id值的
如图:新增加班单页面的申请人和姓名的id不一样,name相同,按照Fiddler抓到的数据填入Jmeter后,运行查看请求数据发现申请人是空值,后来修改请求申请人姓名的名称再次运行,结果正确
手写脚本.png关于jmeter录制的说明
既然玩jmeter就不要太依赖于录制了,况且jmeter本身对录制的支持不是特别好,还会产生很多无关的请求的数据,导入Jmeter后还需要手工去筛选
如下图通过badboy录制后导入到Jmeter,发现很多参数名称前面都加了0
badboy录制后导入的数据.png下图通过Fiddler工具导出脚本,导入Jmeter后端口和IP显示在一起的,需要人工删除下,不然运行直接失败了
Fiddler导出的脚本建议学会手写请求,基本都是界面操作,程度不难。相反,录制看似简单,其实会给后期的脚本调试增加很多麻烦
网友评论