自動(dòng)化測(cè)試如何準(zhǔn)備測(cè)試數(shù)據(jù)
其實(shí)大部分類型的測(cè)試都需要去準(zhǔn)備測(cè)試數(shù)據(jù)坏快。
手工測(cè)試:一些基礎(chǔ)數(shù)據(jù)草巡,比如配置數(shù)據(jù)等等是需要去準(zhǔn)備的属铁;
自動(dòng)化測(cè)試:基礎(chǔ)需要準(zhǔn)備眠寿,現(xiàn)有數(shù)據(jù),動(dòng)態(tài)運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù)是需要準(zhǔn)備的焦蘑;
性能測(cè)試:跟自動(dòng)化測(cè)試差不多盯拱;
測(cè)試數(shù)據(jù)的分類
基礎(chǔ)數(shù)據(jù),比如一些內(nèi)容管理系統(tǒng)會(huì)配置站點(diǎn)的標(biāo)題例嘱,友情鏈接之類的基礎(chǔ)配置數(shù)據(jù)
存量數(shù)據(jù)狡逢,也就是現(xiàn)有數(shù)據(jù)。比如在測(cè)試一些電商站點(diǎn)的時(shí)候會(huì)提前插入一些商品信息拼卵,類目信息物流信息等
動(dòng)態(tài)數(shù)據(jù)奢浑,也可以叫做session數(shù)據(jù)。比如在測(cè)試電商站點(diǎn)的發(fā)布商品功能的時(shí)候腋腮,往往會(huì)去創(chuàng)建一些新的商品
我們可以想象到殷费,基礎(chǔ)數(shù)據(jù)其實(shí)可以比較容易的跟生產(chǎn)環(huán)境保持一致。測(cè)試環(huán)境的存量數(shù)據(jù)會(huì)比線上環(huán)境要少低葫,測(cè)試環(huán)境的動(dòng)態(tài)數(shù)據(jù)可能不會(huì)像線上環(huán)境那樣真實(shí)。
這里就需要討論測(cè)試數(shù)據(jù)的量級(jí)和真實(shí)性的問題了仍律。
測(cè)試數(shù)據(jù)的量級(jí)
大部分情況下嘿悬,測(cè)試數(shù)據(jù)的量級(jí)是沒有產(chǎn)生環(huán)境多的。所以測(cè)試數(shù)據(jù)可以是真實(shí)數(shù)據(jù)的子集水泉。
如果有類生產(chǎn)環(huán)境或預(yù)發(fā)布環(huán)境的話善涨,可以盡量保持跟線上數(shù)據(jù)相當(dāng)?shù)牧考?jí)。這樣一些測(cè)試環(huán)境不好測(cè)出來的由于數(shù)據(jù)量導(dǎo)致的問題可以在預(yù)發(fā)布環(huán)境測(cè)出來草则。
測(cè)試數(shù)據(jù)的真實(shí)性
我們測(cè)試環(huán)境的數(shù)據(jù)往往跟真實(shí)用戶產(chǎn)生的數(shù)據(jù)是有差異的钢拧。比如測(cè)試論壇系統(tǒng)時(shí),我們?cè)谔永锏馁N圖可能往往就那么幾張炕横,尺寸也是恰到好處源内,而線上用戶的貼圖可能是五花八門,從而導(dǎo)致意想不到的問題份殿。
如何準(zhǔn)備基礎(chǔ)和存量數(shù)據(jù)
基礎(chǔ)和存量數(shù)據(jù)與線上環(huán)境越一致膜钓,測(cè)試中發(fā)現(xiàn)問題的概率可能就越高嗽交。一般來說,可以有下面的策略
全量+脫敏策略颂斜。直接定期把線上的數(shù)據(jù)做脫敏夫壁,導(dǎo)入到測(cè)試環(huán)境。這里脫敏是必選沃疮,數(shù)據(jù)泄漏導(dǎo)致的問題嚴(yán)重程度往往比普通的線上bug要嚴(yán)重得多盒让。
定量+脫敏策略。只上一些線上數(shù)據(jù)司蔬,比如只在線上拉1000個(gè)商品邑茄,1000個(gè)用戶信息,然后做脫敏葱她。這里技術(shù)實(shí)現(xiàn)難度會(huì)比較高撩扒,畢竟要把關(guān)聯(lián)表理順。
爬蟲策略吨些。如果是新項(xiàng)目/產(chǎn)品的話搓谆,線上沒有存量數(shù)據(jù)可以導(dǎo),那么可能要去友商那里爬一些數(shù)據(jù)豪墅,導(dǎo)到測(cè)環(huán)境做測(cè)試泉手。比如做一個(gè)旅游站點(diǎn),開始的時(shí)候是沒有用戶的游記的偶器,這時(shí)候就要去類似站點(diǎn)爬一點(diǎn)來測(cè)試了斩萌。
生成動(dòng)態(tài)數(shù)據(jù)。如果線上沒有數(shù)據(jù)屏轰,友商也沒有的爬颊郎,那么就要人肉或者自動(dòng)化的方式去產(chǎn)生一些數(shù)據(jù)了。系統(tǒng)簡(jiǎn)單的話可以用sql去跑霎苗,復(fù)雜點(diǎn)的話可能要調(diào)用接口或者用自動(dòng)化的方式去生成姆吭。實(shí)在沒轍的時(shí)候也可以手動(dòng)去造一些數(shù)據(jù)。
關(guān)于動(dòng)態(tài)數(shù)據(jù)
大家在做自動(dòng)化或者接口測(cè)試后往往會(huì)大量的去產(chǎn)生動(dòng)態(tài)數(shù)據(jù)唁盏。那么問題就來了内狸。
這些數(shù)據(jù)存在哪里?什么意思呢厘擂?如果我們需要用自動(dòng)化的方式去創(chuàng)建一個(gè)商品昆淡,那么商品的信息,圖片地址該放在哪里呢刽严?其實(shí)這是個(gè)持久化的問題了昂灵。
放文件里。文件格式有很多可以選的,比如xml/csv/json/yaml等倔既。不過不推薦excel恕曲,畢竟是私有格式,沒有太強(qiáng)的擴(kuò)展性渤涌。而且excel一升級(jí)佩谣,你的解析代碼和庫也可能要跟著改一次,嗯实蓬,強(qiáng)烈不推薦了茸俭。
放數(shù)據(jù)庫里。爬一些商品的信息存到數(shù)據(jù)庫里安皱,然后讀數(shù)據(jù)庫也是很好的辦法调鬓,還能熟悉一下sql的用法,面試經(jīng)常問到酌伊,另外可以用數(shù)據(jù)庫的事務(wù)機(jī)制來清理測(cè)試數(shù)據(jù)
在代碼里動(dòng)態(tài)生成腾窝。比如動(dòng)態(tài)隨機(jī)生成用戶的姓名啊性別和年齡之類的
數(shù)據(jù)生成之后就面臨著一個(gè)清理的問題。清理問題實(shí)際上數(shù)據(jù)生命周期的問題居砖,測(cè)試數(shù)據(jù)應(yīng)該有下面一些生命周期吧
短期數(shù)據(jù)虹脯。用例完了就刪掉的數(shù)據(jù),一般線上做性能測(cè)試的數(shù)據(jù)都是這樣的短期數(shù)據(jù)
長(zhǎng)期數(shù)據(jù)奏候。用例跑出來的數(shù)據(jù)放在那里也沒事循集,可以一直存在。這種數(shù)據(jù)太多有時(shí)候會(huì)影響測(cè)試環(huán)境的性能
自動(dòng)化測(cè)試跑出的數(shù)據(jù)建議做短期數(shù)據(jù)蔗草,跑出來想辦法清掉咒彤,因?yàn)樽詣?dòng)化跑的頻率其實(shí)可以很高,每次都產(chǎn)生一堆數(shù)據(jù)的話數(shù)據(jù)的量級(jí)可能會(huì)在短期變得很大咒精,對(duì)測(cè)試環(huán)境的性能造成影響镶柱。