一、測試的階段
我們現處于哪層?最頂層;每一層我們可以做哪些事?現在公司基本兩層:前端→後端,稍微複雜點項目三層,UE4→前端→後端 ,後端後續微服務之後,前端→網關→後端:服務排查問題置頂向下成本将越來越高,長期受益可以從後面幾個階段提升;
二、單元測試
2.1項目周期:
測試第一步:單元測試(開發子產品完成);例如:
2.2單元測試的好處:
1、沒有什麼資料是造不出來的,通通傳回Mock 的對象
2、代碼中的異常處理代碼,也可以通過mock 接口,使之抛出異常
3、不産生任何髒資料
4、跑 case 更快了,因為不用啟動整個項目,相當于 Main 方法
5、項目測試越往後越順暢,為 接口測試,功能測試打頭陣
三、接口測試
3.1手工測試的痛點:
1、牛牛搭系統複雜度不斷增加,手工測試的工作不斷增加;
2、回歸工作較大測試效率越來越低,覆寫不完全;
3、線上bug沒有有效保障手段,比較被動(線上bug反填到自動化腳本)
4、bug排查效率低(前後端及各服務之間分離越來越明顯)
3.2自動化優點:
1、日常測試前端字段的校驗不能滿足要求,服務端字段校驗時,通過接口測試來做能很快滿足測試場景;
2、當APP的代碼不更新,而服務端代碼更新時,直接通過接口自動化測試就能快
速知道是否影響APP的功能。
3、接口測試相對容易實作自動化,也容易實作持續內建,且相對UI自動化也比較穩定;
4、可以減少人工回歸測試人力成本與時間,縮短測試周期,支援後端快速發版需求。
5、接口持續內建會帶來效率提升,人力手工成本的減少,最終達到低成本高收益。
備注:自動化的收益 = 疊代次數 * (全手動執行成本 - 維護成本) - 首次自動化成本
3.3接口自動化怎麼做?
選型思路:
1、可自動化,低成本(√)
eg:postman+newman+Jenkins持續內建
2、自動化,成本高(ToDo)
TD:①Test工程+Junit架構
②單元測試
eg:持續內建+報告+得出覆寫率
3、不可自動化(待定)
eg:業務成熟之後,UI自動化是否能解決
四、自動化持續內建搭建
4.1環境搭建大概過程:
1、linux虛拟機搭建,作為測試伺服器主機(我旁邊那台電腦)
2、Newman安裝,用于psotman腳本執行工具
3、Git 安裝,clone test工程,用于拉取伺服器postman的腳本;
4、Jenkins搭建,自動建構+報告展示
5、釘釘發送報告消息
五、postman工具使用
5.1,操作流程
1、下載下傳Postman工具的用戶端
eg:單接口測試及斷言腳本調試
2、newman下載下傳安裝
eg:調式導出的postman腳本,確定能跑出來腳本再送出到git
3、注冊一個postman賬号,通過這個位址加入項目組: https://app.getpostman.com/join-team?invite_code=89e29047b32f8ccd21a88992dc13e500
4、新增第一個request請求
5.2 頁面功能
1>接口名稱;
2>接口的請求類型:GET;
3>環境變量;
eg:建議接口測試過程中多思考,靈活運用
變量;便于日後腳本維護;
4>接口請求位址
5>URL帶入的入參
6>新增檢視環境變量
7>發送接口請求
8>儲存接口,存到對應的腳本目錄下
5.3 斷言初步使用
1>header頭
eg:x-access-token 登陸接口儲存token
2>Body請求入參,接口文檔擷取;
3>Test,用于Asser斷言驗證結果;
eg:
第一行,Json傳回結果指派給一個變量;
大框的,斷言腳本登入傳回值,塞到token裡面
最後一行,效驗該接口的角色權限結果
5.4 批量執行/調試腳本
1>導出postman腳本
2>下載下傳環境變量腳本;
3>cmd,運作腳本;
eg:
newman run Test.postman_collection.json -n 2 -e base_url.postman_environment.json
Test.postman_collection.json -- 接口測試腳本檔案
base_url.postman_environment.json -- 環境變量檔案
-n 2表示疊代2次
六、展望未來(YY)
6.1 最後YY一下IT話題
1、現階段單元測試自動化,接口測試自動化,UI測試自動化,叫什麼?滿足什麼?未來有什麼價值?
引入DevOps,DevOps是什麼?跟我們有什麼關系?
eg:DevOps是一種軟體開發方法,涉及軟體在整個開發生命周期中的持續開發,持續測試,持續內建,持續部署和持續監控。标紅對于
測試而言是什麼,大家自我思考;
2、被管道化的運維工程師?
eg:想想技術最初有DBA,運維工程,開發,測試,現在呢?隻有 開發+測試
被管道化之後出現兩類極端?
① 小中型公司,普通的運維崗位消失了 不被公司需要,被阿裡雲管道化,自動打包,一鍵部署等;(是否有危機感)
② 進階運維工程師,能力要求越來越高了,工資也越來優厚了,可以看出最終的結果,甯缺毋濫
6.2 YY Test話題
說說測試,測試現在崗位被細化:功能測試—單元測試—接口測試自動化—UI自動化—性能測試
這幾個細化崗位,近幾年最可能會被管道化是誰?
1、功能測試目前大廠基本很少有了(核心子產品少量業務專家),都是外包測試,可能會被UI自動化代替;
2、單元測試,開發在做部分沒有養成習慣,主要是保證開發品質,為下遊掃平基礎障礙;
3、接口測試 是不是開發也可以做,隻是願不願意做,極端一點,把測試工資給他試試看?谷歌一開始是沒有測試的;
4、UI自動化一般最難做,受産品變更的影響,成本高收益低,最近圖檔識别及照片算法脫衣服,想着如果應用到UI自動化 也是不會有太
大難度;(稍遠稍近了點,哈哈~)
5、不能被管道化的,我們來看看 我們應該想着怎麼在單元測試/接口測試 加重我們的價值,接口測試/單元測試 有邏輯驗證在裡面 近期
幾年被管道化可能性較低,性能有結果分析,腳本調優,暫時也不必擔心;