自動化測試如何準備測試數據

其實大部分類型的測試都須要去準備測試數據。面試

  • 手工測試:一些基礎數據,好比配置數據等等是須要去準備的;
  • 自動化測試:基礎須要準備,現有數據,動態運行時產生的數據是須要準備的;
  • 性能測試:跟自動化測試差很少;

這裏就牽扯到了一些關於數據的概念了。sql

測試數據的分類

咱們能夠給測試數據分一些種類數據庫

  • 基礎數據,好比一些內容管理系統會配置站點的標題,友情連接之類的基礎配置數據
  • 存量數據,也就是現有數據。好比在測試一些電商站點的時候會提早插入一些商品信息,類目信息物流信息等
  • 動態數據,也能夠叫作session數據。好比在測試電商站點的發佈商品功能的時候,每每會去建立一些新的商品

咱們能夠想象到,基礎數據其實能夠比較容易的跟生產環境保持一致。測試環境的存量數據會比線上環境要少,測試環境的動態數據可能不會像線上環境那樣真實。json

這裏就須要討論測試數據的量級和真實性的問題了。session

測試數據的量級

大部分狀況下,測試數據的量級是沒有產生環境多的。因此測試數據能夠是真實數據的子集。性能

若是有類生產環境或預發佈環境的話,能夠儘可能保持跟線上數據至關的量級。這樣一些測試環境很差測出來的因爲數據量致使的問題能夠在預發佈環境測出來。測試

測試數據的真實性

咱們測試環境的數據每每跟真實用戶產生的數據是有差別的。好比測試論壇系統時,咱們在帖子裏的貼圖可能每每就那麼幾張,尺寸也是恰到好處,而線上用戶的貼圖多是五花八門,從而致使意想不到的問題。excel

如何準備基礎和存量數據

基礎和存量數據與線上環境越一致,測試中發現問題的機率可能就越高。通常來講,能夠有下面的策略xml

  • 全量+脫敏策略。直接按期把線上的數據作脫敏,導入到測試環境。這裏脫敏是必選,數據泄漏致使的問題嚴重程度每每比普通的線上bug要嚴重得多。
  • 定量+脫敏策略。只上一些線上數據,好比只在線上拉1000個商品,1000個用戶信息,而後作脫敏。這裏技術實現難度會比較高,畢竟要把關聯表理順。
  • 爬蟲策略。若是是新項目/產品的話,線上沒有存量數據能夠導,那麼可能要去友商那裏爬一些數據,導到測環境作測試。好比作一個旅遊站點,開始的時候是沒有用戶的遊記的,這時候就要去相似站點爬一點來測試了。
  • 生成動態數據。若是線上沒有數據,友商也沒有的爬,那麼就要人肉或者自動化的方式去產生一些數據了。系統簡單的話能夠用sql去跑,複雜點的話可能要調用接口或者用自動化的方式去生成。實在沒轍的時候也能夠手動去造一些數據。

關於動態數據

你們在作自動化或者接口測試後每每會大量的去產生動態數據。那麼問題就來了。接口

這些數據存在哪裏?什麼意思呢?若是咱們須要用自動化的方式去建立一個商品,那麼商品的信息,圖片地址該放在哪裏呢?其實這是個持久化的問題了。

  • 放文件裏。文件格式有不少能夠選的,好比xml/csv/json/yaml等。不過不推薦excel,畢竟是私有格式,沒有太強的擴展性。並且excel一升級,你的解析代碼和庫也可能要跟着改一次,嗯,強烈不推薦了。
  • 放數據庫裏。爬一些商品的信息存到數據庫裏,而後讀數據庫也是很好的辦法,還能熟悉一下sql的用法,面試常常問到,另外能夠用數據庫的事務機制來清理測試數據
  • 在代碼裏動態生成。好比動態隨機生成用戶的姓名啊性別和年齡之類的

數據生成以後就面臨着一個清理的問題。清理問題實際上數據生命週期的問題,測試數據應該有下面一些生命週期吧

  • 短時間數據。用例完了就刪掉的數據,通常線上作性能測試的數據都是這樣的短時間數據
  • 長期數據。用例跑出來的數據放在那裏也沒事,能夠一直存在。這種數據太多有時候會影響測試環境的性能

自動化測試跑出的數據建議作短時間數據,跑出來想辦法清掉,由於自動化跑的頻率其實能夠很高,每次都產生一堆數據的話數據的量級可能會在短時間變得很大,對測試環境的性能形成影響。

以上的一些見解是我的的淺顯的粗鄙的見解,確定有不少不成熟的地方,歡迎你們斧正。

相關文章
相關標籤/搜索