給測試環境造大批量數據


測試中有需要大批量數據場景:一是准備大量測試數據,二是對數據庫執行壓測,本篇記錄三種造大批量數據的方法

 

 

目錄

1、執行存儲過程

2、使用python

3、使用jmeter

 

准備工作:

在數據庫中創建一張表,a唯一:

create TABLE mytest(a int(11) PRIMARY key,b int(11),c VARCHAR(20));

 本篇記錄生成10條數據方法,具體需要多少可以根據自己的需求設置循環次數

 

1、執行存儲過程

了解存儲過程格式可參考:https://www.cnblogs.com/weizhideweilai/p/8552021.html

描述:將數據庫中不可重復的字段定義成變量,每次執行插入后,將該變量加1

drop PROCEDURE if EXISTS newone;
CREATE PROCEDURE newone()
begin 
		DECLARE id1 int;   #定義一個變量
		set id1=1;         #初始化一個值
		while id1<=10
			do
				insert into mytest(a,b,c) VALUES (id1,1,"test");
				set id1=id1+1;
		end while;
end;

call newone();

 結果:

 

2、使用python

第一種:使用python生成數據,再復制到mysql中執行

python腳本:

for i in range(1,11):
    a = "(%s, 1, 'test'),"%int(i)
    with open("E://b.txt", "a") as fp:
        fp.write(a+"\n")

生成數據如下:

 修改結束符為分號,在mysql中執行插入:

insert into mytest(a,b,c) VALUES (1, 1, 'test'),
(2, 1, 'test'),
(3, 1, 'test'),
(4, 1, 'test'),
(5, 1, 'test'),
(6, 1, 'test'),
(7, 1, 'test'),
(8, 1, 'test'),
(9, 1, 'test'),
(10, 1, 'test');

 

第二種:直接使用python鏈接mysql,執行sql語句

參考https://www.cnblogs.com/weizhideweilai/p/13227049.html設置python連接mysql

在main函數中編寫腳本:

if __name__ == '__main__':
    insert_sql = "INSERT INTO mytest VALUES "
    insert_values = "".join(["(%s,  1, 'test'), \n"%int(i) for i in range(1,11)])
    # 拼接sql
    sql = insert_sql + insert_values[:-3]+";"
    print(sql)
    db = DbConnect(dbinfo, database="haveatry")
    db.execute(sql)
    db.close()

 

 

 

 

3、使用jmeter

首先使用jmeter連接mysql,參考:https://www.cnblogs.com/weizhideweilai/p/9320805.html

使用函數助手生成隨機數${__Random(1,20,${a})}

 

 填寫sql請求:

 

 

設置循環次數為10:

 

 

隨機數盡量設置大一點,避免重復,我這里范圍太小,會有重復值生成,導致部分請求執行失敗

 

 結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM