Day40 JMeter的使用(下)

本文详细介绍了如何使用JMeter直连数据库,包括配置、添加MySQL驱动、设置数据库连接信息。同时,讲解了JMeter的逻辑控制器如If、循环、ForEach控制器的使用。还探讨了定时器的种类,如同步定时器、常数吞吐量定时器和固定定时器。此外,文章还阐述了JMeter的分布式测试原理及配置执行,以及各种监听器的用途,如聚合报告、查看结果树和HTML测试报告。最后,讨论了并发数计算方法和性能监控,包括阶梯式线程组和PerfMon资源监控的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

Day01 软件测试基础总结

Day02 测试用例知识点总结(上)

Day03 测试用例知识点总结(下)

Day04 禅道-从安装到卸载

Day05 MySql的基础使用

Day06 MySql知识点总结

Day07 MySql知识点再总结与多表查询

Day08 redis的基础知识

Day08 VMware的安装、Linux系统安装和Linux基础命令

Day09 Linux常用命令总结

Day10 Linux环境部署和项目构建

Day11 shell脚本基础知识

Day12 接口和协议

Day13 Postman的使用

Day13 Windows环境下的JDK安装与Tomcat的启动

Day14 jenkins部署

Day15 jenkins的简单使用

Day16 charles的基本使用

Day17 考试

Day18 考试

Day19 Fiddler的简单使用

Day20 Python基础

Day21 python 语句基础

Day22 Python数据类型(上)

Day23 Python数据类型(下)

Day24 Python函数

Day25 Python的文件操作和异常处理

Day26 Python面向对象

Day27 Python的部分算法

Day28 单元测试 unittest

Day29 单元测试 pytest

Day30 接口测试requests

Day31 Web端自动化基础

Day32 Web自动化进阶

Day33 PO模型

Day34 移动端测试(上)

Day35 移动端测试(下)

Day36 移动端自动化(上)

Day37 移动端自动化(下)

Day38 性能测试理论

Day39 JMeter的使用(上)

Day40 JMeter的使用(下)


目录

前言

一、JMeter直连数据库

1.配置

1.下载驱动

2.添加MySQL的驱动jar包 

3.配置数据库链接信息

二、逻辑控制器

1.if控制器

2.循环控制器

 3.ForEach控制器

三、定时器

1.同步定时器

 2.常数吞吐量定时器

 3.固定定时器

 四、分布式

1.原理

2.JMeter分布式的配置和执行

1.修改bin/jmeter.properties文件

​编辑

 2.执行

五、JMeter监听

1.聚合报告

 2.查看结果树

3.html测试报告

六、并发数计算方法

1.性能测试计算TPS

2.稳定性测试的并发量

  3.压力测试的并发量

七、性能监控

 1.阶梯式线程组

 2.Transactions per Second

 3.PerfMon资源监控

总结


前言


一、JMeter直连数据库

使用场景:

1.用作请求的参数化(登录使用的用户名与密码直接从数据库中提取)

2.作为结果的断言(如购物车下单,检查接口返回的订单号,是否与数据库中的一致)

3.清理垃圾数据(添加商品(商品编号不能重复),再执行该脚本不能成功,需要在下次执行前删除该商品数据)

4.准备测试数据(通过数据库来准备大量的性能测试数据)

1.配置

1.下载驱动

首先需要jdbc的jar包,下载官网

2.添加MySQL的驱动jar包 

方式1:在测试计划面板点击“浏览”按钮,将jdbc驱动添加进来

 方式2:将MySQL的驱动jar包放在lib/ext目录下,重启jmeter

3.配置数据库链接信息

 位置:测试计划-->线程组-->配置元件-->JDBC Connection Configuration

Variable Name:连接池名称。JDBC Request会通过此名称来获取连接池的配置,名称可以随意填写,但是最好具体实际的业务意义,方便理解和记忆。
其他的可以默认,可以根据实际情况来调节优化性能。
Database URL:数据链接url,格式:jdbc:mysql://localhost:3306/host
注释:数据库的ip地址+端口/数据库名(查询数据库端口号show global variables like 'port')
jdbc:mysql://127.0.0.1:3306/mydb2?serverTimezone=UTC& allowMultiQueries=true
JDBC Driver Class:驱动器名称。固定:com.mysql.jdbc.Driver
Username:用户名
Passowrd:密码
添加一个JDBC Request。

