每次尝试向 Mendix 应用程序发送 xas 请求时,我都会在 JMeter 脚本响应中遇到 401 unauthorized

I encounter a 401 unauthorized in my JMeter scripts response each time when I try to send an xas-request to a Mendix application

我没有使用 JMeter 的经验,所以如果我在这里遗漏了一些非常明显的东西,我深表歉意。

但是,每次我尝试发出 HTTP 请求(其中向服务器发送查询)时,我都会收到 401,请求如下所示:

{"action":"retrieve_by_query","params": {"queryId":"DkWjkFD27UKYSz9ytWW5ew","constraint":"","context":"37154696925809628","options":{"sort":[["DCM.TaskInstance_TaskCategoryInstance/DCM.TaskCategoryInstance/DCM.TaskCategoryInstance_TaskCategory/DCM.TaskCategory/OrderNumber","desc"],["HasMessages","desc"]],"offset":0,"amount":100}},"profiledata":{"1584961703745-131":51,"1584961703743-130":58,"1584961703774-133":106,"1584961703773-132":221}}

并且响应数据如下:

HTTP/1.1 401 Unauthorized
Cache-Control: no-store
Server: nginx
Set-Cookie: ARRAffinity=3769bc7afaf737a4a03d956ebdfc5742c39a3f6232952e26cf18d2da49b83c1e;Path=/;HttpOnly;Domain=****-t.****-ta.p.azurewebsites.net
Date: Mon, 23 Mar 2020 14:13:32 GMT
Content-Length: 0

我已经尝试使请求消息与我使用 Fiddler 检查的流相对应,但是这并没有给我带来更多帮助。

查看 Authentication chapter of Mendix documentation you should be sending Mendix-Username and Mendix-ApiKey HTTP Headers so make sure to add a HTTP Header Manager 您的测试计划并将其配置为发送上述 headers。

Mendix 应用程序中用于在客户端和服务器之间进行通信的协议非常复杂,因为服务器端是无状态的。在将请求发送到服务器之前,您需要确保客户端(在本例中为 JMeter)已通过身份验证。因此,要构建一个成功的 JMeter 脚本,您必须记录并重播整个通信序列,从身份验证到您要检查的查询。这种方法非常耗时。

这里的官方立场是这种类型的测试应该使用基于硒的解决方案来完成。

之前的回答中引用的文档详细说明了 Mendix 平台公开的 API 的身份验证,而不是客户端和服务器之间的身份验证。