在系统性能测试中,常常会使用到存储过程往数据库中灌入大量的数据,用于模拟系统在真实的环境下的性能,以下将分享在评价库添加1w条数据的脚本。
下图为表结构:
declare
wid integer;--评价ID
SERVICE_MANNER integer;--服务态度得分,取值范围1~5
SERVICE_SPEED integer;--办事速度得分
TOTAL_SATISFY integer;--整体满意度得分
EVENT_INTEGRITY integer; --事项完整度得分
MARK number(2,1);--总平均评分,取一位小数
Item_Wid VARCHAR2(100);--事项ID
user_id integer;--用户ID
user_name1 varchar(20);--用户姓名
time1 varchar(32);--评价提交时间
nums integer := 0; --计数器
begin
while nums <10--循环10次
loop
SERVICE_MANNER := trunc(dbms_random.value(1,6));--获取1~5之间的一个随机整数
SERVICE_SPEED := trunc(dbms_random.value(1,6));
TOTAL_SATISFY := trunc(dbms_random.value(1,6));
EVENT_INTEGRITY := trunc(dbms_random.value(1,6));
MARK := (SERVICE_MANNER+SERVICE_SPEED+TOTAL_SATISFY+EVENT_INTEGRITY)/4;--求评价平均值
--随机获取一条事项ID
select wid into item_wid from (select wid from T_SIM_ITEM_INFO order by dbms_random.value) where rownum <= 1;
--获取new_casp_minos用户下的T_TF_USER表中的wid字段并赋值给user_id
select wid into user_id from (select * from new_casp_minos.T_TF_USER order by dbms_random.value) where rownum <= 1;
--获取new_casp_minos用户下的T_TF_USER表中的user_name字段并赋值给user_name1
select user_name into user_name1 from new_casp_minos.T_TF_USER where wid = user_id;
--获取2021.03.01至2021.06.23之间的一个随机时间并赋值给time1
SELECT to_date(TRUNC(DBMS_RANDOM.VALUE(to_number(to_char(to_date('20210301','yyyymmdd'),'J')),to_number(to_char(to_date('20210623','yyyymmdd') + 1,'J')))),'J')
+ (TRUNC(DBMS_RANDOM.VALUE(9,17))*3600+TRUNC(DBMS_RANDOM.VALUE(0,60))*60
+ TRUNC(DBMS_RANDOM.VALUE(0,60)))/(24*60*60)
into time1
FROM dual;
--插入数据
insert into T_SIM_ITEM_APPRAISE(wid,Item_Wid,SERVICE_MANNER,SERVICE_SPEED,TOTAL_SATISFY,EVENT_INTEGRITY,MARK,USER_ID,USER_NAME,CREATE_TIME,IS_DELETED,IS_HIDDEN)
values (989789001+nums,item_wid,SERVICE_MANNER,SERVICE_SPEED,TOTAL_SATISFY,EVENT_INTEGRITY,MARK,user_id,user_name1,time1,0,0);
nums := nums+1;--次数加一
end loop;
end;