高级性能测试系列《27. sqlite数据库中的这份数据可以用于性能测试:设置属性、获取属性,与csv这份数据比较有什么优劣?》

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

目录

  • 一、从项目的mysql数据库中,获取数据,保存了几份数据?
    • 1.设置为属性。
    • 2.获取属性。
  • 二、设置属性,需要设置n多个属性,这n多个属性是否占用资源,与csv文件比较有什么有优劣?
    • 1.对比csv文件。
    • 2.保存响应到文件,可以直接保存为csv文件吗?
    • 3.一定要保存成csv文件怎么办?
  • 三、现在的数据来源是项目的数据库中来的,有没有其它方式生成账号?

一、从项目的mysql数据库中,获取数据,保存了几份数据?

从上篇文章中的场景,可以看到:高级性能测试系列《26. 从mysql中查询出数据写入sqlite中,再从sqlite中查询出数据写入txt文件中。》

保存了2份数据。

1份数据是存在sqlite数据库中。

1份数据是存在txt文件中。 =====可以去做最传统的csv数据文件设置的原始数据文件。

sqlite数据库中的这份数据,如何做性能测试?

1.设置为属性:

图1:线程数是1,循环次数是1

图1:selectsqlite:查询出10条数据。

图1:循环次数:${smb_#}

图1:函数助手:__counter

图1:函数助手:__setProperty:设置属性。

图1:调试取样器。

图1:属性显示:prmb_1至prmb_10。

2.获取属性:

图1:线程数是2,持续时间是10秒。

图1:函数助手:__P获取属性。

图1:计数器。

图1:login

图1:运行结果。

sqlite数据库中的这份数据可以用于性能测试。

二、设置属性,需要设置n多个属性,这n多个属性是否占用资源,与csv这份数据比较,有什么有优劣?

如果设置2w个账号,是需要2w个属性,且要占用资源。

1.对比csv文件

如果文件里包含2w条数据,打开文件后,会读取这2w条数据,所以整个文件大小会占用资源。

csv文件所占用的资源包括:数据 管理数据所需要的资源 > 属性占用的资源

读写csv文件,需要大量的磁盘IO(换入换出操作)。

读取csv文件,每次都是读取一行数据。读一行用一行,读一行用一行,所以频繁得使用IO。

使用大量的磁盘IO(换入换出操作),会比cpu占用过高,更加导致电脑卡顿。

2.保存响应到文件,可以直接保存为csv文件吗?

默认情况下,保存文件,用t进行列分隔。

所以,能保存txt文件,xlsx文件。不能保存为csv文件,因为csv文件是用英文的逗号分隔的。

3.一定要保存成csv文件怎么办?

放弃使用txt文件、xlsx文件,用csv文件。

修改jmeter.properties文件中的:

jmeter.save.saveservice.default_delimiter=,

修改完毕后保存,保存后重启Jmeter。

三、现在的数据来源是项目的数据库中来的,有没有其它方式生成账号?

如果没有数据库的权限,拿不到数据库里面的数据。

那么可以先调用注册接口, 同时把注册成功的账号和密码,写一份到本地的sqlite数据库中。同时本地的文件也将这份数据保存了。

图2:线程数是1,循环次数是1.

图2:register

图2:函数助手:__Random

图2:用户参数。

图2:insertsqlite

图2:运行结果。

图2:运行结果。

sqlite数据库不支持多线程。多线程的时候就会出现运行失败。加个临界部分控制器,多用户也会变成串行执行。

图3:线程数是10,持续时间60秒。

图3:运行结果。

图3:运行结果。

random随机生成的数字会有重复的。

我注册一批账号,这批账号,在被测项目的数据库中存在,那么就可以用于后续的登录相关的测试。

这批账号,又在我本地的sqlite中保存了一份,以后我要用,我直接从本地数据库中取出来就可以用。

gitee脚本链接:

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


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

0 人点赞