31.JMeter使用sqlite参数化


1、Sqlite

  • Sqlite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。

  • Sqlite是一个进程内的库,也就是内存型数据库,说明速度快。

  • Sqlite是一个零配置的数据库,意味着它与其他数据库不一样,不需要在系统中配置

  • Sqlite的特点:

    • ①、不需要一个单独的服务器进程或者操作的系统(无服务器的)
    • ②、Sqlite不需要配置,这意味着不需要安装或者管理

    • ③、一个完整的Sqlite数据库是存储在一个单一的跨平台的磁盘文件

    • ④、Sqlite非常小,轻量级,完全配置时小于400KB,省略可选功能配置时小于250KB

    • ⑤、Sqlite是自给自足的,意味着不需要任何外部的依赖

    • ⑥、Sqlite事务是完全兼容ACID的,允许从多个进程或者线程安全访问

    • ⑦、Sqlite支持SQL92标准的大多数查询语言的功能

    • ⑧、Sqlite使用ANSI-C编写的,并提供了简单和易于使用的API

    • ⑨、Sqlite可以在Unix【linux, macos, android, ios】和Windows【win32,wince,winrt】中运行


2、Sqlite的安装

  • Windows的安装

请访问 SQLite 下载页面,从 Windows 区下载预编译的二进制文件。
您需要下载 sqlite-tools-win32-*.zip 和 sqlite-dll-win32-*.zip 压缩文件。
创建文件夹 C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。
添加 C:\sqlite 到 PATH 环境变量,最后在命令提示符下,使用 sqlite3 命令,将显示如下结果。

C:\>sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
  • Linux上的安装

    • 几乎所有的linux操作系统都附带Sqlite
#    验证是否安装Sqlite
C:\>sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

#    如果没有,需要手动安装
请访问 SQLite 下载页面,从源代码区下载 sqlite-autoconf-*.tar.gz。

$ tar xvzf sqlite-autoconf-3071502.tar.gz
$ cd sqlite-autoconf-3071502
$ ./configure --prefix=/usr/local
$ make
$ make install

3、Sqlite在JMeter中配置

  • ①、配置连接信息

    • JDBC Connection Configuration

  • ②、建表

    • JDBC Request

  • ③、运行线程组后,可以通过navicat连接进行数据库的查询


4、注册 ---> 登录

  • 场景:

    • 注册?我可能需要注册数十个测试账号,后续还需要使用这数十个账号来做登录的性能测试
    • 使用参数化的方式?

      • ①、通过mysql导出数据为txt文件或者csv文件,然后用jmeter做csv的参数化
      • ②、通过jmeter的jdbc查询mysql的数据表,然后用一个 “保存响应到文件”  的元件来保存数据到txt文件,再使用csv参数化

        • 但是个人觉得没有什么意义,跟第一种方式一样
      • ③、通过查询mysql获取到账号,然后登录(密码是加密的,最好就用一个常量)

        • 但是这种方式,需要不断的去查询mysql数据库,这样消耗性能,性能测试就不合适了
        • 当然可以加一个仅一次控制器(但是这个针对多用户,也是要运行多次的)

        • 当然也可以考虑将这个操作放到setup线程组里面,只执行一次

          • 但是查询服务器的mysql,还是涉及性能消耗!
      • ④、而使用sqlite的方式,会大大减少资源消耗

        • csv是文件,需要不断的读取,涉及磁盘IO,消耗大量的资源
        • sqlite是轻量级的数据库,所以要好得多

        • 属性的方式肯定 优于 文件的读取


5、Sqlite做参数化

  • 1)插入数据到sqlite

    • 思路:注册一个账号,就插入一条数据到sqlite

  • 2)读取sqlite的数据,就是账号

    • 思路:这个sqlite的数据就是本地的,比直接读取服务器的mysql数据库更好,不消耗那么多资源
      • 只需要读取一次,放入jmeter的属性就可以,跨线程组使用
      • 所以放到setup线程组里面去

  • 3)使用读取到的sqlite的数据,就是账号

    • 脚本读取上一步里面做好的jmeter的属性,就可以使用了

  • 4)其余细节自己微调!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值