LoadRunner—win/websockets通信中获取数据

发表于:2013-12-09 11:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ajupiter    来源:51Testing软件测试网采编

  过socket进行通信的分布式应用是比较常见的,包括winsocket和websocket,LR支持这两个协议。
  在使用LR回放socket协议的脚本时,可能会经常需要获取服务器返回的数据,语句格式如下:
lrs_create_socket("socket0", "TCP", "RemoteHost=1.2.3.4:12345",  LrsLastArg);
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
  很明显,socket0是通信所用套接字,buf0是LR将要发送给服务器的内容(来自用户行为),buf1则接收服务器返回。
  我们经常需要通过提取buf1中的内容,并适当的加一些断定语言,来判断这个通信操作有没有获取期望的数据。经常使用函数lrs_get_last_received_buffer,如下:
  lrs_get_last_received_buffer("socket0", &ActualBuffer, &NumberOfBytes);
  这样就把lrs_receive接收到的数据保存在了内存中(指针ActualBuffer指向的一个有LR自动动态分配的内存块),并返回数据长度(保存在NumberOfBytes中)。
  然后就可以像使用用户自定义的数组一样使用该缓冲区,如ActualBuffer[0]。需要注意的是,使用完成后需要手动释放ActualBuffer指向的内存,通过调用lrs_free_buffer。
  下面是一个简单示例,在处理服务器返回数据时,我们将其作为char数组处理,经过验证这是没问题的。
  完整代码:
vuser_init.c
#include "lrs.h"
vuser_init()
{
lrs_startup(257);
return 0;
}
Action.c
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号