web測試 資料分層測試

2022-05-29 11:45:13 字數 2433 閱讀 3294

**:51testing

測試效率低下?很多時間都在等程式開發功能,直到介面層展現出來資料後,我們才能介入測試,然後忙的焦頭爛額,上線前心裡還沒底。亦或者發現乙個bug,發給程式猿a查,程式猿a說,可能是程式猿b的問題,你讓程式猿b查查。程式猿b說,我這正忙著呢,你讓a先查查,然後這個bug就丟在那裡好久,都沒有人解決。你除了覺得很苦惱,可能也沒有其它辦法。如果你遇到這樣的問題,那就趕快一起來了解下分層測試吧。

之前有在做企業使用者資料統計分析的專案。其中有乙個功能,計算新增註冊使用者的同比百分率。那就拿這個相對簡單的功能做例項,講述分層測試的過程。不過先別著急,在做分層之前,有一件事情是必須要做,那就是必須要了解資料來源從**來,經過哪些關卡,才最終呈現的頁面上來,才能做分層測試。

第一層測試:註冊帳號後訊息是否進入到rabbitmq佇列?

如果說訊息傳送失敗,或者在連續傳送大量註冊資訊後佇列卡住,那麼後面的我們也沒有必要去測試了,資料肯定就是錯的了。通過下圖可以看到訊息是否進入佇列?是否出現unacked?消費速度是否快?

當確保這關卡沒有問題的時候,我們即可以進入下一關卡的測試。

第二層測試:註冊帳號的資訊是否按照要求記錄到資料庫,且無資料丟失?

開啟資料庫表,檢視下資料字段是否齊全,值是否正確?比如說註冊帳號要求寫入資料庫欄位有,使用者名稱,註冊時間,註冊時候需要的手機號碼。特別是時間很容易出現bug,如果要求記錄到秒,但是卻記錄到分鐘或者小時,都有可能造成後續資料上的統計錯誤。

再核對下第一層測試中傳送的資料量和寫入資料庫的資料量是否對等,如果有多了,有可能是資料重**了,少了可能是資料寫入有問題。

當確保這關卡沒有問題的時候,我們即可以及進入下一關卡的測試。

第三層測試:聚合資料程式是否正確?

考慮到統計效能,往往對原始資料做一次聚合,減少資料量,提公升統計效能。比如說要求是將註冊的賬號數量按月聚合存放到資料庫表中。那麼我們就需要去驗證聚合後的資料庫中的資料是否正確。

首先將原始資料庫表中的資料通過查詢語句把某個月的資料count出來,再到聚合後的資料庫表中去核對該月的資料和count出來的資料是否一致?假如這塊測試下來也沒有問題,那麼我們就妥妥的進入下一層。

第四層測試:通過介面呼叫,驗證伺服器返回的資料是否正確?

雖然經過上一層的資料庫測試後,存放的資料是對了,但是伺服器返回的資料可不一定正確。因為伺服器可能會拿資料庫的資料再次做運算後返回給前端。

比如說同比資料,就需要再次做運算,伺服器把當前月份的註冊使用者資料(a)和去年同月份註冊使用者資料(b)取出來,然後通過(a-b)/b*100%的運算得到同比資料後返回給前端。可能有的同學會覺得這個運算那麼簡單,是否可以跳過?有意思的是,程式猿就在做這個演算法的地方計算成了(b-a)/b*100%,導致了乙個bug。此時你不用再去確認,是不是傳送資料出問題了,還是說資料存放有問題,還是說聚合有問題,直接召喚寫這段**的程式大哥,嘿,就是你那裡出問題了,並告知如何修改。是不是很有成就感?至於介面呼叫測試,你可以借助介面測試工具,如soapui,jmeter,或者python都可以做。

第五層測試:前端頁面展示是否正確?

終於測試到最後一層了,經過前面的層層把關,到這裡可以說bug不會太多了,除非前端**太爛。那麼到這層我們測試些什麼呢?比如說前端傳送的請求是否正確,假使我要查詢2月同比資料,愣是發成了請求1月的同比資料,那資料肯定又是錯了。可能會有人問題,介面測試不是第四層做過了嗎?怎麼這裡還要做?

很簡單,第四層我是通過介面測試工具自己寫的請求體,引數傳的正確,伺服器才能返回正確,但是前端程式猿在寫調介面引數時,我可不保證他能把請求傳正確,所以這是個很重要的驗證點。通過抓包工具fiddler,httpdebugger都可以輕鬆找出錯誤。

其次就是資料在前面的展現是否正確,這塊按著方案來測試基本也就沒有什麼太大問題了。往往資料顯示保留位數,資料過長顯示不全或者換行等地方會出現問題。

現在有沒有體會到分層的好處了?整個測試過程思路始終是清晰的,每乙個環節都能層層把關。我不需要等前端做好了,才能測試,任何乙個環節做好了,我都能測試。等等,我估計有人又會有疑惑了,這個五層不是一環扣一環的嗎?是不是一定要按這種順序來測試?假設程式猿提前將第三層,聚合資料這塊做完了,其他的第一層和第二層都沒有完成,我能不能測試?

答案是肯定的,雖然我們缺少第二層中的使用者註冊資料,但是可以通過寫指令碼,將註冊資料插入到資料庫,再跑一下聚合程式,就可以測試了。

掌握分層測試的方法,能縮短整個專案的週期,且質量有保障。程式開發過程,測試也一併在測試,時間並行後,週期就縮短。另外剛寫好的熱乎**,馬上測試,發現的bug也能更容易找到並能立馬改掉,程式猿效率也提公升了。改變測試任務前松後緊的狀態,你值得擁有。

構造測試資料 對比測試資料

正確 include using namespace std typedef long long ll const int max n 1e6 10 intmain return0 author max n date 2019 10 04 15.03.21 description 正確 錯誤 inc...

常用測試資料

程式或應用編寫好了之後,通常要輸入一些測試資料,我們懶人一般的做法就是,輸入 asdf,愛上對方,阿道夫。之類的隨手打的字元。這裡,我收集了一點點資料供測試時候使用,應該可以作為常用的測試資料。1.常用的姓名 平時,很多系統比如員工名字需要,但是又怕洩露隱私,所以這裡從網上收集了中國50個最常用的姓...

oracle training 測試資料

sqlplus sys zhou215 as sysdba startup connect oracle oracle 由於虛擬機器是linux的 plsql沒有linux的版本,需要通過本機連上虛擬機器 配置檢視ip sbin ifconfig a 192.168.81.128 將虛擬機器的ip填...