1.测试准备

安装mysql数据库,我安装的是8.0.12

安装Navicat Premium数据库管理工具

准备连接mysql的jar包 mysql-connector-java-8.0.11.jar

有一个数据库HttpRunner,下面有三张表,以teacher表为例

2.在JMeter中添加jar包

方式1直接将jar包复制到JMeter的lib目录下

方式2在测试计划中添加

3.JDBC Connection Configuration

JMeter添加配置元件JDBC Connection Configuration

配置数据库连接的相关属性,如连接名、密码等

记住这里的Variable Name for created pool(自己取的名字)

4. JDBC Request

  这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作。

示例1:从数据表teacher中查询出subjectid为1的所有老师的姓名,在HTTP请求中用该变量请求

1.JDBC Request,这里就用到了connection中的mysqltest

JDBC Request 参数说明:

Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致

Query:sql语句

Parameter valus:参数值

Parameter types:参数类型,可参考:Javadoc for java.sql.Types,如integer、varchar

Variable names:保存sql语句返回结果的变量名

Result variable name:创建一个对象变量,保存所有返回的结果

Query timeout:查询超时时间

Handle result set:定义如何处理由callable statements语句返回的结果

Query Type有几种,常用:

Prepared Select Statement:查询

Prepared Update Statement:插入、修改、删除

Variable names:如果设置了这个值,会保存sql语句返回的数据和返回数据的总行数。添加一个Debug Samplar来看下输出的结果就明白了,如下:

2、运行结果

可以看到Debug Sampler中的响应

A_#,B_#都代表行数

A_1:表示查询结果第1行第1列

A_2:表示第第2行第1列

B_1:表示第1行第2列

B_2:表示第2行第2列

3、HTTP请求,模拟请求,只是看下请求的URL

使用的时候用${变量名}

示例2:在示例1的基础上,将从mysql查询出来的数据保存到本地,再使用

因为示例1查询出来的结果不只一个,想保存到本地,再用CSV引用文件

1、保存到本地

首先可以把JDBC请求放在仅有一次控制器中,因为查询保存只需要一次

获取相应的数据:columnValue=vars.getObject("tname").get(i).get("teacher_name");

