今晚在某個測試群,看到有人問了乙個問題:把測試資料放配置檔案讀取和放檔案通過函式呼叫讀取有什麼區別?
當時我下意識的這麼回答:資料量越大,配置檔案越臃腫,放在專門的資料檔案(比如excel,csv),方便針對性的維護。
乍看沒毛病,但回頭和人討論這個問題的時候,就認真思考了一下這個問題,下面是我的一些思考和討論的一些結果,僅供參考。。。
自動化測試過程中,現在大多都預設測試指令碼與測試資料分離的設計,這樣做的好處是:降低維護成本,遷移成本以及提高效率。
因此測試資料放在**,如何管理,不能一概而論。個人覺得應該從以下幾方面來考慮:
1、業務場景
①、比如在ui自動化測試中,需要測試某個電商**的各個業務模組,但前提是要使用者登入。這個用來執行登入的測試賬號資料往往是固定的,那麼專門將
一組username和password放在乙個測試資料檔案或者測試資料庫中,這樣就顯得太笨重,耗時費力。將其寫入測試指令碼或者寫入配置檔案,直接引用效率會更高。
②、同樣,測試電商**,賬號體系分為普通賬號,會員賬號,會員還分很多等級,有時候為了測試會員中心不同的賬號展示的資訊是否不同,就需要使用不同的
等級的賬號登入,這種場景下,可以將測試資料放在測試檔案裡(比如excel、csv),通過引數化的方式來迴圈讀取,執行後續操作。
③、在api自動化測試中,比如針對restful風格的介面,它的網域名稱相對來說都是固定的,只是不同介面的path不同,那麼也可以將網域名稱寫入配置檔案,
測試過程中只需要將例項化的網域名稱和path進行拼接即可,這樣也省卻了在測試資料檔案中維護的成本,一定程度上提公升了測試效率。
2、資料型別
測試資料也分不同型別,大概分為以下幾種型別:
base-data:即基礎資料,比如電商**的商品資訊、sku,比如物流公司的倉儲管理等,這類資料往往基數比較大,可以視為持久層,儲存在db中;
test-data:測試資料,根據業務場景不同,資料無論量級還是變更頻次也不同,基於測試指令碼與資料分離的概念,可放在專門的測試檔案中,比如excel、csv;
ephemeral-data:臨時資料,即使用一次的資料,這種型別的資料可以用臨時檔案儲存(比如dat、csv等)格式,然後進行引數化讀取,或者直接寫入指令碼中;
3、資料量級
①、還是電商**的某個場景,需要先執行登入,登入的賬號比如是專門配置的乙個測試賬號,相對固定,那麼將測試賬號寫入測試指令碼也無可厚非。
不過我本人不喜歡將測試資料直接寫入指令碼,這種情況我會寫入配置檔案,然後例項化呼叫,這種情況就需要根據個人習慣來設計,沒有固定的套路;
②、資料量級在幾十——幾百上千之間,這種時候,可以寫入excel檔案進行儲存管理,但是excel的侷限在於其本身目前最大支援65500+行的資料儲存,
而且只支援單事務,如果需要多執行緒讀取,就會變成瓶頸。
③、csv檔案,結構簡單、通用,可以和excel進行轉換,可以減少儲存檔案size,且具備簡單的安全性,可以在一定程度上替代excel成為資料儲存檔案。
我本人目前在大多數場景下也是使用csv型別的檔案進行測試資料儲存管理;
④、當測試資料超過一定量級,比如效能測試中,如果要執行併發測試或者穩定性測試,那麼所需測試資料量級就很大,這時使用excel或者csv就會變得很不方便。
無論是從維護的成本還是便捷性考慮,都應該選擇利用db或其他高效的管理方式來儲存和管理測試資料;
4、使用頻次
測試資料的重用頻次不同,也需要選擇不同的儲存方式,比如:
①、once:只使用一次的測試資料,那麼只需要寫入臨時檔案,用完作廢或者刪除即可;
②、often:即經常使用的測試資料,應根據資料量級,使用場景,資料型別選擇合適的儲存管理方式;
③、alway:可以理解為base-data或者持久資料,這種型別的資料因為其本身更新頻次很低,或者資料量級較大,一般儲存在db中是比較好的一種管理方案。
綜上所述,測試資料的儲存和管理,沒有固定的套路,需要結合業務場景,使用頻次,資料型別和資料量級來綜合考慮,設計合理高效的方案,才是正確的方式!
ios自動化測試資料
官方文件 ios助手開發資料 命令列啟動instruments 使用命令安裝 for xcode 4.5 instruments t automationinstrument.bundle contents resources automation.tracetemplate e uiaresult...
API自動化測試筆記(二) 測試資料
一 說明 相信不管是gui自動化測試,亦或者是api自動化測試,都離不開測試資料。這裡說的測試資料我理解分為2部分 1 用例執行前需要的前置條件,例如我驗證正確賬戶 密碼能否成功登入,首先就需要乙個已經註冊的使用者。2 測試用例本身需要的輸入及預期結果。例如 呼叫乙個api,我需要設定不同的請求引數...
自動化測試 web自動化測試
自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...