亚洲中文字幕乱码亚洲-蜜桃成熟视频在线观看-免费中文字幕视频在线-中国五十路熟妇洗澡视频-亚洲av伊人啪啪c-国产精品成人一区二区-国产自拍视频一区在线观看-成人一区不卡二区三区四区-亚洲情精品中文字幕99在线

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

測試人員如何在測試環(huán)境數(shù)據(jù)庫批量生成測試數(shù)據(jù)?方案分享

0
分享至

測試人員為了測試某個特定場景,往往需要在測試環(huán)境數(shù)據(jù)庫中插入特定的測試數(shù)據(jù)來滿足需求;

性能測試時,常需要在測試環(huán)境生成大量可用測試數(shù)據(jù)來支持性能測試;

建設持續(xù)集成持續(xù)交付體系時,我們往往也需要在測試環(huán)境生成測試數(shù)據(jù)來保障自動化用例可以持續(xù)穩(wěn)定的運行。

因此,如何在測試數(shù)據(jù)庫批量生成大量可用的測試數(shù)據(jù)就成為了測試領域一個關鍵而難解決的問題,本文就來講講測試數(shù)據(jù)批量生成工具的一種實現(xiàn)方案。

測試數(shù)據(jù)生成的難點

測試數(shù)據(jù)生成主要難點大致可以歸結為以下幾個方面:

<1>編寫大量的sql語句費事耗力。

<2>由于主鍵、外鍵和業(yè)務本身的邏輯約束,很難通過寫sql一次性大批量插入測試數(shù)據(jù),往往的情況是需要對sql的一些關鍵字段進行一些修改,如對id字段進行修改避免重復。

<3>造數(shù)sql腳本復用性差。

傳統(tǒng)數(shù)據(jù)生成工具的問題

傳統(tǒng)批量數(shù)據(jù)生成工具基本思路有兩大類:

方式1

通過程序隨機的生成測試數(shù)據(jù),而實際的實現(xiàn)過程中,對隨機的方式沒有精準的控制,往往造成以下結果,導致工具無法滿足實際需要:

<1>數(shù)據(jù)隨機性太大,造出來的數(shù)據(jù)和真實數(shù)據(jù)差別太大。

<2>隨機生成的數(shù)據(jù)往往存在大量不可用的臟數(shù)據(jù)。

<3>很難解決多表關聯(lián)的數(shù)據(jù)生成。

<4>生成的數(shù)據(jù)往往無法滿足特定場景的數(shù)據(jù)要求。

方式2

精準的針對某個特定場景編寫代碼造數(shù),這種方式的缺點也很明顯:

<1>代碼針對性太強,沒有通用性。

<2>對測試人員代碼能力要求高。

<3>業(yè)務邏輯或數(shù)據(jù)表結構發(fā)生變化,需要修改代碼,成本高。

測試數(shù)據(jù)批量生成工具設計思路

能夠真正滿足實際需要的數(shù)據(jù)生成工具,應當滿足以下要求:

<1>有較好的通用性,不需要關心具體的業(yè)務或針對具體的系統(tǒng)。

<2>對數(shù)據(jù)隨機生成有精準的控制能力,可以控制生成字段的長度、類型、能否重復、由什么字符組成等等。

<3>必須解決表關聯(lián)數(shù)據(jù)生成的問題。

<4>可配置化,不需要因為數(shù)據(jù)需求修改而改動程序代碼。

本文介紹的工具實現(xiàn)方案遵循的基本思路是:在數(shù)據(jù)庫造數(shù)歸根結底是針對數(shù)據(jù)表的每個字段進行造數(shù),需要設計一套配置方法,可以精準的描述每一個表字段數(shù)據(jù)的生成規(guī)則和限制。然后通過工具解析規(guī)則,批量生成數(shù)據(jù)。

舉一個簡單的例子,有一張數(shù)據(jù)表的主鍵是一個長度固定為27位的數(shù)字,作為主鍵它不能重復。這時候對于這個字段的生成規(guī)則就有4條:

<1>長度是27;

<2>由純數(shù)字組成;

<3>不能重復;

<4>生成方式是隨機生成。

我們只需要將每一張表的每一個字段的數(shù)據(jù)生成規(guī)則都拆解成上邊例子一樣,然后用特定的格式描述出來,利用程序解析這些規(guī)則,就可以批量的生成符合要求的測試數(shù)據(jù)了。

實踐方案整體介紹

通過上一節(jié)的例子不難看出,按照本文介紹的方式設計實現(xiàn)批量造數(shù),核心重點在于如何用固定的,程序可解析的格式來描述數(shù)據(jù)生成的規(guī)則。下邊就詳細介紹一種方式。

