Jmeter
官网地址:https://jmeter.apache.org/
用户手册:https://jmeter.apache.org/usermanual/index.html
负载测试:通过逐步加压的方式来确定系统的处理能力,确定系统能够承受的各项的阀值
压力测试:负载的临界点
容量测试:负载和压力测试,都是在一定压力条件下我们来看服务的性能,容量测试相反,是在一定性能目标的
前提下,系统能够处理的做大能力
配置测试:对被测软件的软硬件配置的测试,找到系统各项资源的最优分配原则
相关知识
接口、编程、网络基础、分析系统架构、中间件、数据库、抓包
性能工具使用、性能场景分析、性能关注指标、监控方式、测试结果瓶颈分析、如何调优
下载:https://jmeter.apache.org/download_jmeter.cgi
使用:bin/jmeter.bat点击运行
修改配置文件:bin/jmeter.properties,sampleresult.default.encoding=utf-8,language=zh_CN
测试计划TestPlan:用来描述一个性能测试,所有内容都是基于这个测试计划的
线程组ThreadGroup:一个线程组可设置多个线程,每个线程之间互不影响
采样器Sampler:HTTP请求
断言Assertion:响应断言,json断言
监听器:查看结果树,汇总报告,聚合报告
jmeter结构体系
取样器HttpRequest-前置处理器/配置元件/后置处理器-控制器LogicController-定时器-线程组
|
断言、监听器
Jmeter基本原理:是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中
通过断言来验证结构的正确性,可以听你监听来记录测试结果;
如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;
如果取样器中有关联需求,可以通过后置处理器来完成;
如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;
如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成
http请求:线程组-添加-取样器-http请求
Jmeter超时处理:线程组-advanced
断言Assert:线程组-添加-断言-json断言
查看结果树viewResultsTree:线程组-添加-监听器-查看结果树
参数化函数:tools-function help
参数化文件:添加csv data set config:线程组-添加-配置元件-csv data set config
聚合报告:线程组-添加-监听器-聚合报告
jmeter插件:https://jmeter-plugins.org/
逻辑控制器
循环控制器/if控制器/仅一次控制器/foreach控制器
后置处理器
json提取器:添加-后置处理器-json提取器
json路径表达式:https://github.com/json-path/JsonPath
上个接口的返回值是本接口的参数值时可使用提取器
正则表达式提取器:添加-后置处理器-正则表达式提取器
录制:
Templates-下拉选择Recording-create
在http(s) Test Script Recorder-点击启动按钮
如果是https的请求录制,在jmeter的bin目录下,找到刚才生成的证书ApacheJMeterTemporaryRootCA.crt
导入证书,选择受信任的根证书颁发机构,证书的有效期是7天
打开浏览器,设置系统代理,internet选项框-连接-代理-局域网设置--代理服务器127.0.0.1:8888
开始录制,操作浏览器--在jmeter的线程组下recordingController查看录制的请求
找到需要的数据,可以复制到一个新的线程组中使用
可以使用正则表达式过滤掉一些录制的数据
Don't use GUI mode for load testing
集成到jenkins里面,可以使用命令行方式运行jmeter