我試圖測試由標記進行身份驗證的REST API。其過程是:使用Jmeter時,授權標題消失
- 提供用戶名和密碼,以獲得令牌
- 提取令牌,並將其保存到的JMeter(AUTH_TOKEN)可變
- 設置與所提取的令牌值的報頭「授權」。
- 使用令牌發送請求。
這是我的測試計劃:
我能成功提取令牌。但是,在步驟4中發送請求由於缺少授權而失敗。查看結果樹顯示請求包含授權標頭,但服務器找不到授權標頭。如下圖所示,我添加了2個標頭Authorization和Content-Type,並且它們出現在請求中。服務器返回它已經實際收到的報頭,但沒有授權:
誰能幫我解決這個問題?非常感謝。
P/S:服務器通過Python和Flask框架實現RESTful API。我使用Apache HTTP Server部署了服務器。
========== [更新] ========================
服務器代碼實現與燒瓶在Pycharm。將請求從JMeter發送到使用嵌入式Flask服務器運行的服務器時,一切都很完美。該問題僅在使用Apache HTTP Server部署服務器代碼時出現。上述情況下JMeter的配置除端口外完全相同。但是如果原因來自Apache服務器,這似乎不合理。
========== [更新&解決] ========================
我發現我的問題在這裏的原因Missing authorization header。由於使用Apache和mod_wsgi部署Web應用程序,默認情況下授權標頭不會傳遞給應用程序。我必須將這一行WSGIPassAuthorization On
添加到我的虛擬主機配置中。
響應數據選項卡不顯示標題,因此我不認爲這是問題 – user7294900
響應標題顯示在採樣器結果選項卡中。所以,你可能想檢查那裏 –
@ user7294900,Varun Sharma:我知道響應數據選項卡顯示響應主體。由於服務器返回了「缺少令牌」的錯誤,所以我修改了服務器代碼以返回所有請求頭。因此,圖中的Response Data選項卡返回服務器收到的請求標題。 – Nana