0

我在使用 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 检查的流对应,但这并没有让我更进一步。

4

2 回答 2

0

查看您应该发送的 Mendix 文档的身份验证Mendix-Username章节和Mendix-ApiKey HTTP 标头,因此请确保将HTTP 标头管理器添加到您的测试计划并将其配置为发送上述标头。

于 2020-03-23T14:29:51.357 回答
0

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

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

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

于 2020-04-22T13:57:49.413 回答