前后端联调实践总结
聯(lián)調(diào)的認(rèn)知和感觸
認(rèn)知(討論)
- 為什么要聯(lián)調(diào)?
- 聯(lián)調(diào)都干些什么?
聯(lián)調(diào)的問題
聯(lián)調(diào)就是后端不好好寫單元測試與集成測試,讓前端發(fā)請求調(diào)用以達(dá)到測試的目的;前端不好好寫Mock和測試,讓后端輸出數(shù)據(jù)以達(dá)到測試的目的。
更正確地認(rèn)識
- 聯(lián)調(diào)是前后端一起見證靠譜的測試結(jié)果
- 給需求方提供一個正確的需求驗(yàn)證環(huán)境
- 盡早暴露前后端實(shí)現(xiàn)的問題
聯(lián)調(diào)必備技能
DNS與HOSTS
- DNS(Domain Name System)的認(rèn)識
- DNS提供將域名解析為IP
- 域名只是便于記憶,真正起作用的還是IP
- GFW作用,HOSTFQ
- 域名解析順序
- 瀏覽器緩存>瀏覽器代理>HOST文件>系統(tǒng)DNS緩存
- 本地DNS服務(wù)器>上級DNS>...>頂級DNS
HOST配置的姿勢
- 直接修改HOSTS文件
- 使用Chrome應(yīng)用 HostAdmin App,也有Firefox插件HostAdmin
- 使用HOST管理工具 SwitchHosts
- 使用Charles/Fiddler HOST配置
- 使用FEKit/YKit 代理配置 Jerry Proxy
更改HOST不即時生效問題
原因
- 瀏覽器有HOST緩存
- 瀏覽器復(fù)用了原有HOST的Socket連接
解決辦法
- 重啟瀏覽器或者打開新的瀏覽器
- 使用Charles/Fiddler等代理,避免此問題
- 使用Chrome工具,強(qiáng)行重置Socket連接
代理服務(wù)配置
- Chrome瀏覽器代理SwitchySharp 或者 SwitchyOmega
- 系統(tǒng)代理使用Charles/Fiddler 抓取請求包
代理服務(wù)HTTPS抓包問題
- 打不開頁面? 需要根據(jù)Charles Help菜單中規(guī)則添加Charles根證書
- 某些包解不開?需要在Charles代理設(shè)置里面配置具體的解包域名
- 線上證書不安全?解包后再封的包跟原來的有些區(qū)別,需要單獨(dú)打開對應(yīng)頁面進(jìn)行信任
特定場景的調(diào)試姿勢
PC/Touch頁面
- 配置前后端環(huán)境
- 配置HOST
- 直接使用瀏覽器及瀏覽器模擬器調(diào)試
- 如果只是前端更改,在不影響數(shù)據(jù)的情況下,可以使用線上頁面調(diào)試
App頁面
真機(jī)調(diào)試
- 手機(jī)上安裝Beta包,使用數(shù)據(jù)線連上電腦
- 允許調(diào)試或者開啟Inspect
- 通過chrome://inspect 或者Safari的開發(fā)者工具進(jìn)行調(diào)試
模擬器調(diào)試
- Xcode模擬器
- 搞一個可以在模擬器里面跑的App
- 將App拖入模擬器,然后打開,用Safari開發(fā)者工具調(diào)試
微信調(diào)試
- TBS Studio Android系統(tǒng)下基于Webview的應(yīng)用調(diào)試(騰訊家的)
- 微信開發(fā)者工具 微信jsAPI相關(guān)調(diào)試
- weinre 通用的調(diào)試工具
如何更有效地聯(lián)調(diào)
明確前后端的約定
- 根據(jù)需求一起約定交互的內(nèi)容
- 包括但不限于如下內(nèi)容
- 接口名稱、請求路徑、請求方式
- 返回字段結(jié)構(gòu)、對應(yīng)字段名和字段類型以及字段邊界值
- 異常情況數(shù)據(jù)約定
- 一份逼真的樣例數(shù)據(jù)
- 前端可以根據(jù)這個數(shù)據(jù)造出各種數(shù)據(jù)
后端對約定的履行
- 根據(jù)約定實(shí)現(xiàn)相應(yīng)的需求
- 使用Postman 進(jìn)行接口測試
- 使用瀏覽器進(jìn)行接口jsonp功能測試
前端對約定的履行
- 根據(jù)約定實(shí)現(xiàn)相應(yīng)的需求
- Mock數(shù)據(jù)
- 使用FEKit Mock數(shù)據(jù)
- 使用YKit Mock數(shù)據(jù)
- 使用Charles/Fiddler 代理接口響應(yīng)
- 任意其他Mock,代理,轉(zhuǎn)發(fā)工具獲取Mock數(shù)據(jù)
- 通過變換Mock數(shù)據(jù),進(jìn)行功能測試
真正的聯(lián)調(diào)
- 前端完成自測
- 后端完成自測
- 一起驗(yàn)證需求的實(shí)現(xiàn)
友情建議
- 遠(yuǎn)離關(guān)鍵路徑,合理調(diào)配時間——別拖后腿
- 把握全局進(jìn)度,提高整體效率——別浪費(fèi)時間
- 積極溝通交流,主動推進(jìn)聯(lián)調(diào)——別甩鍋
轉(zhuǎn)載于:https://www.cnblogs.com/rawbin/p/7266670.html
總結(jié)
- 上一篇: RDL/RDLC批量单据打印 [转]
- 下一篇: svn提示out of date的解决方