JMETER 使用基础
JMETER是一个不错的开源性能测试工具,使用比较简单,同时功能不叫强大,对于web或者web service的测试来说,jmeter主要是构建用户的HTTP请来模拟用户操作,一下是一般Jmeter的测试流程
- 录制请求
- 创建线程组
- 创建测试步骤
- 设置同步点
- 参数化
- 设置监控报告
Jmeter 录制请求
- 设置Chrome的代理服务器到localhost:8080
- 开始Chrome录制请求
- https请求处理
这里面其实很简单,唯一需要提一下的是如何处理https请求,有两种方法:
- 导入SSL认证
- 手动添加https的请求
具体如下图所示:
-
先下载Jmeter,然后运行JMETER, 选中工作台,右键添加非测试元件-》Http 代理服务器
-
修改Chrome的代理服务器到localhost:8080,端口号和在jmeter 的代理服务器设置相同
-
启动JMETER HTTP server
-
打开Chrome就可以录制请求了,进行几个请求之后,查看JMETER就可以看到工作台下面有不少请求了:
创建JMETER测试线程组
以上只是录制请求,JMETER的线程组才是测试过程中需要的,所以先添加线程组:
接下来的步骤是:
- 从录制请求中,选择需要测试的请求,放到线程组中,顺序需要和测试顺序一致(这个比较简单,只要移动请求到线程组就可以了,后面就不做介绍了)
- 手动添加https请求
- 添加HTTP cookie管理器
- 参数化测试
- 设置请求定时器
- 设置监听器
- 设置线程组运行线程数,和运行方式
手动添加https请求
由于https的请求在录制过程中可能不被录制,这里暂时只讲如何手动添加https请求,以下是步骤:
- 右键选择线程组,添加Sampler(采样器)中的HTTP请求
- 填写HTTPS请求的相关内容,如果手动添加HTTP请求,其实是和HTTPS类似的,一般不同的是协议和端口
- 给https请求添加头(header)设置(不是必须的步骤),右键选择请求,添加配置管理器-》http信息头管理器 http 头的设置可以参考其他请求,添加只要点击添加按钮,然后输入头名和头值
至此手动添加请求就完成了.
添加Http Cookie 管理器
由于在一系列的请求中,有些认证是通过cookie来实现的,所以添加http cookie管理器的目的就是让所有的请求共享cookie,这样就解决了如何在不同请求中传递cookie的问题,添加请求其实很方便: 右键选择线程组,添加配置管理元件-》HTTP cookie管理器就可以了,没有什么其他的特殊需求,不需要做任何的修改 ![img]
参数化测试
这个例子是登陆,所以需要参数化登陆请求,登陆请求中有两个参数,1个是用户名,1个是密码,以下是添加步骤:
- 右键线程组,添加配置管理元件-》CSV Data元件
- 设置CSV Data元件如下图:
- 根据CSV data的设置,创建测试数据文件,这里例子是用,间隔参数,同时参数为两个,那么数据文件中的一行数据就是: XXX,XXX
- 修改需要参数化的请求的值,值的表达式是:{变量名},这个例子中就是{password}
设置请求定时器
定时器的设置有不少策略,最简单的就是固定定时器: 右键选择请求,添加-》定时器=>固定定时器, 也就是每个线程延迟一定时间发送请求
还有一种是Synchronizing Timer,这个定时器是说有多少个线程已经准备就绪就可以同时发送请求了
也可以不设定时器,这样请求就随时发,或者选择其他的定时器,实际使用过程中,用户一定都会有点操作时间的,所以不设定时器造成的压力肯定会大点
设置监听器
监听器的作用主要是监听发送的请求,可以看到有什么请求是失败的,然后可以了解一些关于很多请求下的的响应时间,请求总数等等,可以认为就是一个测试结果
常用的监听器可以选择: - 查看结果树,从这里面可以看到请求实际的请求数据和返回数据 - Summary Report, 这里可以了解此次测试的总体情况,如响应时间,错误率,最慢响应时间等等 - 聚合报告,这里可以了解此次测试的总体情况,如响应时间,错误率,最慢响应时间等等
添加都是通过右键线程组,添加监听器,然后选择以上两个监听器: 结果树:SummaryReport:
聚合报告:
设置线程组运行线程数,和运行方式
线程组运行的线程数,可以根据测试方案制定,一个线程可以近似的理解为一个用户的请求,这里的线程数和多少个用户在使用还是有区别的,300个线程,不代表300个实际用户,一般会比300个用户造成的压力大
运行测试,然后查看结果
运行Jmeter然后查看,当JMETE运行完之后就统计聚合报告里面的数据
然后可以做个报表展示一下(这个报表只是演示作用)