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

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

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

0
分享至

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

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

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

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

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

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

<1>編寫大量的sql語句費(fèi)事耗力。

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

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

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

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

方式1

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

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

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

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

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

方式2

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

<1>代碼針對性太強(qiáng),沒有通用性。

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

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

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

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

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

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

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

<4>可配置化,不需要因?yàn)閿?shù)據(jù)需求修改而改動(dòng)程序代碼。

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

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

<1>長度是27;

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

<3>不能重復(fù);

<4>生成方式是隨機(jī)生成。

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

實(shí)踐方案整體介紹

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

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

json配置文件最外層有3個(gè)字段:

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

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

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

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

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

再來看一下roles字段:

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

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

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

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

最后看一下fields中的每一項(xiàng):

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

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

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

<1>FIXED(固定值)

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

<3>RANDAM(隨機(jī))或RANDAM_UNIQUE(隨機(jī)不重復(fù))

<4>ENUM(枚舉)

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

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

總結(jié)

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

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

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

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

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.

相關(guān)推薦
熱點(diǎn)推薦
疑將燃料當(dāng)白酒喝下,兩男子參加婚宴后中毒,仍在ICU搶救 當(dāng)?shù)夭块T已介入調(diào)查

疑將燃料當(dāng)白酒喝下,兩男子參加婚宴后中毒,仍在ICU搶救 當(dāng)?shù)夭块T已介入調(diào)查

紅星新聞
2026-02-28 19:13:34
征服中年女人,無需套路:兩顆真心,一生相守

征服中年女人,無需套路:兩顆真心,一生相守

青蘋果sht
2025-11-04 06:10:40
突發(fā)!以媒曝伊朗軍政兩大高官遭空襲身亡

突發(fā)!以媒曝伊朗軍政兩大高官遭空襲身亡

老馬拉車莫少裝
2026-02-28 19:39:55
海港遭暴擊!張琳芃鼻梁骨骨折,缺席超級杯,武磊蔣光太復(fù)出

海港遭暴擊!張琳芃鼻梁骨骨折,缺席超級杯,武磊蔣光太復(fù)出

奧拜爾
2026-02-28 12:38:10
日本教室的鐘表,一天24小時(shí)?

日本教室的鐘表,一天24小時(shí)?

日本物語
2026-02-28 20:34:30
巴基斯坦宣布展開“公開戰(zhàn)爭”,阿富汗發(fā)起大規(guī)模報(bào)復(fù),中方呼吁盡快?;稹氨苊馍`涂炭”

巴基斯坦宣布展開“公開戰(zhàn)爭”,阿富汗發(fā)起大規(guī)模報(bào)復(fù),中方呼吁盡快?;稹氨苊馍`涂炭”

環(huán)球網(wǎng)資訊
2026-02-28 06:57:18
快訊!外媒:伊朗軍方稱將給以色列和美國“一個(gè)歷史性教訓(xùn)”

快訊!外媒:伊朗軍方稱將給以色列和美國“一個(gè)歷史性教訓(xùn)”

環(huán)球網(wǎng)資訊
2026-02-28 18:54:09
47歲保姆坦言:可以做有償陪伴保姆,但必須要遵守3個(gè)約定

47歲保姆坦言:可以做有償陪伴保姆,但必須要遵守3個(gè)約定

孢木情感
2026-02-22 11:24:44
退役后在體育用品店工作,馬蒂厄:因?yàn)橐恍┦陆o我?guī)砹寺闊?>
    </a>
        <h3>
      <a href=懂球帝
2026-02-28 17:50:07
WTT新加坡大滿貫:國乒無緣男雙、女雙、混雙三項(xiàng)冠軍

WTT新加坡大滿貫:國乒無緣男雙、女雙、混雙三項(xiàng)冠軍

懂球帝
2026-02-28 23:10:47
關(guān)于保潔人員在母嬰室作出不文明行為的道歉聲明

關(guān)于保潔人員在母嬰室作出不文明行為的道歉聲明

大象新聞
2026-02-28 20:45:18
大媽花50萬買基金,賬號忘了15年,孫子找回看到余額,全家愣住了

大媽花50萬買基金,賬號忘了15年,孫子找回看到余額,全家愣住了

黃家湖的憂傷
2025-08-12 17:05:12
Token 出海,將中國電力賣給全世界

Token 出海,將中國電力賣給全世界

新浪財(cái)經(jīng)
2026-02-27 09:09:31
岳云鵬早期有多“卑微”,一張德云社舊相片,與君把酒話當(dāng)年!

岳云鵬早期有多“卑微”,一張德云社舊相片,與君把酒話當(dāng)年!

放開他讓wo來
2026-02-25 22:52:19
奈飛證實(shí)收到派拉蒙支付的28億美元終止費(fèi)

奈飛證實(shí)收到派拉蒙支付的28億美元終止費(fèi)

界面新聞
2026-02-28 08:30:06
34歲內(nèi)馬爾世界杯夢碎?曝安帥敲定18人名單無他!已帶了8位前鋒

34歲內(nèi)馬爾世界杯夢碎?曝安帥敲定18人名單無他!已帶了8位前鋒

我愛英超
2026-02-28 07:34:38
抱頭鼠竄塔利班求助安理會(huì),川普力挺巴基斯坦再狠一點(diǎn)!

抱頭鼠竄塔利班求助安理會(huì),川普力挺巴基斯坦再狠一點(diǎn)!

移光幻影
2026-02-28 13:25:17
新款奔馳S級國內(nèi)實(shí)車亮相,車標(biāo)很亮眼,智駕找Momenta幫忙

新款奔馳S級國內(nèi)實(shí)車亮相,車標(biāo)很亮眼,智駕找Momenta幫忙

熱點(diǎn)科技
2026-02-27 17:40:24
瓜迪奧拉:從我踢球時(shí)一直到現(xiàn)在,皇馬始終擁有最頂尖的球員

瓜迪奧拉:從我踢球時(shí)一直到現(xiàn)在,皇馬始終擁有最頂尖的球員

懂球帝
2026-02-28 07:59:07
被咬也不能吃!2017年江蘇女工上山采茶被咬傷,欲鋤死吃肉解氣

被咬也不能吃!2017年江蘇女工上山采茶被咬傷,欲鋤死吃肉解氣

萬象硬核本尊
2026-02-28 17:21:35
2026-03-01 01:39:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

狂攬1100億美元!OpenAI再創(chuàng)融資神話

頭條要聞

伊朗媒體公布反擊美軍軍事行動(dòng)結(jié)果

頭條要聞

伊朗媒體公布反擊美軍軍事行動(dòng)結(jié)果

體育要聞

球隊(duì)主力全報(bào)銷?頂風(fēng)擺爛演都不演了

娛樂要聞

周杰倫兒子正面照曝光,與父親好像

財(cái)經(jīng)要聞

沖突爆發(fā) 市場變天?

汽車要聞

嵐圖泰山黑武士版3月上市 搭載華為四激光智駕方案

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

房產(chǎn)
本地
藝術(shù)
公開課
軍事航空

房產(chǎn)要聞

濱江九小也來了!集齊海僑北+哈羅、寰島...江東教育要炸了!

本地新聞

津南好·四時(shí)總相宜

藝術(shù)要聞

驚艷!這位天使般的女子與油畫讓人心動(dòng)不已!

公開課

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

軍事要聞

美國以色列聯(lián)合襲擊伊朗 實(shí)時(shí)戰(zhàn)況

無障礙瀏覽 進(jìn)入關(guān)懷版