我试图测试由令牌验证的REST API。这个过程是:
这是我的测试计划:
我可以成功提取令牌。但是,由于缺少授权,在步骤4中发送请求失败。查看结果树显示请求包含授权标头,但服务器无法找到授权标头。如下图所示,我添加了2个头文件Authorization和Content-Type,它们出现在请求中。服务器返回了它实际收到的标题,但没有授权:
任何人都可以帮我解决这个问题吗?非常感谢。
P / S:服务器通过Python和Flask框架实现RESTful API。我使用Apache HTTP Server部署了服务器。
========== [增订] ========================
服务器代码在Pycharm中使用Flask实现。当从JMeter向使用嵌入式Flask服务器运行的服务器发送请求时,一切都很完美。只有在使用Apache HTTP Server部署服务器代码时才会出现此问题。在上述情况下,JMeter的配置与端口完全相同。但如果原因来自Apache服务器,那么它似乎并不合理。
========== [更新&解决] ========================
我在Missing authorization header找到了问题的原因。由于使用Apache和mod_wsgi部署Web应用程序,因此默认情况下不会将授权标头传递给应用程序。我必须将此行WSGIPassAuthorization On
添加到我的虚拟主机配置中。
答案 0 :(得分:0)
请检查您的api端点是否需要具有“GET / regions”请求的请求正文。在“请求”部分的第二个屏幕截图中,“获取数据:”部分为空白。它主要意味着服务器期望请求正文以及您的GET请求。
答案 1 :(得分:0)
我的期望是您的Extract token
工作不正常,即您的${BEARER}
变量在实际值之前有一个空行,如屏幕截图所示。
使用Debug Sampler and View Results Tree Listener组合仔细检查${BEARER}
变量值:它不应包含空行。如果是 - 请检查您的Extract token
配置并对其进行修改以仅返回标头值。
建议使用JSON Extractor从JSON数据类型中获取值。