位置:右键线程组【添加】-【Sampler】-【JDBC Request】


 Updata Statement:更新语句
支持测试非select语句,并且支持测试多条,若其中夹杂select语句,自动忽略,若第一条语句为select语句,报错
Callable Statement:所有语句
只要语法正确,任何语句,再多的条数都能支持
Prepared Select Statement:预编译查询语句。(长时间执行效率更高,支持占位符)
Prepared Update Statement:预编译更新语句。(同上)
Commit (立即提交)Rollback(回滚)

Parameter values:参数值。参数化sql语句中的值
Paramter types:参数类型。数据库的参数你可以去查看一下。这里是varchar类型。
Variable names:变量名字,也就是将筛选出来的值放在变量里面。例如这三列数据分为放在变量:A,B,C中(实际操作中命名一定要有实际意义)。
Result variable name:存储变量名。将整个结果存储在变量中。取名:rs
Query timeouts :超时时间。

二、逻辑控制器

可以按

### JMeter 5.6.3 的使用教程与功能配置 JMeter 是一款开源的性能测试工具,广泛用于负载测试和压力测试。以下是关于其基本使用方法、功能配置以及示例的具体说明。 #### 基础概念 JMeter 中的核心组件之一是 `JMeterThread` 类,该类负责实际运行线程并模拟用户行为[^1]。在构建测试计划时,通常会创建多个线程组 (Thread Group),每个线程组可以定义并发用户的数量以及其他相关属性。 #### HTTP 请求配置 为了发送 HTTP 请求,需先配置目标 Web 服务器的相关信息。这包括 URL、协议(如 HTTP 或 HTTPS)、请求方法(GET/POST 等),以及可能需要传递的参数。例如,在测试百度首页的情况下,可以通过如下方式完成配置: ```plaintext Server Name or IP: www.baidu.com Port Number: 80 Protocol: http Method: GET Path: / ``` 上述配置能够成功发起针对百度首页的简单 GET 请求[^3]。 #### 录制 HTTP 脚本 对于复杂的交互场景,手动编写所有请求可能会非常繁琐。此时可借助 JMeter 提供的代理录制功能简化过程。具体步骤如下: 1. 启动 JMeter 并添加 **HTTP(S) 测试脚本记录器**。 2. 配置记录器的各项选项,比如端口号等。 3. 设置浏览器或应用通过指定代理访问网络资源。 4. 开始录制后执行所需的操作流,结束后停止录制即可获得对应的采样器集合。 需要注意的是,在此过程中应确保防火墙不会阻止连接,并正确处理 SSL 握手等问题[^4]。 #### 性能监控集成 除了基础的功能外,还可以进一步扩展 JMeter 来实现更深入的应用程序性能分析。例如,可通过特定插件将实时度量数据导出至 InfluxDB 数据库存储起来;随后再结合 Grafana 可视化平台展示出来形成直观报表。这种方法适用于持续跟踪系统表现趋势或者定位瓶颈所在位置[^2]。 #### SQL 参数化查询实例 当涉及到数据库层面的压力测验时,则需要用到动态生成的数据填充表单字段。下面给出了一条随机学生信息录入语句作为示范: ```sql INSERT INTO test_student(name, sex, card_number, birth_day, create_time, email, telephone, score) VALUES ( '${randomFullName}', '${__Random(1,2)}', '1${__Random(3,9)}${__Random(100000000,999999999)}', '${randomBirthday}', '${randomDate}', '${__RandomString(6,abcdefghijklnmopqrstuvwxyz)}@${__RandomFromMultipleVars(163|126|qq|sina|189)}.com', '1${__Random(3,9)}${__Random(100000000,999999999)} ', '${__javaScript(Math.round(Math.random()*100))}' ); ``` 这条命令展示了如何利用内置函数构造多样化的输入样本集以满足不同条件下的需求[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值