在软件测试过程中,造数据(即生成测试数据)是一个重要环节,它对于评估软件的性能、功能和稳定性至关重要。
最近遇到一个测试场景是只保留100万条环境数据记录、报警记录、操作记录等,此时就需要造大量环境设备采集的环境数据。造数据可手动写sql,页面添加,调接口生成等方式,但通过存储过程造数据效率最高。
以下是造环境数据的存储过程sql:
CREATE DEFINER=`root`@`%` PROCEDURE `add_envdata`(IN count INT,IN startDate DATETIME,IN store_id INT,IN data_type INT)
BEGIN
DECLARE i int DEFAULT 1;
DECLARE mydate date;
-- 开启事务
START TRANSACTION;
WHILE i<=count DO
INSERT INTO `zhxt_xbv2_1`.`a00_envdata` (id, `data_type`, `data_id`, `temp`, `hum`, `pm1`, `pm25`, `pm10`, `tvoc`, `co2`, `create_time`, `store_id`, `hcho`, `so2`, `illuminance`) VALUES (REPLACE(UUID(), '-', ''), floor(rand()*2)+1, 58, 20, 60, 000000.0, 000030.0, 000030.0, 000000.1, 000421.0, ADDDATE(startDate,INTERVAL i SECOND), floor(rand()*4)+1, 00000.00, 0.00, 0.00);
set i=i+1;
END WHILE;
-- 提交事务
COMMIT;
END
以下是造系统报警数据的存储过程sql:
CREATE DEFINER=`root`@`%` PROCEDURE `add_alarm`()
BEGIN
DECLARE i int DEFAULT 1;
-- 开启事务
START TRANSACTION;
WHILE i<1000001 DO
INSERT INTO `zhxt_xbv2_1`.`a00_alarm_info` (`alarm_id`, `parent_id`, `alarm_msg`, `video_flag`, `alarm_type`, `alarm_time`, `store_id`, `device_type`, `device_no`, `node_no`) VALUES (i+1, 0, '测试库房 高温低湿报警,温度:26.5℃,湿度:37%RH', 0, 9, now(), 1, 255, 1221, 1);
set i=i+1;
END WHILE;
-- 提交事务
COMMIT;
END
用存储过程造数据速度很快,屡试不爽!