import java.io.*;//保存到本地函数
public static void saveStringToTxt(String file,String str) {FileWriter fw = null;try {//如果文件存在,则追加内容;如果文件不存在,则创建文件File f=new File(file);fw = new FileWriter(f, true);} catch (IOException e) {e.printStackTrace();}PrintWriter pw = new PrintWriter(fw);pw.println(str);pw.flush();try {fw.flush();pw.close();fw.close();} catch (IOException e) {e.printStackTrace();}}for(int i = 0; i < ${A_#}; i++){//tname为JDBC Request中Result Variable namecolumnValue=vars.getObject("tname").get(i).get("teacher_name");saveStringToTxt("/Users/yiqin/Documents/tname.txt",columnValue);//log.info("result:"+columnValue);
}

2、CSV引用文件使用

示例3:在性能测试过程中经常需要批量造数,试着来实现一下

造数的目的有时候是需要按较严格的规则,有时候就只是简单的增加表的容量

这里用到Query Type为Prepared Update Statement,写过java JDBC就很容易理解,语句里面的问号是占位符,这里我用了3个变量,其中${__counter(False,test)},${__Random(1,5,ran)}是JMeter的常用函数,可通过函数助手添加;${teachername}是外部导入的文件变量,通过配置元件CSV数据文件实现。

之后查看数据表可以看到数据添加进来了。所以可以通过这种方式开几个线程往数据库添加数据,还可以写java函数生成数据再往数据库添加。

JMeter JDBC Request(实现往mysql批量造数)相关推荐

  1. Jmeter向数据库批量造数

    1.Jmeter详细安装教程测试工具JMeter详细安装配置教程(保证一次安装成功)_jmeter安装_Bella_7的博客-CSDN博客 2.Jdbc插件下载Jmeter连接数据库插件 mysql- ...

  2. jmeter JDBC Request

    在工作的过程中,有时候需要对数据库发起请求或者对数据库压力测试,这个时候就需要用到JMETER JDBC Request,今天这一堂课我们重点介绍JMETER JDBC Request,一个取样器通常 ...

  3. 使用Lim测试平台快速完成批量造数

    一.前言 在我们平时的测试过程中,经常遇到需要造大量数据的情况,比如:测试分页功能,性能压测.数据准备等. 这时我们可以通过写脚本或jmeter这类的工具来实现,但这些方式在团队协作的时候并不友好,当 ...

  4. pytest装饰器实现批量造数

    最近的需求需要造1w多的数据,如何用Python代码实现批量造数呢?强大的pytest装饰器可以再次冲出江湖 今天要介绍的就是pytest-repeat,实现重复执行脚本的目的 1.首先安装插件pyt ...

  5. Jmeter JDBC Request执行多条SQL语句

    之前写过Jmeter操作mysql的文章https://blog.csdn.net/qq_36502272/article/details/88891873今天我们再看下如何操作多条sql语句 1.添 ...

  6. Jmeter - JDBC Request使用方法

    系统:windows11 jmeter版本:5.4.3 一.建立数据库连接 1.添加配置原件JDBC Connection Configuration:线程组 - 右键"添加" - ...

  7. Python批量造数并利用pymysql写入到数据库之multiprocessing多进程、threading多线程实现方式(学习笔记)

    1.导包 import random import string import pymysql import time import multiprocessing # multiprocessing ...

  8. python jdbc_javapython连接mysql快速造数

    JAVA 环境: MySQL:mysql-essential-5.1.51-win32 jdbc驱动:百度 Eclipse:百度 1.创建数据库 mysql>CREATE DATABASE te ...

  9. MySQL 快速造数 mysql_random_data_load

    安装 mysql_random_data_load GitHub 地址 wget -q https://github.com/Percona-Lab/mysql_random_data_load/re ...

  10. jmeter(十一)JDBC Request之Query Type

    工作中遇到这样一个问题: 需要准备10W条测试数据,利用jmeter中的JDBC Request向数据库中批量插入这些数据(只要主键不重复就可以,利用函数助手中的Random将主键的ID末尾五位数随机 ...

最新文章

  1. safari java插件故障_safari flash插件故障怎么办 mac safari flash插件故障解决方法
  2. html的高度自适应,CSS布局自适应高度解决方法
  3. SSVEP脑机接口及数据集处理
  4. hdu2973 YAPTCHA
  5. php非,PHP实现非对称加密
  6. 【FI模块学习笔记】 固定资产概述(下)
  7. Android使用开源项目Xutils实现多线程下载文件
  8. C/C++可变参函数示例
  9. shiro认证与授权:基于ini的用户授权
  10. 4-pycharm找不到模块问题
  11. Oracle数据库中游标的游标的使用
  12. 8日直播预告丨Oracle 19c X86下移经验分享
  13. 2016-03-17 leaks 内存泄露
  14. Spring AOP原理详解及实例
  15. 4k hidpi 黑苹果_黑苹果如何通过开启HIDPI来增强显示效果?
  16. 斗地主牌型基本算法升级版本
  17. C#实现发送短信到手机
  18. 伤病缠身仍愿竭力而战 澳网一别穆雷何时再见?
  19. 自我成长的9个小贴士
  20. [句子成分] 四、状语 定语 同位语

热门文章

  1. 无根树的计数——prufer序列
  2. 24点之5 7 7 11
  3. 阿里云对象存储OSS使用说明
  4. 同一无线络下电脑会打不开个别的网站网页,而手机却可以打开。
  5. MySQL分区表详解
  6. 就在昨天,张一鸣宣布卸任字节跳动CEO!
  7. 编写第一个WOW插件
  8. clojure语言_Clojure编程语言
  9. C# 如何在Excel表格中插入、编辑和删除批注
  10. js基础-点击切换div背景颜色