高级性能测试系列《26. 从mysql中查询出数据写入sqlite中,再从sqlite中查询出数据写入txt文件中。》

2022-12-02 21:51:38 浏览数 (3)

目录

  • 一、回顾
  • 二、DDT数据驱动性能测试:jmeter sqlite
    • 1.csvtxt文件中的数据,怎么来的?
    • 2.保存响应到本地的txt文件。
    • 3.运行脚本,文件保存在jmeter的bin文件夹下。
    • 4.如何用sqlite内存关系型数据库?
  • 三、jdbc request:创建表。
  • 四、从mysql数据库中查询出数据,将查询到的数据写入sqlite数据库中。
  • 五、从sqlite数据库中查询出所有的数据,将数据写入txt文件中。

一、回顾

jdbc:

jar包:丢在jmeter的lib文件夹中。

jdbc conection configuration:连接池、URLdriverclassuserpassword

  • 不同的数据库,url地址写法不一样:
    • mysqljdbc:mysql://serverip:port/dbname
  • 不同的数据库的driver class也是不一样。
    • mysql5com.mysql.jdbc.Driver
    • mysql8com.mysql.cj.jdbc.Driver

二、DDT数据驱动性能测试:jmeter sqlite

DDT数据驱动性能测试:csvtxt文件。

1.csvtxt文件中的数据,怎么来的?

  • 手工造。
  • 数据库导出。
    • 是否可以用jmeter把数据库中的数据导出来。
    • 性能测试环境的数据库中,已经有一批账号,我想把用户表中的账号导出。
  • 使用jmeter导出数据库中的数据。
    • jdbc request:查询数据。
代码语言:javascript复制

    SELECT id,mobile,gqid, token FROM cb_account 
    where `password` = 'e10adc3949ba59abbe56e057f20f883e'  AND LENGTH(mobile)=11
    LIMIT 100  OFFSET 1100

2.保存响应到本地的txt文件。

  • 填写文件名称前缀。
  • 勾选:Don't add number to prefix。不要加数字前缀。
  • 勾选:Don't add content type suffix。不要加类型后缀。

3.运行脚本,文件保存在jmeter的bin文件夹下。

图1:配置jdbc Connection Configuration。

图1:配置jdbc request查询数据。

图1:配置线程组:一个线程,循环2次。

图1:保存响应到txt文件。

图1:运行结果。

图1:运行结果:sava100user.txt。

现在遇到一个问题,就是反复执行,都是覆盖原来的文件,永远都只得到1份数据。没有把多次请求的数据合并,想要得到多次数据的合并的结果,还需要手工去弄。

4.如何用sqlite内存关系型数据库?

用sqlite内存关系型数据库,不需要自己去安装(有图形界面的操作系统有浏览器,就默认已经安装了这个sqlite数据库了)。

sqlite的jar包,下载地址:https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.31.1,放到jmeter的lib文件夹,重启jmeter。

  • Connection Configuration:
    • pool:自己定义个名称。
    • url:jdbc:sqlite:自定义一个dbfile文件名.db
    • class:org.sqlite.JDBC
    • userpassword:不需要填写。

三、jdbc request:创建表。

图2:setup线程组:1个线程,循环次数是1。

图2:配置jdbc Connection Configuration。

query type:update statement

图2:配置jdbc request创建表。

代码语言:javascript复制

create  table if not exists 'kyj_user'(
id TEXT,
mobile TEXT,
gqid TEXT, 
token TEXT
)

图2:运行结果。

脚本执行之后,发现在jmeter的bin文件夹下面有一个db文件。

四、从mysql数据库中查询出数据,将查询到的数据写入sqlite数据库中。

1.最大值:mbs_#=100

图3:最大值。

图3:配置计数器。

图3:配置循环控制器。

图3:v函数。

2.从mysql数据库中查询数据offset 1100

query type:select statement

图3:配置select_kyj_100:offset 1100。

3.将查询出的数据插入sqlite数据库中,点击运行:

图3:配置insertsqlite。

4.从mysql数据库中查询数据offset 1200,再次点击运行:

图3:配置jdbc request:offset 1200。

5.运行结果:

图3:运行结果为200条数据。

五、从sqlite数据库中查询出所有的数据,将数据写入txt文件中。

图4:从mysql数据库中查询数据offset 1300

图4:teardown线程组:1个线程,循环次数是1。

从sqlite数据库中查询出所有的数据:

图4:配置selectsqlite。

将数据写入txt文件中:

图4:保存响应到文件。

运行结果:

图4:运行结果:300条数据。

脚本链接:
gitee地址:

https://gitee.com/qinghanstudy/gaojixingneng/tree/master/Advanced performance testing


文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。文章是清菡编写的,如有转载,请标明出处!

0 人点赞