01.18 「數據庫」新增百萬測試數據之二-程序語言+導入功能

還是同樣的場景,我們來講第二種新增百萬數據的方法。

場景

檸檬班的APP上線了,現需要一百萬個學員的信息進行壓力測試,那麼數據從哪裡來呢?直接找開發人員幫忙?可能會被鄙視!一條一條去insert?嗯,算了下大概需要20年!

不用怕,Happy老師接下來教你一百種方法高效創建100萬數據!

下面是檸檬班APP中的一個學生成績表,

「數據庫」新增百萬測試數據之二-程序語言+導入功能

表結構很簡單,id是主鍵,自增長唯一標識一個學生,sName是檸檬班每個學生的暱稱,phone是手機號碼,還有一個讓我們既愛又恨的分數字段score。附建表SQL:

drop table if exists tb_lemon_student_score;create table tb_lemon_student_score(
id int primary key auto_increment,
sName varchar(50),
phone varchar(11),
score tinyint(1));

第二種方法:程序語言生成數據,使用工具進行導入

我們的思路是這樣的,通過程序語言生成約定規則的百萬數據,保存到文本文件中,再使用Navicat For MySQL強大的導入功能,將百萬數據導入到數據庫中

1:JAVA編程:寫一個生成數據的應用程序

打開Eclipse,編寫如下代碼:

import java.util.Random;public class BatchInsertTest {
public static void main(String[] args) {
Random random = new Random();
for (int i = 1; i <= 1000000; i++) {
// 學員的id
int id = i;
// 學員的姓名
String sName = "s_" + i;
// 手機號碼
long mobile = 13000000000L + i;
// 分數
int score = random.nextInt(100);
System.out.println(id + "|" + sName + "|" + mobile + "|" + score);
}
}}
程序說明:程序使用for循環,向控制檯循環輸出100萬條學生信息,每行表示一個學生信息,規則為:id從1到100w,sName為s_拼接上id值,手機號13000000000+id值,分數0到100隨機整數,各個字段間採用分隔符“|”進行分割(這個分隔符在導入數據到數據庫時有用)。

運行該JAVA應用程序,如圖所示:

「數據庫」新增百萬測試數據之二-程序語言+導入功能

程序可以正常向控制檯輸出我們要求的數據,但是行數是有限的,默認Eclipse控制檯顯示行數是有限的,這個行數是可以調整的,但是百萬行文本數據的拷貝這是非常耗資源的,所以介紹另外一種更高效的方法,可以直接把我們控制檯的輸出全部保存到指定的文件中。

2:將程序輸出保存到指定文件

1)右鍵JAVA類->選擇Run As ->選擇Run Configurations

「數據庫」新增百萬測試數據之二-程序語言+導入功能

2)選擇Run Configurations界面的Common項->勾選Output File->選擇File System設置保存文件的位置,這裡設置為桌面的data.txt文件:C:\\Users\\tommy\\Desktop\\data.txt

「數據庫」新增百萬測試數據之二-程序語言+導入功能

3)再次運行程序,能夠看到在桌面上生成了一個data.txt文件,打開文件內容如下,一共100萬行:

「數據庫」新增百萬測試數據之二-程序語言+導入功能

3:Navicat For MySQL導入文本數據

右鍵數據表,選擇導入嚮導,選擇導入類型為txt,進行一系列的導入設置後,開始導入:

「數據庫」新增百萬測試數據之二-程序語言+導入功能

注意:尤其注意要設置中間的的分隔符為豎線"|"大概一分鐘後,導入結束。

最後,select抽查,數據已經符合我們的要求了

「數據庫」新增百萬測試數據之二-程序語言+導入功能

「數據庫」新增百萬測試數據之二-程序語言+導入功能

========

OK,今天的分享就到這裡了,

學完對你有沒有幫助呢?

建議大家可以去實戰一下,如果過程中有什麼問題,

歡迎大家提問,討論交流學習

本週的公開課全部都是JAVA自動化方面的

1.web自動化系列課之--火狐下自動化環境搭建(週二下午3點)

2.web自動化系列課之--元素定位方式(非xpath方式)(週三下午3點)

3.web自動化系列課之--元素定位xpath方式 (週四下午3點)

4.web自動化系列課之--testng數據提供者技術 (週五下午3點)

5.web自動化系列課之--結合poi技術實現數據驅動 (週五晚上8點)

不要錯過了哦


分享到:


相關文章: