导读
本节主要包括以下内容:
1. JMeter工作区介绍
2. JMeter HTTP协议录制
1、JMeter工作区介绍
启动JMeter后,会打开如下窗口:
注:笔者在写本系列博客的时候,使用JMeter的最新版本4.0
(1)区域1是菜单栏和工具栏
菜单栏
JMeter工具的菜单栏包括File、Edit、Search、Options等菜单,和其它Windows工具的菜单栏类似,比如File里面也包括新建、打开、另存为等菜单项;具体的内容就需要大家自行查看了;工具栏
- 新建测试计划
- 从模板创建测试计划
- 选择已经存在的测试计划并打开
- 保存测试计划
- 剪切选定的元件
- 复制选定的元件
- 粘贴元件
- 展开目录树
- 收起目录树
- 切换元件的状态(禁用或启用)
- 启动测试
- 启动测试并且忽略断点
- 停止测试(等待当前线程执行完)
- 停止测试(立即停止,直接杀死进程)
- 清除数据(单个)
- 清除数据(所有),比如点击后,会清除查看结果树中的所有数据
- 查找
- 清除查找
- 函数助手对话框,这些函数可以帮我们做参数化
- 帮助文档
- 测试运行时间
- 显示测试中的错误数,点击可以打开日志,再次点击关闭
- 当前运行进程数/总线程数
注:大家不用死记硬背,当鼠标悬浮在上面的时候会弹出提示。
(2)区域2是目录树
区域2是一个目录树,根节点是一个测试计划,我们可以在根节点下面增加多层元件;
(3)区域3是测试计划编辑区
如果目录树选择了测试计划,则右侧显示测试计划编辑区;如果目录树选择了线程组,则右侧显示线程组编辑区;
2、HTTP协议录制
由于最常见的协议就是HTTP协议,且其不太复杂,因此我们从这里开始:
(1)通过JMeter代理录制,由于操作较复杂,所以不推荐
(2)使用Badboy进行录制
- 下载安装Badbody,官网地址:http://www.badboy.com.au/
- 打开Badbody,注意启动Badbody后,默认处于录制状态,如下图所示
- 在地址栏输入要访问的URL,点击转到,这里我们以360搜索为例:https://www.so.com/
如下图所示:
- 等待步骤执行完成(页面请求结束),请求箭头会由初始的红色变为蓝色,如下图所示:
- 接下来,我们在搜索框中输入“风暴之灵”,并回车,等待请求完成,点击结束录制
- 点击回放按钮,会再次发送录制到的两个请求,可以看到请求回放成功
- 点击“File”|“Export to JMeter”,将其保存为后缀为jmx的文件,该文件可以导入到JMeter中
- 打开JMeter,导入上步中的jmx文件,如下图所示
- 添加一个查看结果树(View Results Tree),点击回放按钮,然后查看结果,如下图:
上面就完成了一个最简单的流程,通过Badbody录制请求,然后导出JMeter支持的文件格式,再导入到JMeter中做进一步处理。
3、换搜狗重复上面的步骤
(1)让我们仿照步骤2中的动作,录制搜狗搜索的请求,录制结果如下图所示:
回放请求,虽然请求重新发送成功,但是搜索的内容并不是之前的“风暴之灵”,如下图所示:
有乱码,应该就是字符编码的问题,同样的Badbody工具,只是不同的网站就出现问题,无语。
乱码问题解决方案:将上面录制到的ie=utf8,改成ie=gbk,再重新回放就不会有问题了
我们将请求导入到JMeter中看看
变成了5个请求,添加查看结果树,然后回放脚本,中间3个回放失败,查看一下这5个请求,第一个对应打开搜狗,第5个对应搜索“风暴之灵”脚本,中间3个删除即可。
4、换百度重复上面的步骤
百度搜索的请求,结果如下图所示:
第一个问题:录制的搜索关键字请求并未变成蓝色
当我们回放的时候,搜索步骤的请求的确没有回放成功,原因不清楚,有知道的小伙伴可以回复我一下,谢谢!
第二个问题:
为什么搜索一个动作,录制到了多个请求?
如果你鼠标点击过百度搜索框可能还会录到一个https://www.baidu.com/his的请求,如下图所示
我们暂时撇开Badbody,通过浏览器分别访问下百度和360搜索,然后手动在二者搜索框输入文字看看,虽然都是搜索,但是百度会自动跳转到搜索结果页,而360会在你回车后才跳转到搜索结果列表页,这是表象,背后就是对应的请求,好明白这个原因后,我们再反过头看看Badbody,重新录制百度搜索请求,对应打开百度页,和搜索关键字两个步骤的请求实际只有两个,所以,为了方便我们后续调试脚本,直接将多余请求删掉即可。
(2)第三个问题:中文乱码问题
和搜狗遇到一样的问题,但是明明都有ie=utf-8,也就是说都使用的utf-8编码,不知道为什么会出现中文乱码
本节先到这里,后续我们拿个系统来学习JMeter工具