国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(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ù)生成主要難點大致可以歸結(jié)為以下幾個方面:

<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)過程中,對隨機的方式?jīng)]有精準的控制,往往造成以下結(jié)果,導致工具無法滿足實際需要:

<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ù)表結(jié)構(gòu)發(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ù)歸根結(jié)底是針對數(shù)據(jù)表的每個字段進行造數(shù),需要設計一套配置方法,可以精準的描述每一個表字段數(shù)據(jù)的生成規(guī)則和限制。然后通過工具解析規(guī)則,批量生成數(shù)據(jù)。

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

<1>長度是27;

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

<3>不能重復;

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

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

實踐方案整體介紹

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

我們使用以下的json結(jié)構(gòu)來描述整個數(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ù)轉(zhuǎn)換為對應的insert語句,生成sql腳本,以便根據(jù)需要執(zhí)行。

下邊看下connectionInfo和roles的具體內(nèi)容:

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提取不重復)

總結(jié)

本文提出了一種通過配置字段生成規(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ù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(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.

相關推薦
熱點推薦
離譜!iPhone 忠誠度飆到 96.4%,創(chuàng)歷史新高

離譜!iPhone 忠誠度飆到 96.4%,創(chuàng)歷史新高

新浪財經(jīng)
2026-04-18 18:47:00
“國營媒體是謊言工廠”,這位總理上臺就宣布關閉

“國營媒體是謊言工廠”,這位總理上臺就宣布關閉

法經(jīng)社
2026-04-19 12:34:54
比賽提前結(jié)束,WSBK荷蘭站第二輪正賽張雪機車斬獲第七名

比賽提前結(jié)束,WSBK荷蘭站第二輪正賽張雪機車斬獲第七名

澎湃新聞
2026-04-19 20:28:26
73歲天賜父親訴說太辛苦,大女兒來家里帶妹妹,太暖心了

73歲天賜父親訴說太辛苦,大女兒來家里帶妹妹,太暖心了

童叔不飆車
2026-04-19 11:09:23
伊朗稱其補充武器能力在?;鹌陂g超過戰(zhàn)前水平

伊朗稱其補充武器能力在?;鹌陂g超過戰(zhàn)前水平

新華社
2026-04-19 18:49:07
珠海家長:自家孩子趴桌睡,憑啥先給別人捐躺椅?官方回應

珠海家長:自家孩子趴桌睡,憑啥先給別人捐躺椅?官方回應

南方都市報
2026-04-17 15:48:13
以色列已失控?以軍炮打聯(lián)合國維和部隊,法軍犧牲,馬克龍表態(tài)

以色列已失控?以軍炮打聯(lián)合國維和部隊,法軍犧牲,馬克龍表態(tài)

來科點譜
2026-04-19 07:15:46
嚴肅辟謠:小鵬 GX沒有抄襲路虎攬勝!

嚴肅辟謠:小鵬 GX沒有抄襲路虎攬勝!

車市博覽
2026-04-19 16:06:34
4月19日晚間,多家上市公司發(fā)布重大利好利空好消息

4月19日晚間,多家上市公司發(fā)布重大利好利空好消息

A股數(shù)據(jù)表
2026-04-19 17:38:48
網(wǎng)友喊話讓何潤東代言霸王茶姬,此前他已接到多個商務合作,最近30天抖音漲粉近200萬,品牌客服回應

網(wǎng)友喊話讓何潤東代言霸王茶姬,此前他已接到多個商務合作,最近30天抖音漲粉近200萬,品牌客服回應

極目新聞
2026-04-19 17:19:41
4月17日,日本開始賭國運了

4月17日,日本開始賭國運了

閑閑碎
2026-04-18 20:34:49
東風 - 31 泄密大案:總工程師被美色策反,國之重器險遭滅頂之災

東風 - 31 泄密大案:總工程師被美色策反,國之重器險遭滅頂之災

干史人
2026-04-18 13:44:12
教育部剛通知!9月起上學新規(guī)全覆蓋,普通家庭孩子上學迎公平

教育部剛通知!9月起上學新規(guī)全覆蓋,普通家庭孩子上學迎公平

復轉(zhuǎn)這些年
2026-04-18 11:43:46
上品+草橋店月底閉店,北京僅剩3家門店!曾經(jīng)周末擠滿人…

上品+草橋店月底閉店,北京僅剩3家門店!曾經(jīng)周末擠滿人…

北京商報
2026-04-19 18:23:27
恒大暴雷之前,許家印為什么沒有跑?

恒大暴雷之前,許家印為什么沒有跑?

擔撲
2026-04-19 13:40:25
太唏噓!小楊哥新加坡近照流出,憔悴到不像本人

太唏噓!小楊哥新加坡近照流出,憔悴到不像本人

雷科技
2026-04-17 18:41:25
比黃金還稀缺!比爾蓋茨、社保重倉硬科技龍頭,全是高成長+高roe

比黃金還稀缺!比爾蓋茨、社保重倉硬科技龍頭,全是高成長+高roe

長風價值掘金
2026-04-19 11:03:37
雷來了,周末24家公司利空,4家被st,2家被立案調(diào)查,18家減持!

雷來了,周末24家公司利空,4家被st,2家被立案調(diào)查,18家減持!

夜深愛雜談
2026-04-19 17:02:12
萬達電影,明天改名!王健林時代落幕

萬達電影,明天改名!王健林時代落幕

新民晚報
2026-04-19 19:54:05
中俄關系比傳統(tǒng)“聯(lián)盟”更深厚、更可靠

中俄關系比傳統(tǒng)“聯(lián)盟”更深厚、更可靠

看看新聞Knews
2026-04-19 08:36:10
2026-04-19 21:16:49
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1558文章數(shù) 13260關注度
往期回顧 全部

科技要聞

50分26秒破人類紀錄!300臺機器人狂飆半馬

頭條要聞

半年下沉22厘米 女子家中坐擁價值上億別墅卻沒法住人

頭條要聞

半年下沉22厘米 女子家中坐擁價值上億別墅卻沒法住人

體育要聞

湖人1比0火箭:老詹比烏度卡像教練

娛樂要聞

張?zhí)鞇墼u論區(qū)淪陷!被曝卷入小三風波

財經(jīng)要聞

華誼兄弟,8年虧光85億

汽車要聞

29分鐘大定破萬 極氪8X為什么這么多人買?

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

健康
藝術(shù)
數(shù)碼
公開課
軍事航空

干細胞抗衰4大誤區(qū),90%的人都中招

藝術(shù)要聞

俄羅斯畫家季莫申科 小幅風景油畫寫生(二)

數(shù)碼要聞

何剛曬華為WATCH FIT 5 Pro手表真機,明日亮相

公開課

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

軍事要聞

伊朗逼退美掃雷艇:美方求給15分鐘撤退

無障礙瀏覽 進入關懷版