LoadRunner中使用windows_socket协议.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LoadRunner中使用windows_socket协议

在LoadRunner中使用windows_socket协议,大体说来,就像把大象放进冰箱一样总共分三步: 第一步:把冰箱门打开。 //建立到服务端的连接 ??? rc = ?? ?lrs_create_socket(socket0, TCP, LocalHost=0, RemoteHost=3:8988, LrsLastArg); if (rc==0) ?????? lr_output_message(Socket? was successfully created ); else ?????? lr_output_message(An error occurred while creating the socket, Error Code: %d, rc); 第二步:把大象装进去。 ? ?? lrs_send(socket0, buf0, LrsLastArg);?? //往socket0发送buf0中的数据 ?? lrs_receive(socket0, buf1, LrsLastArg);//将socke0中返回的数据存放到buf1中 第三步:把冰箱门带上。 ??? ??? //关闭连接 ??? lrs_close_socket(socket0); 大家肯定已经看出来了,整个关键是在第二步,要把这么一头大象装到冰箱里可不是件容易的事情,我们要对传送的数据做一些处理才行。LR会把你发送的数据包内容写到data.ws这个文件中,那么我们在此也同样应该把数据写到data.ws中去。假设我要发送的是“00100312303456”这一串字符,那么我就直接把它写到data.ws中,脚本如下: ;WSRData 2 1 send buf0 10 00100312303456? //注意要加 recv buf1 128 -1 运行脚本,可以看到执行成功。在日志信息中可以打印出发送的BUFFER和接收到的BUFFER内容。 接下来,我们要对发送的字符串进行参数化,让脚本每次发送的字符串都不一样,怎么做呢? 方法有两种: 1、直接参数化。在data.ws中是可以直接进行参数化的,具体操作我就不多说了。要注意的是默认的参数名称符号是尖括号(),和HTTP协议的大括号({})不同。脚本如下: send buf0 106 string? //string是自定义的参数名 这种方法最简单,也容易理解。 2、第二种方法则麻烦一点,下面重点做个介绍。 事情是这样的:如果我要发送的数据是很通过简单的方法拼接起来,举个简单的例子,比如是“用户名(假设是123)+密码(假设是456)”,在这种情况下,使用第一种方法就够用了,我可以设置两个参数username和password,写成 send buf0 106 usernamepassword 的方式就可以了。 但是这边的情况稍微复杂一些,发送的数据格式还需要加上字符串的长度,比如在上面的例子中,需要这样表示:00100312303456。 前四位0010是表示后面发送的字符串总长度是10,后面的03则表示用户名有3位,再后面的123才是真正的用户名,再后面的03456也是同样的道理。而每次发送的用户名长度不同,字符串也就不同,比如用户名如果是1234,那么我的报文就应该是这样“001104123403456”这样一来,我就不能通过简单地拼接的方式来发送了,而需要再对它进行一些处理。 我的方法是在action中进行字符串的拼接和处理: ?char data[200]; ?char length[20]; ?len = strlen(lr_eval_string({usermame})); ?sprintf(length,%d,len); ?strcat(data,length); ?strcat(data,{username}); 然后,再通过lrs_save_param_ex函数把该数据保存到data_param参数中。 lrs_save_param_ex(socket0, user, data, 0, strlen(data),NULL, data_param); 最后,在data.ws文件中使用data_param参数发送数据包: send buf0 data_param

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档