jmeter
jmeter的安装:
1、前置条件:安装好jdk
2、jmeter的下载地址:
https://jmeter.apache.org/download_jmeter.cgi
3、jmeter环境配置教程:
https://jingyan.baidu.com/article/acf728fd68e7bef8e510a3cb.html
录制方式
1、badboy
①Jmeter 1 - 打开Badboy录制的脚本报错 ‘only whitespace content allowed before start tag and not\ufffd
原因 - 由于badboy录制完脚本后直接保存为.jmx文件;
解决方法 - 将badboy录制完的脚本export to jmeter文件,然后再用jmeter打开就是好的
设置检查点
回放时内容显示为乱码解决方法:
修改编码格式:utf8-->gbk
参数化:
并发:
badboy中的报告:
1、Jmeter工具组成
①资源生成器:用于生成测试过程中服务器、负载机的资源代码
②用户运行器:通常是一个脚本运行引擎,根据脚本要求模拟指定的用户行为
③报表生长器:根据测试中实时的数据生成报表,提供可视化的数据显示方式
④负载发生器:用户产生负载,通常以多线程或是多进程的方式模拟用户行为
2、Test Plan(测试计划):用来描述一个性能测试,包含于本次性能测试所有相关的功能。
1)setup thread group
一种特殊类型的threadgroup,可用于执行预测试操作。这些线程行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行
2)teardown thread group
一种特殊类型的threadgroup,可用于执行测试后操作。这些线程行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组
3)thread group(线程组)
这个是我们通常添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。
3、测试片段(test fragment)
测试片段元素是控制器上的一种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行
4、配置元件(config element)
配置元件用于提供对静态数据配置的支持。如CSV Data Set config 可以将本地数据文件形成数据池(data pool)
5、定时器(Timer)
定时器用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段
6、前置处理器(Per Processors)
用于在实际的请求发出之前对即将发出的请求进行特殊处理。
7、后置处理器(Post Processors)
用于对sampler发出请求后得到的服务器相应进行处理。一般用来提取相应中的特定数据
8、断言(Assertions)
断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致
9、监听器(Listener)
是用来对测试结果数据进行处理和可视化展示的一系列元件。图形结果、察看结果树、聚合报告。都是常用的元件。
10、取样器(sample)
取样器是性能测试向服务器发送请求,记录相应信息,记录相应时间的最小单元,jmeter原生支持
jmeter参数化
①用户参数
②CSV Date Set Config(CSV数据文件设置)
③函数助手——随机函数
jmeter集合点
(让所有请求在不满足条件的时候处于等待状态。)
如:我集合点设置为50,那么不满足50个请求的时候,这些请求都会集合在一起,处于等待状态,当达到50的时候,就一起执行。从而达到并发的效果。
jmeter之检查点
①响应断言
右键点击我们的“登录”页面---->添加---->断言---->响应断言
②断言持续时间
③大小断言
jmeter之关联
①正则表达式提取器
jmetet性能测试实战——web程序
需求:并发登陆的性能测试
场景:1s增加2个线程;运行2000次;分别看20、40、60并发下的表现
监控:成功率、响应时间、标准差、cpu、mem、io等;资源监控需要在window下部署监控agent(server agent)
jmeter之FTP程序
jmeter之数据库测试
环境准备
1、mysql驱动
2、jmeter->jdbc配置
3、jmeter->jdbc请求
jmeter分布式性能测试
jmeter的监听器以及测试结果分析
jmeter性能测试报告