Time will tell.

閑言
大部分型別的測驗都需要去準備測驗資料,
- 手工測驗:一些基礎資料,比如配置資料等等是需要去準備的;
- 自動化測驗:基礎需要準備,現有資料,動態運行時產生的資料是需要準備的;
- 性能測驗:跟自動化測驗差不多;
這里就牽扯到了一些關于資料的概念了,
測驗資料的分類
1、基礎資料,比如一些內容管理系統會配置站點的標題,友情鏈接之類的基礎配置資料;
2、存量資料,也就是現有資料,比如在測驗一些電商站點的時候會提前插入一些商品資訊,類目資訊物流資訊等;
3、動態資料,也可以叫做session資料,比如在測驗電商站點的發布商品功能的時候,往往會去創建一些新的商品,
我們可以想象到,基礎資料其實可以比較容易的跟生產環境保持一致,測驗環境的存量資料會比線上環境要少,測驗環境的動態資料可能不會像線上環境那樣真實,
這里就需要討論測驗資料的量級和真實性的問題了,
測驗資料的量級
大部分情況下,測驗資料的量級是沒有產生環境多的,所以測驗資料可以是真實資料的子集,
如果有類生產環境或預發布環境的話,可以盡量保持跟線上資料相當的量級,這樣一些測驗環境不好測出來的由于資料量導致的問題可以在預發布環境測出來,
測驗資料的真實性
我們測驗環境的資料往往跟真實用戶產生的資料是有差異的,比如測驗論壇系統時,我們在帖子里的貼圖可能往往就那么幾張,尺寸也是恰到好處,而線上用戶的貼圖可能是五花八門,從而導致意想不到的問題,
如何準備基礎和存量資料
基礎和存量資料與線上環境越一致,測驗中發現問題的概率可能就越高,一般來說,可以有下面的策略:
1、全量+脫敏策略
直接定期把線上的資料做脫敏,匯入到測驗環境,這里脫敏是必選,資料泄漏導致的問題嚴重程度往往比普通的線上bug要嚴重得多,
2、定量+脫敏策略
只上一些線上資料,比如只在線上拉1000個商品,1000個用戶資訊,然后做脫敏,這里技術實作難度會比較高,畢竟要把關聯表理順,
3、爬蟲策略
如果是新專案/產品的話,線上沒有存量資料可以導,那么可能要去友商那里爬一些資料,導到測環境做測驗,比如做一個旅游站點,開始的時候是沒有用戶的游記的,這時候就要去類似站點爬一點來測驗了,
4、生成動態資料
如果線上沒有資料,友商也沒有的爬,那么就要人肉或者自動化的方式去產生一些資料了,系統簡單的話可以用sql去跑,復雜點的話可能要呼叫介面或者用自動化的方式去生成,實在沒轍的時候也可以手動去造一些資料,
關于動態資料
大家在做自動化或者介面測驗后往往會大量的去產生動態資料,那么問題就來了,
這些資料存在哪里?什么意思呢?如果我們需要用自動化的方式去創建一個商品,那么商品的資訊,圖片地址該放在哪里呢?其實這是個持久化的問題了,
- 放檔案里,檔案格式有很多可以選的,比如xml/csv/json/yaml等,不過不推薦excel,畢竟是私有格式,沒有太強的擴展性,而且excel一升級,你的決議代碼和庫也可能要跟著改一次,嗯,強烈不推薦了,
- 放資料庫里,爬一些商品的資訊存到資料庫里,然后讀資料庫也是很好的辦法,還能熟悉一下sql的用法,面試經常問到,另外可以用資料庫的事務機制來清理測驗資料,
- 在代碼里動態生成,比如動態隨機生成用戶的姓名啊性別和年齡之類的,
資料生成之后就面臨著一個清理的問題,清理問題實際上資料生命周期的問題,測驗資料應該有下面一些生命周期:
- 短期資料,用例完了就刪掉的資料,一般線上做性能測驗的資料都是這樣的短期資料,
- 長期資料,用例跑出來的資料放在那里也沒事,可以一直存在,這種資料太多有時候會影響測驗環境的性能,
自動化測驗跑出的資料建議做短期資料,跑出來想辦法清掉,因為自動化跑的頻率其實可以很高,每次都產生一堆資料的話資料的量級可能會在短期變得很大,對測驗環境的性能造成影響,
以上是一些個人的淺顯的看法,肯定有很多不成熟的地方,歡迎大家評論,
絮叨
對面試題、軟體、介面、自動化測驗感興趣可以加入我們175317069一起學習喔,群內會有不定期測驗資料鏈接發放,
喜歡的話,歡迎【評論】、【點贊】、【關注】禮貌三連,
Time will tell.(時間會證明一切)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/135949.html
標籤:其他
上一篇:Airtest 學習 Airtest 的一些經驗分享,新手指引部分
下一篇:Python常用資料結構——字典
