一身转战三千里,一剑曾当百万师。这篇文章主要讲述Jmeter原理和安装相关的知识,希望能为你提供帮助。
1、jmeter是如何工作的
JMeter通过模拟一组用户将请求发送到目标服务器。 随后,收集数据以通过各种格式计算目标服务器的统计和显示性能度量。
2、测试的术语有:
1、性能测试
软件性能测试是一种非功能性测试,其中应用程序的性能在预期或更高负载下进行评估。
进行性能测试以测量系统的不同性能属性,如响应时间(速度),可靠性,资源使用,可扩展性,各种负载条件下的稳定性等。
2、负载测试
负载测试是一种性能测试,可模拟任何软件,应用程序或网站上的实际负载。
它有助于确定系统在正常和峰值条件下的行为方式。
可以在受控的实验室条件下执行负载测试,以比较不同系统的功能或准确测量单个系统的功能。
3、压力测试
压力测试也是一种性能测试,有助于确定计算机,网络,程序或设备在不利条件下保持一定效率的能力。
压力测试也称为疲劳测试。
3、jmeter特性
开源应用程序:JMeter是一个免费的开源应用程序,可以帮助用户或开发人员使用源代码开发其他应用程序。
用户友好的GUI:JMeter带有简单的交互式GUI。
支持各种测试方法:JMeter支持各种测试方法,如负载测试,分布式测试和功能测试等。
Web: HTTP, HTTPS, SOAP
数据库: JDBC, LDAP, JMS
Mail: POP3
支持多协议:JMeter支持HTTP,JDBC,LDAP,SOAP,JMS和FTP等协议。
模拟:JMeter可以使用虚拟用户或唯一用户模拟多个用户,以便对正在测试的Web应用程序产生大量负载。
框架:JMeter是一个多线程框架,允许许多或单独的线程组同时和同时采样不同的函数。
远程分布式测试:JMeter具有用于分布式测试的主从概念,其中主服务器将在所有从服务器之间分配测试,而从服务器将针对服务器执行脚本。
测试结果可视化:测试结果可以以不同的格式查看,如图形,表格,树型和报告等。
4、jmeter安装
1、检查是否安装jdk,如果没有安装请先安装jdk(yum install java-1.8.0-openjdk* -y)
Go
[root@k8s-master bin]# java -version
openjdk version "
1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
2、下载jmeter相关的版本http://jmeter.apache.org/download_jmeter.cgi
3、解压并配置环境变量
Go
[root@k8s-master jmeter]# tar xf apache-jmeter-5.4.3.tgz
[root@k8s-master apache-jmeter-5.4.3]# vim /etc/profile ##添加到环境变量配置文件里
export JMETER_HOME=/jmeter/apache-jmeter-5.4.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
[root@k8s-master apache-jmeter-5.4.3]# source/etc/profile
[root@k8s-master apache-jmeter-5.4.3]# jmeter -v
/ \\|_ \\ / \\/ | | | | || |\\/| || ____| \\
/ \\ | |) / | || || ||| | |\\/| ||| | || | |) |
/ |/ __ \\ ||_| || || | || | |__| | | || <
//__| //_____|| ||____|__/||||____| || |____|| \\\\ 5.4.3
Copyright (c) 1999-2021 The Apache Software Foundation
5、
二、Jmeter的高级特性
1、使用jmeter对数据库进行压测
1.在用Jmeter连接数据库之前我们首先要先下载一个数据库驱动(mysql-connector-java-X.xx.jar)放到Jmeter的lib路径下。
1.1、登陆MySQL官网进行https://dev.mysql.com/downloads/,点击Connector/J
1.2、选择下载页面进行下载
1.3、把下载的jar包文件放到apache-jmeter-5.4.3/lib下
2.使用jmeter连接数据库
2.1、创建测试计划,并在测试计划中将数据库驱动添加到class path
2.2、创建线程组,并在线程组下添加配置元件JDBC ConnectionConfiguration
2.3、配置JDBC Connection Configuration元件参数
SQL
VariableName:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
Max Numberof Connection:数据库最大链接数
MaxWait(ms):最大等待时间
timebetween eviction runs:运行时间间隔
Auto Commit:自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)
TransactionIsolation:事务间隔级别设置,主要有如下几个选项:(对JMX加解密)
TRANSACTION_NODE:事务节点
TRANSACTION_READ_UNCOMMITTED:事务未提交读
TRANSACTION_READ_COMMITTED:事务已提交读
TRANSACTION_SERIALIZABLE:事务序列化
DEFAULT:默认
TRANSACTION_REPEATABLE_READ:事务重复读
Connection Validationby Pool
Test WhileIdle :当空闲的时候测试连接是否断开
Soft MinEvictable Idle Time(ms) :最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000(5秒)
validationQuery:配置数据库时,属性validationQuery默认值为“select 1”,对于oracle值应为“select 1 from dual”。用来验证数据库连接的语句,这个语句至少是返回一条数据的查询语句。每种数据库都有自己的验证语句。大部分数据库都是select 1。
DatabaseConnection Configuration(这里的配置最重要,决定你可不可以连上数据库)
DatabaseURL: jdbc:mysql://服务器地址:3306/数据库名
JDBC Driverclass:数据库JDBC驱动类名:com.mysql.jdbc.Driver
Username:数据库连接用户名
password:数据库连接密码
2.4、在线程组下添加JDBC Request取样器,连续添加两次一个用于查,一个用于写入。
2.5、配置JDBC Request取样器,一个用于读,另一个用于写。
SQL
VariableName:选择之前在JDBC Connection Configuration元件中配置好的,这个变量决定这request请求发送命令到那个连接的数据库。
Query Type:要进行的操作类型
a)Select statement:查询语句类型
b)Update statement:更新语句类型
c)Callable statement:可调用语句类型
d)Prepared select statement:statement用于为一条SQL语句生成执行计划,如果只执行一次SQL语句,statement是最好的类型,Prepared statement用于绑定变量重用执行计划,对于多次执行的SQL语句,Prepared statement是最好的类型。
e)Prepared update statement:用法与Preparedselect statement相似。
f)Commit:将未存储的SQL语句结果写入数据库表。
g)Rollback:撤销指定SQL语句的过程。
h)AutoCommit(false):将用户操作一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务i)AutoCommit(true):无论何种情况,都自动提交将结果写入,结束当前事务开始下一个事务Query :要进行的操作
2.6、添加聚合报告
2.7、保存,步骤:文件-->
保存测试计划为
【Jmeter原理和安装】2.8、运行脚本,运行--启动
3.查看实验结果
推荐阅读
- 类和对象—3
- 大神带你搭建FTP
- Go 入门很简单(Writer和Reader接口)
- shell中获取Harbor中所有的镜像列表(超实用,建议收藏)
- 3 种工厂模式详解(JS)
- RocketMQ提升性能的几种方式(锁,压缩算法)
- Kubernetes 1.15&1.19 安装及组件关系(证书安装篇)
- MySQL事务并发带来的问题以及其解决方案分析
- Samaba文件共享服务