前端報504錯誤如何定位


歡迎關注【無量測試之道】公眾號,回復【領取資源】,
Python編程學習資源干貨、
Python+Appium框架APP的UI自動化、
Python+Selenium框架Web的UI自動化、
Python+Unittest框架API自動化、

資源和代碼 免費送啦~
文章下方有公眾號二維碼,可直接微信掃一掃關注即可。

測試環境 membership 模塊超時60s 問題定位步驟如下:step1:   前端 debug 時查看到了504的響應-----(發現問題)
問題分析
nginx訪問出現504 Gateway Time-out,一般是由於程序執行時間過長導致響應超時,例如程序需要執行60秒,而nginx最大響應等待時間為30秒,這樣就會出現超時。

 

step2:查看nginx log
==> access.log <==
10.7.0.13 - - [15/May/2020:16:42:19 +0800] 10.7.00.13:9301 60.001 60.001 ars-beta.test_webcn-la.com POST /api/gc/membership/tier/getMembershipTierByTest
HTTP/1.1 "504" 705 "-" "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_144)"
可以看到nginx也是504的狀態,於是可以查看后端對應的服務是10.7.00.13:9301
可以使用curl 來驗證一下服務是否正常:curl -I http://localhost:9301/test.html

 

step3:查看9301端口狀態:

 

 wc -l 查看后大概有117個左右的連接,平時只有以下這樣的情況

 

 

step4:結合業務查看membership.controller 的access.log(本日志記錄了所有與本服務交互的請求處理), 查看調用請求的整個過程,有兩個驚人發現:第一個是紅框里面的ip, 第二個是紅框里面的當前請求線程名稱

 

 

step5:  第一個紅框的的ip 居然是我自己的ip, 這下子問題定位了,因為我本地有在請求membership 服務,並且是python開發的監控服務是否正常的應用所發出的請求。

 

 

step6:  結論為:因為我本機在每五分鍾(從上面的請求日志間隔可以窺探到)請求一次membership 服務的接口,用於保障beta環境的可用性驗證,最終因為請求的membership 服務連接一直不能釋放導致了membership 服務僵死掉。
 查看9301端口狀態時,存在這兩個狀態,說明如下:

 

 

step7:  解決方案:重新重啟了服務就恢復了,不過還發現了mq 地址變更但代碼配置里面未變更的問題並讓開發修復,算是意外的收獲。

備注:我的個人公眾號已正式開通,致力於測試技術的分享,包含:大數據測試、功能測試,測試開發,API接口自動化、測試運維、UI自動化測試等,微信搜索公眾號:“無量測試之道”,或掃描下方二維碼:

 

 添加關注,一起共同成長吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM