性能测试构造测试数据--初篇
MySQL
mysql构造测试数据分为两种:
1、自己写SQL语句,利用LR等工具进行对数据的插入
2、利用数据库本身的存储过程构造测试数据(单线程执行,服务器端执行减少了网络的消耗)
本篇主要说下第二种方式。
1 BEGIN 2 -- DECLARE 是用来定义变量的 3 DECLARE i INT DEFAULT 1; 4 DECLARE p_sex VARCHAR(10); 5 DECLARE p_course VARCHAR(10); 6 -- WHILE循环,以DO开始,以END WHILE结束 7 WHILE i<10000 8 DO 9 -- IF循环,以THEN开始,以END IF结束 10 IF i%2=0 THEN 11 SET p_sex = 'M'; 12 SET p_course = 'Math'; 13 ELSE 14 SET p_sex = 'W'; 15 SET p_course = 'Music'; 16 END IF; 17 -- CONCAT(str1,str2,...)拼接多个字符串 18 -- RAND()函数,随机返回一个(0,1)的小数 19 -- FLOOR()函数:取整函数 20 INSERT INTO teacher (cardNO,name,sex,age,course,created,modified) VALUES(i+1000000,CONCAT('teacher_',FLOOR(RAND()*10000)),p_sex,FLOOR(20+RAND()*10),p_course,NOW(),NOW()); 21 SET i = i+1; 22 END WHILE; 23 END
redis
redis的数据构造要比mysql的数据构造简单些。
具体方法如下:
1、导入jedis-2.1.0.jar包,在eclipse写构造数据的代码
2、把写好的代码导入LR进行参数化等
单个redis具体的代码如下:
1 package com.redis; 2 3 import redis.clients.jedis.Jedis; 4 5 public class redistest { 6 7 public static void main(String[] args){ 8 Jedis jedis = new Jedis("192.168.1.x",6379); //连接redis,可以放在LR的int里面 9 //jedis.auth(password:"xxx"); //连接设置的密码 10 jedis.set("hankai", "123456"); //具体需要构造的数据,可在LR中进行参数化等 11 System.out.println("ok"); 12 } 13 }
还有一种办法是先进行压力的测试直接从数据库读取数据,一边连接进redis查看dbsize的数量。