【问题标题】:How to capture signalR connection string in Jmeter如何在 Jmeter 中捕获 signalR 连接字符串
【发布时间】:2018-04-04 10:31:13
【问题描述】:

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

我需要在下面的url中传递connectionToken和connectionData。

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

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

[{"name":"alertshub"},{"name":"loggerhub"},{"name":"notificationhub"}]

如何捕获和传递它。 请找到截图

enter image description here

enter image description here

enter image description here

enter image description here

无法捕获以下连接字符串

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 的格式不正确。

BlazeMeter1

Blazemeter2

Blazemeter3

【问题讨论】:

    标签: jmeter performance-testing jmeter-4.0


    【解决方案1】:

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

    **-->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”已修复,则尝试“用户定义的变量”,或者如果它在某些响应中可用,则使用正则表达式捕获并进一步使用它。 我希望您在数据提取过程中不会出错。

    【讨论】:

    • @sunny_teo 我想,我需要搜索 connectionID
    • @Lakshmikanth :- 搜索是否有任何需要关联的连接 ID。您还可以在导航时使用 fiddler 分析请求和响应,并将其与 jmeter 请求、标头值、动态值和响应进行比较。
    • @sunny_teo 在以下请求中: GET //abc.com/....notificationhub%22%7D%5D**&_=1522754518635 我需要附加并发送 '=1522754518635' ,它是我猜是增量随机数。我需要弄清楚。当我发送这个: GET //abc.com/Web/signalr/negotiate?clientProtocol=1.5&connectionData=[{"name":"alertshub"},{"name":"loggerhub"}&_=152275451863 我会收到 connectionid ,这是一个uuid。 Sunny,你有什么建议
    • @Lakshmikanth 1. 使用 fiddler 运行两次请求,并确认它是随机的还是递增的。 2.如果是随机则使用__Random(),如果是增量则使用计数器。
    • @sunny_teo 它是一个 13 位的增量数字,我使用 Blazemeter 进行了分析。但我不知道天气我可以使用任何(随机)13 位数字并开始递增。请查看我的问题中的屏幕截图。前两个屏幕截图是一个会话,第三个屏幕截图是新会话(再次登录,分析数字)感谢您的建议。
    猜你喜欢
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多