這是一個還沒解決的問題,這里純粹記錄自己思考的過程,后續給自己參考。
先說明情景:對微信公眾號的一個接口進行調用跑通,后續可能需要壓測(是的,僅僅是調通一個接口而已o(╥﹏╥)o)
1、按照我理解的正常套路,我直接請求對應的接口,然后通過抓包得到Cookie,寫入到HTTP Cookie管理器中,如下:
emmmm....開始百度,發現也有類似的提問,但是沒有一個靠譜有效的答案。然后我就去分析登錄過程了,看最后一個重定向的響應數據:
恩?意思就是還要用戶授權,掃碼然后在手機上點擊【確定】,然后才能登錄?於是,我去找微信授權網頁開發的東西,官方文檔:網站應用微信登錄開發指南。
文檔寫的簡單易懂,看完之后自己繼續嘗試,但是好像一直拿不到一個有效的code。
對應的開發最近又在弄雙十一的需求,實在不好意思叨擾。猜測應該是我需要傳某些參數,進而跳過用戶授權這么一個步驟。
-----------------------------------------------分割線-----------------------------------------------------
今天開發有空,和他聊了聊,得到一些東西:首先,這個項目沒有前后端分離,采用的驗證是JWT做的。然后拿着我的問題去請教(其中還出現了一個情況,我加上了User-Agent,響應結果提示我在微信客戶端打開鏈接),開發告知我掃碼這個步驟是由來源控制的,如果沒有來源也不是微信瀏覽器就會讓掃碼(“來源”涉及公司業務)。那么問題就又回到一個點:jmeter如何模擬微信客戶端發起請求?查看微信相關的開發文檔:
var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; var isAndroid = ua.indexOf('android') != -1; var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);
我填寫的User-Agent是滿足這些條件的,查看請求中也帶了User-agent,那么為什么還會被服務器判定為不是微信瀏覽器?
技術有限,這個問題我暫時是沒轍了,優先完成工作任務,我就用另一種方式去調通接口了,公司業務層面的來源控制:
JWT做的驗證,我拿到了token,然后一起傳進去,還是重定向到了登錄頁。哎,技術菜,是原罪啊,該干活了.....
___學習是個銳化自己的過程