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

时间:2021-01-08 00:32:25

jmeter测试中,测试数据一般和测试用例分离

测试数据一般可以使用csv构造,进行参数化

但也可以使用mysql等数据库构造

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

记录一下:

需求:如果sex是0,那么执行操作1

如果 sex是1,那么执行操作2

具体操作根据实际情况确定,这个例子用bash shell sample代替具体的操作

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

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

1.首先需要配置jmeter 的mysql源

添加JBDC connection Configuration

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

注意:

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

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

3.在debug sample 可以看到结果sexarray

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

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

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

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

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

sex_i

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

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

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

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

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

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

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

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

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

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

6 运行结果分析

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

因为数据库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就是我们每次需要的值

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

下次在详细写