自動化測試中的前后臺交互
由于最近一直比較忙,就沒有更新博客。時間長了,一些領悟不記錄下來就有些遺忘。閑話少說,今天來更新一篇關于自動化測試中的前后臺交互方面的個人心得。
在自動化測試中,不論采用什么測試框架,基本的思路都是前臺由測試人員填寫測試用例,然后生成測試腳本,然后使用測試工具去run這些腳本。而后臺呢,往往是由測試開發人員根據被測對象的需要自己編寫程序。至于測試方法,可以將前后臺分離進行測試,比如說,對后臺進行測試,然后判斷后臺是否滿足測試需求。如果前臺測試的目標不需要調用數據,直接run腳本就OK了,如果前臺需要后臺數據,可以在后臺準備好數據,可以將數據放在log日志中,前臺直接調用log日志,不需要在后臺執行后臺程序。這樣就保證了前后臺測試的分離,便于測試維護,例如前臺如果經常變動的時候,只需要根據前臺變動將相應的后臺數據準備在前臺要調用的數據池中。而由于后臺程序一般的變動會相應的較少,這樣不需要每次更改前臺界面都要把后臺測試程序進行修改。這種方法也是上次谷歌中國的測試總監推薦的方法。
目前的實踐還沒有做到完全的前后臺測試分離,只是在一步步的嘗試,希望距離前后臺分離的目的越來越近。對于前后臺的交互,目前我的做法是。前臺web界面測試由測試人員根據測試對象填寫由我們測試開發提供的測試用例模板,然后生成自動化測試腳本。前臺界面的一些判斷可以直接得到,例如界面的一些改動,界面元素的缺失等。而對于后臺的一些驗證,目前并沒有在后臺單獨的進行測試。而是由前臺的腳本通過調用cgi,將測試預期傳給后臺,后臺cgi函數處理預期值,然后跟實際值進行比對,然后將比對的結果再傳給前臺由前臺處理。舉個例子,比如說我的被測對象是一個具有web界面,功能是對交換機進行端口切換的系統。這里,如果我對端口切換這個功能要進行自動化測試設計。那么我的測試工具前臺就應該具有驅動界面操作的測試環境,測試后臺是一些cgi程序,當前臺執行的腳本將端口切換的預期值通過cgi傳遞給后臺時,后臺測試程序首先會telnet交換機,獲得交換機的當前端口信息,然后與前臺傳遞的預期值進行判斷,將判斷結果返回給前臺日志。
由此可見,與前后臺完全分離的測試方法相比,目前我們的做法優點是不需要獨立的后臺測試,而是從系統測試的角度來判斷系統功能。如果要做前后臺測試分離,那么前臺測試就只對顯示的正確與否進行測試,可以在后臺數據池準備相應的數據,讓前臺去訪問這些數據然后輸出界面,觀察輸出的數據是否是數據池中的。而后臺就對功能進行驗證,將功能的結果放于數據池中。這方面目前還沒有做嘗試,有興趣的話可以試試。