抓包写代码模拟怎么减少重复劳动
由于工作需要會經常需要
Fiddler抓包
Chrome F12抓包
然后根據抓包寫代碼來模擬,
一般來說我都是先抓包,
打開postman把抓來的包放到postman里面模擬請求
然后利用PostMan的生成代碼功能
大部分的Reponse都是Json,為了方反列化接著要打開一個在線工具將json轉成模型(POJO)
前段時間我研究了下postman,覺得json轉POJO這個步驟可以直接在postman的代碼生成器的邏輯里面做掉,是通過修改了postman的源碼的方式實現的。
具體做法:
postman工具的代碼生成工具
image如上圖可以快速把你的request轉成code,減少重復性勞動。
但是有一點我覺得可以優化下 就是返回的json如果也能自動轉成代碼就好了。
不然在需要把json序列化成java或者csharp的POJO對象時還得自己coding轉一遍。
由于最近經常會用到這個功能,雖然我找到一個站點把json復制粘貼進去,然后點個按鈕就可以轉成POJO,但是我覺得還是有很多重復性的勞動。
對我我這種懶人,postman又沒有提供可擴展的功能。該怎么辦呢?
分析postman
postman是基于Electron框架的一個產品,如下圖可以把ChromeTool打開
嘗試一:LocalOverrides功能
這個功能可以修改代碼后 保存到你的本機磁盤,然后下一次就會檢測 如果有設置localOverrides的話就用你修改過后的代碼!
結論:postman比較是一個商業工具,它內部有檢測機制,開啟這個功能就會不能正常使用!所以放棄!
嘗試二:直接修改postman的源碼
1.定位到postman的源碼如下圖是一個asar文件
image2.安裝asar工具解壓到本地
安裝asar工具
npm?install?-g?asarimage定位到postman的asar目錄解壓出來
asar?extract?app.asar?appimage3.找到源碼
找源碼的過程我就不說了 這里面要實現我上面說的功能 需要修改2個js源碼
vendor-shared.js --》這是postman的主源碼 有幾百萬行代碼
postman-code-generators.js --》這個是代碼生成的邏輯
4. 修改vendor-shared.js源碼
定位到483842行 加入代碼 就是在點擊發送請求后,postman拿到代碼如果是json格式的話 就存到本地緩存中
imageconst?transformResponseForLanguage?=?{json:?function?(value)?{//?This?unescape?step?handles?escape?sequences?like?-//?1.?Unicode?code?points?-?hexadecimal?-?fixed?length?-?\uD834//?2.?Special?escape?characters?-?\///?這里加try?{localStorage.setItem('_current_reponse_json',?value);}?catch?(e)?{}return?Object(_js_modules_services_StringUnescape__WEBPACK_IMPORTED_MODULE_9__["unescape"])(value);}?};image4. 修改postman-code-generators.js源碼
原理說明:這里是在網上找了一個接口,傳json就可以轉成代碼 這里注意一下,用的xhr,同步的方式調用(異步的方式postman我測試了不行,因為postman的上游代碼是直接拿結果的,改成異步的話上游代碼也得改,這個功能其實同步也還好,就比之前稍微慢了1秒左右)
定位到632行 這里是生成csharp代碼
定位到16668行 這里是生成java代碼
5.源碼修改后重新打包成asar文件
asar?pack?app?app.asarimage搞定驗證結果
java的方式
imagecsharp的方式
imageimage這個方案不夠完美
這個方案雖然解決了一部分重復性勞動,還有一點比較惡心的是,每次postman被強制升級后我又得重復搞一下。
最近又想到了一個新的方案:搞一個fildder的插件,搞出來后我在和大家分享
我是正東,學的越多不知道也越多。如果決定去深究一個東西, 一定要完全搞懂, 并認真總結一篇博客讓以后能在短時間拾起來 ( 因為不搞懂你很難寫一篇半年后還能理解的博客 )
歡迎白嫖點贊!
總結
以上是生活随笔為你收集整理的抓包写代码模拟怎么减少重复劳动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WeihanLi.Npoi 1.21.0
- 下一篇: 一问就打鼓,一用就糊涂,是我小看它了