我們使用以下的json結構來描述整個數(shù)據(jù)生成的規(guī)則:

json配置文件最外層有3個字段:

connectionInfo:描述數(shù)據(jù)庫鏈接信息,將要造數(shù)的目標數(shù)據(jù)信息寫在這里。

roles:這是一個json數(shù)據(jù),用于描述多張表的數(shù)據(jù)生成規(guī)則,有幾張表,這個數(shù)組中就有幾個元素。

sqlScriptNmae:最終生成的sql腳本名稱,本文介紹的工具不是直接將生成的數(shù)據(jù)寫入數(shù)據(jù)庫,而是將生成的數(shù)據(jù)轉換為對應的insert語句,生成sql腳本,以便根據(jù)需要執(zhí)行。

下邊看下connectionInfo和roles的具體內容:

connectionInfo包括數(shù)據(jù)庫類型、host、端口、用戶名、密碼、連接的數(shù)據(jù)庫名稱6個字段,用于描述造數(shù)目標數(shù)據(jù)庫鏈接信息。

再來看一下roles字段:

roles描述數(shù)據(jù)生成規(guī)則,roles是一個數(shù)組,數(shù)組中的每一項描述一張表的數(shù)據(jù)生成規(guī)則,roles中的每一項有3個字段:

tableName:當前配置規(guī)則是哪張表的。

size:想要一次性批量生成數(shù)據(jù)的數(shù)量,如上圖一次為tableA表生成100條數(shù)據(jù)。

fields:一個json數(shù)據(jù),里邊的每一項對應tableA的一個字段,描述這個字段的詳細生成規(guī)則。

最后看一下fields中的每一項:

每一個字段的生成規(guī)則,都是用上圖中的12個字段進行描述,字段說明如下:

字段規(guī)則詳細說明

上一節(jié)看到字段的生成方式總共有9種,本節(jié)詳細說明這9種生成方式和它們的配合字段如何描述生成規(guī)則。

<1>FIXED(固定值)

<2>RELATED(關聯(lián))

<3>RANDAM(隨機)或RANDAM_UNIQUE(隨機不重復)

<4>ENUM(枚舉)

<5>NUMRANGE(數(shù)字范圍)或NUMRANGE_UNIQUE(數(shù)字范圍不重復)

<6>SQL(sql提取)或SQL_UNIQUE(sql提取不重復)

總結

本文提出了一種通過配置字段生成規(guī)則來精準批量的生成測試數(shù)據(jù)的方案。這種方案增加了數(shù)據(jù)生成的通用性,同時能在較大程度上滿足對測試數(shù)據(jù)精準性的要求。

但本文舉例的實踐方案也只是這種思路的一個具體實踐,相比較方案本身,筆者認為這種規(guī)則配置的數(shù)據(jù)生成思路更加重要。希望這篇文章可以在批量測試數(shù)據(jù)自動生成方面為你和你的團隊提供參考。

最后:在我的V :atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構開發(fā)測試框架、性能測試、安全測試等。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
小S家兩女兒合體拍照!想走姨媽大S藝術道路,卻被玥兒一張近照秒殺

小S家兩女兒合體拍照!想走姨媽大S藝術道路,卻被玥兒一張近照秒殺

八卦王者
2026-04-18 16:39:30
預售價近40萬元的小鵬,把所有人都忽悠了!

預售價近40萬元的小鵬,把所有人都忽悠了!

新浪財經
2026-04-19 02:52:50
醫(yī)生呼吁:再高的血糖,沒有這幾種情況,不必過度緊張,安心吃喝

醫(yī)生呼吁:再高的血糖,沒有這幾種情況,不必過度緊張,安心吃喝

寶哥精彩賽事
2026-04-19 22:12:51
賴清德暴露真面目、不敢面對鄭麗文!轉頭發(fā)現(xiàn):綠營大咖們變臉了

賴清德暴露真面目、不敢面對鄭麗文!轉頭發(fā)現(xiàn):綠營大咖們變臉了

野史日記
2026-04-19 09:10:18
為什么大家都說這個熱巴是假的?細思極恐,真的熱巴去哪里了?

為什么大家都說這個熱巴是假的?細思極恐,真的熱巴去哪里了?

娛樂小丸子
2026-03-30 09:53:37
腸道是否長息肉,會有4個提示,上廁所時要記的多看一眼!

腸道是否長息肉,會有4個提示,上廁所時要記的多看一眼!

芹姐說生活
2026-04-19 23:32:30
多名院士研究發(fā)現(xiàn):吃一把花生,就等于吃了兩勺黃油,真的假的?

多名院士研究發(fā)現(xiàn):吃一把花生,就等于吃了兩勺黃油,真的假的?

