1. 程式人生 > >API測試與相容---效能檢測工具

API測試與相容---效能檢測工具

效能檢測工具-------

     國外:
            YSlow:23條效能軍規,打分制,提供瀏覽器外掛
            WebPageTest:真實瀏覽器,多地區,視屏截圖
           GooglePageSpeed:真實瀏覽器,移動端
     國內:
              效能魔方(推薦):多地區 運營商 多角度 優化建議---http://www.mmtrix.com  賬號Owen
               阿里測(老牌):多地區 多瀏覽器 訪問限制
         17CE:多地區評測訪問速度,更偏運維
 API測試與相容--------

HTTP協議入門
        為什麼?

                   絕大多數的web應用,都建在http協議之上
       是什麼?

                   無狀態、B/S模式應用層協議,多基於TCP協議
      包含啥?
                請求:報文格式(報頭、正文、URI)、請求方法、請求頭
                響應:狀態碼、訊息報頭、響應正文
      FAQ?
             常見請求頭:User-Agent、Cookie、Referrer
             常見響應頭:Content-Type 、 content-Length 、Cache
            常見狀態碼:2xx(請求成功) 3xx(頁面跳轉)4xx(客戶端請求錯誤,資料格式)5xx(伺服器端錯誤)
         參考資料 HTTP權威指南      TCP/IP詳解

瀏覽器開啟網頁時發生了什麼?(瀏覽器基本工作原理)
        位址列輸入URL 之後
       DNS解析(多級快取)--解析輸入的URL
       請求(TCP連線 HTTP報文)
       解析(解壓 快取處理 引用資源)--對壓縮過的js css程式碼進行解壓,以及圖片 等引用資源
       構建:DOM樹(節點顯隱 層次結構)
       構建:cssom樹(css優先順序)
        構建:render樹(css匹配規則)

(render樹的改變,導致重繪) Repaint+Reflow
 
      Repaint:面板類外觀改變引發的重新渲染,如背景色
        Reflow:位置 大小 盒模型等發生變化需要重新佈局
        常見誘因:
            頁面滾動
            頁面縮放
            新增樣式
            操作DOM(屬性 樣式 增刪節點)
            計算寬高位置等
     指令碼:文件狀態(阻塞和延遲 內聯和外聯)
    渲染頁面(DOM+CSSOM--> Render-Tree)
 

1.API測試資料
  工具: 谷歌瀏覽器 有內建的 DHC,  postman也是一款很不錯的API測試工具
   包括:
       1.請求構造
            請求引數,請求頭 請求方法
             響應檢視 格式化
       2.請求管理
          儲存 名稱空間管理(專案 服務)
       3高階用法
          請求複製
          資料匯入匯出
2.瀏覽器相容3部區
   1如何發現問題?
      QuirksMode:相容性列表
      CanIUse:查詢js特性,css屬性,html5等的支援情況(推薦)
          CanIUse.com
   2 如何解決問題:
      1  BrowserHacks:不同瀏覽器及版本支援的各種黑科技
          BrowserHacks.com
      2  Shim:補充老舊瀏覽器的不足,讓程式碼更順手
           ES5Shim  
           ES6Shim  
           HTML5Shim
           JSONShim
    
   3 如何把事做絕:
        漸進增強,工具:Modernizr(推薦)  Feature.js
            Modernizr:現代瀏覽器特徵檢測,助你漸進增強
            Feature.js:類似 Modernizr比較輕量,不支援css
         基於Modernizr做漸進增強(增強老舊瀏覽器的功能)
          全域性安裝:Modernizr
          獲取配置:自定義構建
          生成構建:命令列用法
          引入指令碼:直接頁面引用
          使用方法:JS+CSS