录制脚本
- badboy 录制脚本辅助测试
下载并且安装好 badboy 软件
在badboy中录制操作测试的内容: 保存 file -- > export to jmeter,保存为 .jmx格式。
注意:badboy中录制的脚本,不是一行行代码,是web 请求对象
在jmeter中打开: 检查请求
添加监听器
修改各项属性
调试脚本
脚本优化增强
- jmeter 作为代理服务器录制脚本(了解)
- jmeter -- > 测试计划 – 》非测试元件 – 》 http 代理服务器
在代理服务器中设置过滤条件,去掉图片,css,js 等请求
.*\.js.*|.*\.css.*|.*\.jpg.*|.*\.gif.*|.*\.ifc.*
- 在浏览器中设置代理服务器(注意端口号)
如果,jmeter代理服务器没有启动,网络不可以使用了。
Jmeter 其他常见的元素说明
配置元件:脚本中格式,数据进行统一设置,统一管理,例如:http 请求默认值
定时器:控制线程如何执行测试,操作和操作之间等待的时间,比如,同步定时器,用来实现真正的并发。
前置处理器:用于实际请求发出之前对即将发生的请求进行特殊处理。
例如:参数化
后置处理器:用于请求发出之后得到服务器的响应结果进行处理。一般都用于提取响应结果中特定的数据,例如:关联
断言:用于检查测试中得到的响应数据是否符合预期结果,这个断言一般都是在调试脚本过程中使用,性能测试的时候,断言需要禁用。
逻辑控制器:主要是控制测试中请求节点发送请求的逻辑顺序。
性能测试实际上是在测试不同场景下软件的性能,性能测试设计的实际是测试场景,这些场景必须要符合实际软件运行的情况……
脚本增强
逻辑控制器
事务:tps :每秒事务的处理量,这是表达系统处理能力的性能指标,即每秒处理的消息数,点击率。
Jmeter 通过逻辑控制器体现 -- 》事务控制器
逻辑控制器 –》 仅一次控制器,使用于并非是测试对象,但是是前置条件的请求。
比如测试场景:
- 打开首页(只一次就好)
两种实现方式:
- 单独的线程组中,单独设置线程属性:1,运行1次,这个线程组建议使用 setup线程组;
- 都是放在主线程组,添加一个逻辑控制器(仅一次控制器),只运行一次的请求必须放在这个控制器当中。
- 测试登录的性能(4个用户,连续运行30秒)
线程属性设置:线程数 4 ,循环次数:永远+调度器,持续运行5秒
定时器
集合点:作用,一般用来测试瞬间并发的压力的,目的就是实现真正的并发测试。在Jmeter中集合点是通过定时器来实现的。
集合点:同步定时器,可以实现真正的并发。“先到的人在集合点等后面的人,等大家都到齐了就一起走。”适合的场景:秒杀,12306网站10点放票等等。
集合的策略:人都到齐了一起走(全部集合),集合参与人数=线程数。
每多少人到了,就一起走(部分集合),可能出现的问题:一直等不到后面的人,必须要设置超时等待时间。
设置定时总结:模拟用户组的数量,表示几个虚拟用户参与集合
0 表示所有用户都参与集合,不分组,即全部集合完毕再进行下一步。
0<设置数<线程总数,表示按照设置的这个数,几个一组集合,那么就会有可能最后一组出现一直无法等到满足集合的情况,就会一直等,因此需要设置超时等待时间,否则会一直等下去,不结束。
设置数>线程数,表示集合人数超出了线程数了,也需要设置超时等待时间,否则一直不开始运行,无法结束。
超时等待时间的设置:timeout, 如果设置为 0 ,就表示无限等待,如果出现最后一直无法满足集合数量,将一直等下去,一直等到系统的最大值才释放(不可取)
Timeout>0,表示结合过程中,最后一组虚拟用户无法达到就和数量,再等待多少时间,就不等了,就自己运行完成。
思考时间:即,用户在页面操作停留的时间。作用,一般都是模拟用户的真实行为,让每个用户的操作有一定的差异,如果有了思考时间,就会初体现虚拟用户之间差异,同时也可以降低对服务器的堆积的时间,在jmeter中通过定时器当中固定定时器或者是随机定时器来体现思考时间。
固定定时器:固定停留时间(间隔),即上下请求发出的时间间隔是固定的。
高斯随机定时器:随机停留(间隔),每个虚拟用户在发出请求时,都是先找随机时间进行间隔停留的。
统一随机定时器。