蜉蝣說
2026-04-20 10:18:20
超級大爆冷!狀元秀空砍39分,可能要被黑八!

超級大爆冷!狀元秀空砍39分,可能要被黑八!

德譯洋洋
2026-04-20 10:38:11
廣東一酒店女子拆快遞誤甩飛美工刀打到同事脖頸,酒店:沒有劃到脖子,不是故意的

廣東一酒店女子拆快遞誤甩飛美工刀打到同事脖頸,酒店:沒有劃到脖子,不是故意的

瀟湘晨報
2026-04-19 20:49:12
“最快女護士”張水華云南石屏馬拉松退賽,本人回應:不舒服就沒跑;其辭職后已拿下兩個冠軍,獲折現(xiàn)超20萬獎勵

“最快女護士”張水華云南石屏馬拉松退賽,本人回應:不舒服就沒跑;其辭職后已拿下兩個冠軍,獲折現(xiàn)超20萬獎勵

極目新聞
2026-04-19 12:01:08
誰也沒料到!杜蘭特傷情反轉,烏度卡一招,火箭季后賽懸了

誰也沒料到!杜蘭特傷情反轉,烏度卡一招,火箭季后賽懸了

林子說事
2026-04-19 16:57:01
伊朗斷腿最高領袖發(fā)威?停火期內突下戰(zhàn)書:向世界展示敵人軟弱!

伊朗斷腿最高領袖發(fā)威?停火期內突下戰(zhàn)書:向世界展示敵人軟弱!

清晨的世界
2026-04-20 09:38:52
魏建軍提議私家車10年后再年檢,用OBD和車聯(lián)網(wǎng)替代實地檢測

魏建軍提議私家車10年后再年檢,用OBD和車聯(lián)網(wǎng)替代實地檢測

快科技
2026-04-19 08:19:03
笑得肚疼!你們都開始顯老到什么程度了?網(wǎng)友:我開始吃桃酥了!

笑得肚疼!你們都開始顯老到什么程度了?網(wǎng)友:我開始吃桃酥了!

夜深愛雜談
2026-04-18 19:25:24
徐明聯(lián)手本拉登家族,400億硬剛中石油,帝國崩塌

徐明聯(lián)手本拉登家族,400億硬剛中石油,帝國崩塌

圓夢的小老頭
2026-04-17 23:52:41
震驚!月薪3000、26歲株洲女子征婚,要對方月入2.5萬、存款200萬

震驚!月薪3000、26歲株洲女子征婚,要對方月入2.5萬、存款200萬

火山詩話
2026-04-18 13:20:01
直接給島內孩子們看!這應該是鄭麗文從大陸帶回最珍貴禮物!

直接給島內孩子們看!這應該是鄭麗文從大陸帶回最珍貴禮物!

阿龍聊軍事
2026-04-18 21:26:21
隨著曼城2-1槍手,利物浦2-1,英超最新排名出爐!槍手70分領跑

隨著曼城2-1槍手,利物浦2-1,英超最新排名出爐!槍手70分領跑

薇說體育
2026-04-20 10:52:44
半場7-2!丁俊暉雙喜臨門:世錦賽第23勝將到手,1成就歷史第8!

半場7-2!丁俊暉雙喜臨門:世錦賽第23勝將到手,1成就歷史第8!

劉姚堯的文字城堡
2026-04-20 08:01:41
戀愛腦的女人能有多離譜?看完評論區(qū)我愣住了,這些事真的存在嗎

戀愛腦的女人能有多離譜?看完評論區(qū)我愣住了,這些事真的存在嗎

夜深愛雜談
2026-04-19 09:56:53
2026-04-20 11:27:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1558文章數(shù) 13260關注度
往期回顧 全部

科技要聞

藍色起源一級火箭完美回收 客戶衛(wèi)星未入軌

頭條要聞

失蹤女老板被找到 嫌犯曾改名整容還催警察"還我清白"

頭條要聞

失蹤女老板被找到 嫌犯曾改名整容還催警察"還我清白"

體育要聞

七大獎項候選官宣!文班或全票DPOY

娛樂要聞

章子怡!增重20斤素顏拍新片

財經要聞

月之暗面IPO迷局

汽車要聞

外觀非常驚艷 全新一代寶馬6系有望回歸

態(tài)度原創(chuàng)

旅游
房產
游戲
親子
公開課

旅游要聞

去藝術現(xiàn)場,赴一次深度游

房產要聞

官宣簽約最強城更!海口樓市,突然殺入神秘房企!

大司馬稱不想再玩《PUBG》:打的菜還總被噴!

親子要聞

普通家庭養(yǎng)娃補鈣,90% 家長都補錯了!

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版