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


    目录

    • 一、回顾

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

      • 1.csv\txt文件中的数据,怎么来的?

      • 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数据驱动性能测试:csv\txt文件。

    1.csv\txt文件中的数据,怎么来的?

    • 手工造。

    • 数据库导出。

      • 是否可以用jmeter把数据库中的数据导出来。

      • 性能测试环境的数据库中,已经有一批账号,我想把用户表中的账号导出。

    • 使用jmeter导出数据库中的数据。

      • jdbc request:查询数据。

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

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

    • 填写文件名称前缀。

    • 勾选:Don't add number to prefix。不要加数字前缀。

    • 勾选:Don't add content type suffix。不要加类型后缀。

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

    1fed71aa886fe48bb39b97667daa602c.png
    图1:配置jdbc Connection Configuration。
    55f082807a9a014a6f4989293c396bb8.png
    图1:配置jdbc request查询数据。
    f741d8a6a2c59d03096c3fb04289d719.png
    图1:配置线程组:一个线程,循环2次。
    708d71c339b3eda088dccd421ba60cbc.png
    图1:保存响应到txt文件。
    e02fc17cd2e8e429ffd3e19546e455d7.png
    图1:运行结果。
    01048abec9c3701c880faa3eb55c9386.png
    图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

      • user\password:不需要填写。

    三、jdbc request:创建表。

    9df9ddce751895fc51e857bfd330756e.png
    图2:setup线程组:1个线程,循环次数是1。
    fb94a068ac3579323058db409c3dfb76.png
    图2:配置jdbc Connection Configuration。

    query type:update statement

    441c86aaaed5f619c75840dd9fddf818.png
    图2:配置jdbc request创建表。
    1. create  table if not exists 'kyj_user'(
    2. id TEXT,
    3. mobile TEXT,
    4. gqid TEXT, 
    5. token TEXT
    6. )
    85684f83c891caa49b8f57e63f4cb652.png
    图2:运行结果。

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

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

    1.最大值:mbs_#=100

    0661046a695f47d45785f7aaabca27db.png
    图3:最大值。
    b2bd67f904e8d948927605eb2642577a.png
    图3:配置计数器。
    4aa76ef2266d9d91932fb237cef3913d.png
    图3:配置循环控制器。
    565ee3665d329649ed92dbff44f03a26.png
    图3:v函数。

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

    query type:select statement

    c3d991e417fc9896f369b2a543b9b1bf.png
    图3:配置select_kyj_100:offset 1100。

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

    bcb35f1c3894ab3364395e9209723dc9.png
    图3:配置insertsqlite。

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

    2baf43939a28345ebafcb8187c726dd6.png
    图3:配置jdbc request:offset 1200。

    5.运行结果:

    88234d68fe7af763e2165240be330c86.png
    图3:运行结果为200条数据。

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

    7b797b4fdd4688cd673caae6187d0074.png
    图4:从mysql数据库中查询数据 offset 1300
    b444625a966a6ef09bf2530cf46c1de1.png
    图4:teardown线程组:1个线程,循环次数是1。

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

    3a5c81027e381e615552c65d97544ca2.png
    图4:配置selectsqlite。

    将数据写入txt文件中:

    6f700bdb058c9a2cc557958b40858080.png
    图4:保存响应到文件。

    运行结果:

    061a57c5f6c9306ebe97e0f480f0dfea.png
    图4:运行结果:300条数据。

    脚本链接:

    gitee地址:

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


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

    欢迎关注 “清菡软件测试”,进群加v:qhtester,备注:学校(公司名)+姓名(昵称),否则不予通过,感谢点赞与分享!

  • 相关阅读:
    bamboo is currently exporting
    淘宝API技术文档解析,从入门到实战
    这个 MySQL bug 99% 的人会踩坑!
    详解缓存穿透、缓存雪崩、缓存击穿
    PHP Secure E-mails
    第十一届中国云计算标准和应用大会 | 云计算国家标准及白皮书系列发布 华云数据全面参与编制
    springboot毕设项目大型企业员工信息管理系统9thmk(java+VUE+Mybatis+Maven+Mysql)
    艾美捷胆固醇肉豆蔻酸酯技术信息说明
    .NET指定图片地址下载并转换Base64字符串
    数据链路层具体协议
  • 原文地址:https://blog.csdn.net/weixin_41033105/article/details/125568256