如何在Jmeter中捕获signalR连接字符串

由于信号器连接,在jmeter中执行脚本时出现错误

我需要在URL中传递connectionToken和connectionData,如下所示。

/Web/signalr/connect?transport=longPolling&clientProtocol=1.5&connectionToken=${connectionToken}&connectionData=${connectionData}”

我能够捕获ConnectionToken并将其成功传递。但是,我遇到了connectionData的问题,看起来像

[{“ name”:“ alertshub”},{“ name”:“ loggerhub”},{“ name”:“ notificationhub”}]

无法捕获下面的连接字符串

connectionData:[{“ name”:“ alertshub”},{“ name”:“ loggerhub”},{“ name”:“

notificationhub”}]]

get方法将以上connectionData发送为

GET

//abc.com/Web/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22alertshub%22%7D%2C%7B%22name%22%3A%22loggerhub%22%7D

%2C%7B%22name%22%3A%22notificationhub%22%7D%5D&_ = 1522754518635

并获得响应connectionToken。我能够提取connectionToken。

现在,我需要发送

GET

//abc.com/Web/signalr/connect?transport=serverSentEvents&clientProtocol=1.5&tid=10&connectionToken=%27FcFUJytTeVDsNq4EM5iY59NrIlAO4EK0nU%2BP9fDasBFDTA%2B78kpLr05HaQoqstQouqyFMP2hShwh2eHdiG%2BCsRq7wNHs70BVSkjJiLIdyePfB3SmMCmeZeZyvd1xzfnc%27&connectionData=%255B%257B%2522name%2522%253A%2522alertshub%2522%257D%

252C%257B%2522name%2522%253A%2522loggerhub%2522%257D%252C%257B%2522name%2522%253A%2522notificationhub%2522%257D%255D%26_%3D1522754518635

它具有有效的connectionToken(已提取),但没有connectionData。

响应为解析值%时遇到意外字符。路径’‘,第0行,位置0。

我的问题是如何获取[{“ name”:“ alertshub”},{“ name”:“ loggerhub”},{“ name”:“

notificationhub”}]的值。

接下来我需要发布

POST

//abc.com/Web/signalr/connect?transport=longPolling&clientProtocol=1.5&connectionToken=FcFUJytTeVDsNq4EM5iY59NrIlAO4EK0nU+P9fDasBFDTA+78kpLr05HaQoqstQouqyFMP2hShwh2eHdiG+CsRq7wNHs70BVSkjJiLIdyePfB3SmMCmeZeZyvd1xzfnc&connectionData=%5B%7B%22name%22%3A%22alertshub%22%7D%2C%7B%22name

%22%3A%22loggerhub%22%7D%2C%7B%22name%22%3A%22notificationhub%22%7D%5D&_ =

1522754518635

如您在此处看到的,它具有有效的connectionToken,但没有connectionData。

对此的响应是:ConnectionId的格式错误。

回答:

您需要使用与连接令牌相同的方法。似乎您的变量未获得所需的值。您是否在两个线程组之间使用相同的变量?

**-->Here request is encoded and connection data is also encoded.**

GET //abc.com/Web/signalr/negotiate?clientProtocol=1.5&connectionData=**%5B%7B%22name%22%3A%22alertshub%22%7D%2C%7B%22name%22%3A%22loggerhub%22%7D%2C%7B%22name%22%3A%22notificationhub%22%7D%5D**&_=1522754518635

并获得响应connectionToken。我能够提取connectionToken。

现在,我需要发送

**-->Here again encoded connection data is further encoded.**

GET //abc.com/Web/signalr/connect?transport=serverSentEvents&clientProtocol=1.5&tid=10&connectionToken=%27FcFUJytTeVDsNq4EM5iY59NrIlAO4EK0nU%2BP9fDasBFDTA%2B78kpLr05HaQoqstQouqyFMP2hShwh2eHdiG%2BCsRq7wNHs70BVSkjJiLIdyePfB3SmMCmeZeZyvd1xzfnc%27&connectionData=**%255B%257B%2522name%2522%253A%2522alertshub%2522%257D%252C%257B%2522name%2522%253A%2522loggerhub%2522%257D%252C%257B%2522name%2522%253A%2522notificationhub%2522%257D%255D%26**_%3D1522754518635

如果我没弄错,请避免编码两次。在第一张和第二张屏幕截图中,您对其进行了两次编码。如果“

connectionData”是固定的,则尝试“用户定义的变量”,或者如果它在某些响应中可用,则使用正则表达式捕获并进一步使用它。希望您在提取数据时不会出错。

以上是 如何在Jmeter中捕获signalR连接字符串 的全部内容, 来源链接: utcz.com/qa/400967.html

回到顶部