歡迎關注【無量測試之道】公眾號,回復【領取資源】,
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自動化測試等,微信搜索公眾號:“無量測試之道”,或掃描下方二維碼:
添加關注,一起共同成長吧。