Loadrunner 和 Lightstreamer

Posted

技术标签:

【中文标题】Loadrunner 和 Lightstreamer【英文标题】:Loadrunner & Lightstreamer 【发布时间】:2013-03-09 19:42:21 【问题描述】:

我们有一个使用 LightStreamer 流式传输数据的应用程序。它通过 HTTP 执行此操作。

我正在尝试使用 LoadRunner 对该应用程序进行性能测试。

我有两个网址: URL 1 创建会话 id 并保持打开状态,此 URL 将继续加载 URL 2 使用此会话 ID 发出请求。每个请求的响应都会出现在 URL1 的页面上。

我遇到的问题是,当我发出对 URL 1 的请求时,我无法在保持此请求打开的同时发出后续请求。我尝试使用 web_concurrent 包装器,但这会产生问题,因为在我可以向 URL 2 发出请求之前,我需要从 URL 返回的会话 ID。

获取 ID 不是问题,在第一个请求仍在运行时执行请求是问题。

之前有没有人用 LoadRunner 成功测试过 LightStreamer?

这是我能在网上找到的唯一一件其他人正在做同样事情的事情:http://www.sqaforums.com/showflat.php?Number=685960

很遗憾,他不再与我们公司合作。我尝试在 LinkedIn 上与他联系,但运气不佳。

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

如果我理解您的问题,您希望测试在 11.50 版中内置于 LoadRunner 中的轮询或推送通信。我们实际上在开发和测试此功能的过程中使用了一个 LightStreamer Demo 应用程序,它们应该在记录时由 Async 关联引擎拾取。

如果您使用的是 LoadRunner 11.5x 并且没有发生这种情况,我很想了解更多有关业务流程的信息。

Shane Evans

【讨论】:

感谢您抽出时间回复我 Shane。我很感激。这是我到目前为止所拥有的: [code] web_reg_save_param("p_sessionid", "LB=SessionId:", "RB=\r", LAST); web_url("create_session.txt", "URL=", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf" , "Mode=HTML", EXTRARES, "URL=", Enditem, LAST); [/code] 我的下一步是弄清楚我如何在此函数继续无限运行时解析响应。响应如下所示: [code] ction.c(7): t=5506ms: "URL" 的 7 字节响应正文 (RelFrameId=1, Internal ID=1) Action.c(7): PROBE\r\ n Action.c(7):t=6607ms:“URL”的 59 字节响应正文(RelFrameId=1,内部 ID=1)Action.c(7):1,1||03:46:29 PM| ||22:$215.4200|$$1.9800||||||2,357,903||\r\n Action.c(7): t=7609ms: “URL”的 49 字节响应正文(RelFrameId=1,内部 ID=1 ) Action.c(7): 1,1||||||||$$215.4100|5|$$215.4500||2,358,003||\r\n [/code] 第一个 EXTRARES 的响应将始终是 1,1,如果我在 EXTRARES 块中发出后续请求,那么它们将是 2,1 和 3,1,一直到 n,1 .我需要某种方法来尝试测量发出初始请求和获得响应之间的延迟。棘手 - 有人有什么想法吗?我还需要想办法在 6 分钟后结束 web_url() 请求。使用 web_set_timeout("STEP", 600) 只会在错误中结束 web_url 调用 - 这不是我真正想要的。【参考方案2】:

除了一个特定的部分,我都准备好了。

其余如下: web_url("create_session.txt", "网址=网址", “目标框架=”, "资源=0", "RecContentType=文本/html", “推荐人=”, "快照=t1.inf", "模式 = HTML", 额外的, “URL=URL”,ENDITEM, “URL=URL”,ENDITEM, “URL=URL”,ENDITEM, “URL=URL”,ENDITEM, “URL=URL”,ENDITEM, “URL=URL”,ENDITEM, "URL=URL",ENDITEM, 最后);

如上所述,每个 EXTRARes URLS 都以 1,1、2,1、3,1 等格式响应,因此我使用 web_reg_find 来计算这些出现次数。

我的最后一个问题是:我使用 web_set_timeout("STEP", 60);使 web_url 函数在 60 秒后停止,但这会导致:Action.c(20): Error -27728: Step download timeout (60 seconds) has expired [MsgId: MERR-27728]

是否可以优雅地执行此操作,因为它也将我的 Transaction 的返回设置为失败状态。

【讨论】:

【参考方案3】:

抱歉,耽搁了这么久。假期和其他因素的混合......

您的请求超时是否会影响脚本的完成能力?如果没有,您可以使用 lr_continue_on_error 函数,具有以下选项之一:

0 = LR_ON_ERROR_NO_OPTIONS
1 = LR_ON_ERROR_CONTINUE
2 = LR_ON_ERROR_SKIP_TO_NEXT_ACTION
3 = LR_ON_ERROR_SKIP_TO_NEXT_ITERATION
4 = LR_ON_ERROR_END_VUSER

【讨论】:

以上是关于Loadrunner 和 Lightstreamer的主要内容,如果未能解决你的问题,请参考以下文章

loadrunner 中的响应时间和实际不符合这是为啥

loadrunner 11.0录制脚本内容为空,录制快照和回放快照也没有,怎么解决?

loadrunner11+12 app性能测试

loadrunner11怎么破解

loadrunner11为啥不能录制google浏览器

loadrunner中场景怎么理解?