lsl20032 发表于 2009-2-26 17:42:46

LR中怎样取到服务器发回来的流水号?

各位大侠,现在我用LoadRunner做性能测试,被测程序是C#写的一个机票预定的C/S程序,我录制的协议是Microsoft.net的,当点击机票预定的按钮时,客户端向服务器端发送了一个请求,服务器端传过来一个流水号,在进入下一个页面时这个流水号和用户名的前四位构成一个订单号。现在的问题是,我的LR录制不下来这个流水号,在测试的时候,虚拟用户订票就全部订到我录制时的用户里面。
(比如,录制时的用户是staff001,订单号是staf0000286,0000286---是流水号,虚拟用户可以是staff002~staff110等,那么订票的结果全部是staf0000286订单号。)
我现在就是想知道用什么方法可以把流水号取出来,在脚本里添加一个函数或者其他方法?请各位有经验的大侠指点指点啊,不胜感激!!!!!!!!!!!

[ 本帖最后由 lsl20032 于 2009-2-27 11:07 编辑 ]

chare 发表于 2009-2-26 21:08:33

其实流水号就是服务器返回的字符串
1:这个字符串如果没加密,并且可视化(在网页源代码中可以看到),直接用web_reg_save_param 将其抓到,并且搞定
2:如果这个字符串加密了。就需要挂dll或者其他处理,先解密,再web_reg_save_param

总的就是先定位。服务器的这些数据返回到哪里可以看到。(这个实在不知道可以问开发的)
然后用web_reg_save_param处理。

chare 发表于 2009-2-26 21:13:44

用消息队列   vxworks下   
接收客户端   服务端线程   
struct   A{   
      ...   
}a;//假设都是字节对齐的   
struct   B{   
      ...   
}b;   
char   *buf=NUll;   
char   *buf1=NULL;   
//memset(a和b,   0,   sizeof(a和b));   
recv(socket,   buf,   sizeof(a),   );//假设发送的就是一个A的结构   
memcpy(&a,   buf,   sizeof(a));   
//依据不同来源做不同处理完   
b里   放了处理过的数据   
memcpy(buf1,   (char*)&b,   sizeof(b));   
   
msgQSend(queue1,   buf1,   len,   NO_WAIT,   )   
   
发送数据到服务器客户端线程   
变量类似于上   
msgQReceive(queue1,   buf,   len,   WAIT_FOREVER);   
memcpy(&a,   buf,   len)   
//分析出服务端   客户端不同处理,

这只是个例子。所以这些数据都是有生成的规则什么的。具体问开发人员。你到时候调下接口,或者就让他处理下页面。让那个流水号显示在页面上面,或者页面源代码中。

mr.bee 发表于 2009-2-27 00:06:01

为什么你向大家提问还要求大家支付积分?

adiao 发表于 2009-2-27 09:26:36

回复 4# 的帖子

就是

lsl20032 发表于 2009-2-27 11:08:42

回复 4# 的帖子

哦,实在不好意思,我是新手来这里,我本来是想给大家积分的,不小心弄错了,谢谢提醒!

lsl20032 发表于 2009-2-27 11:19:15

回复 3# 的帖子

你好,谢谢你的解答,但是我用的是Microsoft.NET协议,好像不能用Web_reg_save_param函数吧?
页: [1]
查看完整版本: LR中怎样取到服务器发回来的流水号?