用JMeter对MySQL数据库进行压测( v 函数-嵌套变量)

转载链接:https://www.cnblogs.com/Jadie/p/8056541.html

参考链接:https://blog.csdn.net/qq_35389417/article/details/83749530

      下载相关软件,以下是我使用的软件及版本

  JMeter 5.41

  MySqL 版本未知

  mysql-connector-java-5.1.44-bin.jar

    

1、 下载mysql-connector-java-5.1.44-bin.jar

https://www.mysql.com/downloads/

1)打开链接后,点下图按钮

 

 

 

 

 

 

 

2. 将mysql-connector-java-5.1.44-bin.jar 放到JMeter的lib目录下(放在别的目录下也可以),并在测试计划中添加mysql-connector-java-5.1.44-bin.jar

3. 添加一个线程组并且在线程组下添加配置元件JDBC Connection Configuration

4. JDBC Connection Configuration配置如下,为避免泄露公司数据隐私,数据库地址为虚构。

    variable name:相当于是这个数据库的别名,随便起一个,在JDBC Request组件中 输入这个别名就可以知道是用的哪个数据库

    Database URl:jdbc:mysql://ip:3306/库名

    username:访问数据库的用户名

     passwor:访问数据库的密码

 有时候会报时区有问题,解决办法:可以再上图的Database URl 后面加上个时区,编码等,如 

?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPu

jdbc:mysql://113.74.129.80:3306/j_site?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPu

5. 在线程组下添加取样器JDBC Request

6. JDBC Request配置如下

 

 

2)如果要参数化(对查询语句中的值进行参数化)

方法1:需要将JDBC Request下的配置改为如下

下图sql语句中 问号当占位符

参数化值、参数类型、变量名填写上

方法2:

可添加个用户自定义变量 组件,然后上图中的参数化值、参数类型填入的值清空,问号改为   '${变量名}'

            将查询出的结果保存到变量,让其他模块调用

从数据库中随机查询出前10条信息中的 id,book_name,book_desc字段:select id,book_name,book_desc from book ORDER BY RAND() limit 10;

Varible names:定义了查询语句中3个变量,用来接收sql出查出来的id,book_name,book_desc  3个字段的值。

 

  7、使用上图中取出来的username、id、boo_name、book_desc的值

如${username_1} 、${id_1}、${id_2}、${id_3}. ....${id_10}

 

7. JDBC Request下添加一个断言,断言设置如下(断言意在检验查询结果是否正确,应根据实际查询语句设计)

JSON 断言:Assert JSON Path exists 与Expected Value值进行对比,两个值不一致时,执行脚本会报错

Assert JSON Path exists:http请求执行后返回的值

Expected Value:期望http返回的值,从JDBC Request获取到的值。如${id_1},其中id_1中的1肯能为2、3,是变量, 那1设为变量n, ${id_n}。

                       n和${} 相当于2个变量嵌套。需要用到 v 函数,从函数助手里拷贝函数${__V(,)},将两个嵌套的变量放到v函数里,如${__V(id_${n})}

 

 

http请求中的值也需要做参数化,如下图,如每次请求的接口地址中id是从数据库中返回的值,请求后返回的值再与数据库查询出来的值做对比。看看页面与数据库是否一致

 

 

  添加响应断言:

 8、对sql查到的10条数据都进行对比

1)添加计数器,设置:初始值是1,每次加1,变量为n

 

 2)添加循环控制器,设置循环10次

 

 9. 线程组下添加查看结果树

9. 点击运行,并在查看结果树中查看是否运行成功

posted on 2021-12-29 15:19  FanF  阅读(664)  评论(0)    收藏  举报

导航