問題
很多測試是和后台代碼邏輯相關的,比如:
接口測試
接口文檔里面包含了接口的url、用途、一些上行參數和下行參數的描述信息。
但是要想知道這些參數取值的來龍去脈,還是要回歸到后台項目代碼中,我們可以對上行參數和下行參數是如何處理和生成的有一個全面的了解。
一些功能需求的測試
我們拿到需求,根據需求文檔、交互視覺設計文檔來編寫測試用例。
在測試的過程中,需要了解后台功能是如何實現的。例如一些wap頁發送的請求,我們通過抓包捕捉到請求的url,通過請求的url在后台找到相應的接口代碼,最終還是會落到接口的邏輯實現上。
只有清楚了后台代碼的邏輯,才能更好的設計測試用例。這就是針對后台的一些測試。
和前端測試不同,前端的代碼我們通過瀏覽器就可以看到。后台的代碼更要求我們能對IDE熟練使用並掌握如何查看代碼邏輯的能力。
任何的測試涉及到后台,最終無非是落到接口的測試上。
方法
步驟:
1. 通過抓包可以得到接口的基本信息,通過url中的內容我們可以在后台項目代碼里找到相應的Controller,方便我們查看接口的邏輯;
2. 對於上行參數的處理一般有對應的攔截器,我們可以在對應的web.xml文件中查到相應url段的過濾器名稱,然后查到對應的過濾器;
3. 在過濾器里我們可以看到對上行參數的預處理邏輯(包括對一些加密參數的解密邏輯),從而找到和Controller里面的入參的對應關系。
一些關鍵點:
1. 因為我們抓包抓到的上行參數多是經過攔截器預處理后再傳給Controller處理的,所以Controller中的入參名稱和我們抓包抓到的上行參數名稱可能會不同。
2. 在攔截器中我們通過request.getParameter方法獲取到上行參數,然后通過request.setAttribute方法設置處理后的上行參數並傳遞給對應的Controller作為入參。
需要掌握的技術
1. Eclipse/Intellij(IDE)中按關鍵字、方法名、文件名進行查找;
2. 了解SpringMVC框架結構,例如web.xml等文件的作用;
3. 對后台代碼邏輯的查看能力,知道方法的調用與被調用關系。能夠理清代碼邏輯;
4. 能夠在理解代碼邏輯的基礎上,知道在哪里打log排查問題;
5. 可以通過SecureCRT等遠程軟件在后台服務器指定項目路徑下查看log輸出;
6. 能夠通過Fiddler/Charles/Mitxproxy等代理抓包工具對http/https類型的網絡請求(PC/移動端)進行抓包、攔截、改包;
7. 對於需要加密和解密的參數能夠根據后台項目代碼中的加密解密邏輯進行提取使用並制作相應工具;
8. Git工具使用(創建、合並、拉取、推送分支),及時將開發修改后的開發分支代碼合並到測試分支並部署到測試環境進行測試。