天天看點

測試之效能提升

一、測試的階段

測試之效能提升

我們現處于哪層?最頂層;每一層我們可以做哪些事?現在公司基本兩層:前端→後端,稍微複雜點項目三層,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、不能被管道化的,我們來看看 我們應該想着怎麼在單元測試/接口測試 加重我們的價值,接口測試/單元測試 有邏輯驗證在裡面 近期     
  幾年被管道化可能性較低,性能有結果分析,腳本調優,暫時也不必擔心;