日常工作中,無論是在做功能測試、接口測試還是性能測試,經(jīng)常會(huì)有這么一個(gè)場景出現(xiàn),“那個(gè)誰誰誰,幫我加幾條訂單”,“那個(gè)某某某,給購物車增添幾個(gè)產(chǎn)品”,“在數(shù)據(jù)庫加幾百條數(shù)據(jù)”。。。等等,通常少數(shù)量,或者能夠人為解決的就人工解決,那么如果是數(shù)量比較大,數(shù)萬條數(shù)據(jù),總不可能一條一條進(jìn)行增添吧?
So,在造數(shù)據(jù)這塊通常能夠想到的便是數(shù)據(jù)庫通過“存儲(chǔ)過程”來進(jìn)行增添,或者外部程序or工具,Jmeter當(dāng)然也支持的,做的小Demo:
原件:JDBC連接池
計(jì)數(shù)器
JDBC Request

具體配置前面的文章已經(jīng)提到過,此處不再解釋

線程組加入循環(huán)次數(shù)
OK,100條數(shù)據(jù)批量增添,且主鍵不重復(fù)。
直接運(yùn)行


可以看到數(shù)據(jù)庫中的數(shù)據(jù)已經(jīng)增添成功了!
當(dāng)然,Jmeter總歸是測試工具進(jìn)行批量增添,Jmeter自身也比較耗機(jī)器性能,因此有些情況也需要使用存儲(chǔ)過程。
因此,再記一個(gè)批量造數(shù)據(jù)的第二種方法--“存儲(chǔ)過程批量造數(shù)據(jù)”:
DELIMITER $$
drop procedure if exists proc_auto_insertdata$$
create procedure proc_auto_insertdata ()
BEGIN
declare init_data ?int;
set init_data=1;
while init_data <=20000 DO
insert into users values (init_data,concat('用戶-',init_data));
??? set init_data=init_data+1;
end while;
END$$
歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處。 限于本人水平,如果文章和代碼有表述不當(dāng)之處,還請不吝賜教。 ---紫陌花間客