jmeter接口测试4-使用数据库mysql构造参数

 

jmeter测试中,测试数据通常和测试用例分离mysql

测试数据通常能够使用csv构造,进行参数化sql

但也能够使用mysql等数据库构造shell

方案一:一个线程循环调用mysql数据,不是并发,不适用于性能测试,更适合接口测试数据库

记录一下:bash

 需求:若是sex是0,那么执行操做1并发

           若是 sex是1,那么执行操做2函数

         具体操做根据实际状况肯定,这个例子用bash shell sample代替具体的操做性能

 

本地mysql数据库中我新建了 个database,取名jmeter,其中建立了user表测试

 

 

1.首先须要配置jmeter 的mysql源url

   添加JBDC connection Configuration

注意:

variablename for create pool:jetertest(jmetertest这个名字本身定义的,记住下面要使用)

max number of Conection JDBC链接池最大链接数

                             0:线程之间独立,不共享线程池

                             n :确保该值大于等于最大线程数

           

Database url:

                           jdbc:mysql://127.0.0.1:3306/YourDatabaseName?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

            

2.    建立一个    JDBC request

 

       3.在debug sample 能够看到结果sexarray

 

 

4. 循环遍历mysql返回的sexarray,使用循环控制器和计数器来实现

 

 (1)循环控制器,设置最大的循环次数,在debug sample能够看到一共有4条数据,也就是sex_#=4

(2)计数器 由于循环数据的格式为sex_1,sex_2,sex_3,sex_4,这里使用计数器来构造下划线后面的1,2,3,4

    sex_i

 (3)使用函数助手来构造sex_i这种须要的格式sex_i

   使用函数助手_v构造参数样式

   构造格式sex_${i},点击生成,将截图3上的字符串拷贝到if判断语句

 

5 使用条件控制器if来判断执行的请求

sex=0执行请求0 sex=1执行请求1

添加个bash shell sample 或者实际中须要的http请求等

 

 

6 运行结果分析

由于数据库mysql sex分别为0,1,1,1

那么对应的beanshell取样器0,1,1,1

注意这里始终都是一个线程循环执行,不能算真正的并发

 

 

 

 

方案2:使用mysql数据库构造并发的参数化

这里使用

 

select sex from user where id =${id}

将${id}中的id进行参数化

select sex from user where id=1; select sex from user where id=2; select sex from user where id =3;select sex from user where id =4;

这样每次就能够循环取到每个sex中的值,sex_1就是咱们每次须要的值

 下次在详细写

相关文章
相关标签/搜索