一、Jmeter的简介
是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试。
二、特点
1、能够对http、ftp服务器进行压力和性能测试,也可以通过jdbc对各种数据库进行同样的测试
2、多平台支持,win、mac、linux都可以运行
3、支持脚本录制,可以生成丰富的测试报告
4、开源的、免费的、可拓展(有兴趣的可以自定义jmeter功能)
三、配置环境变量
1、在新建环境变量中加入一个新变量:JMETER_HOME,值为解压的jmeter安装路径。
2、在path中新建3个环境变量
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar
%JMETER_HOME%\lib\jorphan.jar
%JMETER_HOME%\lib/logkit-2.0.jar
3、在apache-jmeter-5.3\bin下有个jmeter.bat双击运行
4、可以设置中英文切换
在状态栏的options中的choose language中的Chinese就可以进行切换
jmeter的工具: 性能测试
负载和压力的区别:
负载测试:在一定的工作负荷下,给系统造成du的负zhi荷及系统响应的时间。
压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响
TPS和QPS的区别:
tps可以理解为是每秒对事务的处理的能力 qps是每秒对服务器的查询能力
性能测试web端和app端测试
web端的性能指标:
https://www.cnblogs.com/flyr/p/5509451.html
响应时间(客户端向服务端的请求时间,服务端对数据库的请求时间,服务端将结果展现到页面的时间)
响应时间2 5 8原则
吞吐量:指的是在一次性能测试过程中网络上传输的数据量的总和.吞吐量/传输时间,就是吞吐率.
TPS:每秒处理事务能力
并发数: 单用户的多次操作
多用户的单次操作
点击率:每秒钟用户向WEB服务器提 交的HTTP请求数.
资源使用率:cpu <80%内存 <80% io <40 网络 <30%
app端的性能指标
App端的性能指标:
Cpu内存 流量 电量 启动时间 帧率
cpu <80%内存 <80%
电量的损耗:
流量的损耗:
线程和进程区别:
接口测试:postman jmeter
Jmeter的接口测试:
1测试计划中添加线程租
2在线程租中添加http请求 在http请求中需要填入
3在线程中添加查看结果树
Jmeter的压力测试
1测试计划中添加线程租
2在线程租中添加http请求 在http请求中需要填入
3. 在线程租中进行修改并发数量(修改线程数量修改循环次数)
4. 在线程组中进行添加聚合报告/表格查看结果/图形结果
Jmetere的断言:
断言用来判断接口的返回值是否匹配
在线程租中进行添加断言--响应断言并将json放入到响应结果中在察看结果树中来
Jmeter的参数化关联
A:用户变量一个变量对应一个变量值
B:用户参数一个变量对应多个变量值
C:可以使用csv文件方式
1.用txt文件或者是excel,csv文件
2.书写参数化值一个http请求的所有参数以行为单位多个值用,隔开多个http请求对应是多行
3.在线程组中添加csvDataconfig匹配对应的文件和参数名
D:可以使用函数助手的方式来随机生成${}参数变量
https://blog.csdn.net/qq_34659777/article/details/86005723
Jmeter的对数据库链接(对数据库进行压力测试)
测试数据的来源:
A.复用开发的原有数据b.复用线上的真实数据c.直接使用线上数据d.测试人员手动添加
E:产品或者是运营提供数据
在线程中添加配置原件jdbconectionconfig
在线程租中添加取样器中的jdbcrequest
注意:querytype类型不同则写sql语句不同
https://blog.csdn.net/vikeyyyy/article/details/80367135
Boday录制(web端)
Jmeter录制(app端)
录制脚本—Web端
打开Badboy
运行网址获取数据
在Jmeter中打开刚刚保存的文件
补充数据
运行查看结果
录制脚本—移动端
添加一个代理服务器
设置模拟器中的网络
代理服务器添加修改信息
运行代理服务器
运行结果
正则表达式
创建正则表达式
填入数据
引用名称:在HTTP请求中引用此数据,需要用到的名称
正则表达式:用于将需要的数据提取出来
():括起来的部分就是要提取的
. :匹配任何字符
+ :一次或者多次
* :所有字符串
? :在找到第一个匹配项后停止
模板:表示使用提取到的第几个值
$ 1 $:表示取第一个
$ 2 $:表示取第二个
以此类推: $ n $:表示取第 n 个
匹配数字(0表示随机): 0表示随机,1代表全部取值
缺省值:如果正则表达式没有找到值,则使用此缺省值
运行结果
连接数据库
导入Jar包
need-to-insert-img
配置数据库连接
need-to-insert-img
数据库配置
need-to-insert-img
查询
need-to-insert-img
need-to-insert-img
详细说一下这个
need-to-insert-img
Selext Statement:查询语句
仅支持select 语句 ,并且一次只能测试一条
Updata Statement:更新语句
支持测试非select语句,并且支持测试多条,入其中加载这色了系统语句,则自动忽略,若第一条语句为select语句,报错
Callable Statement:所有语句
只要语法正确,任何语句,在多条都支持