51Testing软件测试论坛

标题: loadrunner录制socket脚本时参数替换的问题(急!急!急!) [打印本页]

作者: yyfa6    时间: 2008-6-11 11:26
标题: loadrunner录制socket脚本时参数替换的问题(急!急!急!)
刚开始学习使用loadrunner,现在正在编写一款C/S架构的软件的测试脚本。
这款软件是类似于浩方的游戏对战平台,客户端和服务器之间通过TCP/UDP进行通信和传输数据。现在为了要模拟多用户登陆(不同的帐号和密码),我在脚本中将用户的帐号和密码设置为参数从指定的文档中获取,然后将帐号和密码存入指定的数据结构再将数据结构存到变量param1中。使用如下语句实现:
lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=xxx.xxx.xxx.xx:xx", LrsLastArg);
lrs_save_param_ex("socket0", "user", (char *)StreamBuf,  0, packlen+4, "ascii", "param1");
lrs_send("socket0", "buf0", LrsLastArg);
同时将data.ws中buf0的数据修改为如下:
send  buf0 "{param1}"
结果通过服务器端日志发现我运行脚本后登陆的帐号始终不变。(通过在脚本中的打印可以确定,在执行脚本时用户名和密码是改变了的)
请问这个问题如何解决?另能否介绍一下data.ws文件到底有何作用,是否是做为判断脚本是否执行通过的依据?
非常感谢!!!
作者: yyfa6    时间: 2008-6-11 15:27
各位大侠们帮帮忙呀!!!
作者: Zee    时间: 2008-6-11 15:32
1, 关于参数不改变的问题,你的详细设置是什么样的?说出来看看。

2, data.ws可以具有你说的这种功能,它记录了录制期间所有的发送和接收的数据包。
在后续执行脚本的时候,如果接收到的数据包和这里的不同,就会出来一个mismatch的提示。
但是,要注意,mismatch不一定是错误。
作者: aks5201314    时间: 2008-6-11 16:31
登陆的帐号始终不变,要看你参数更新策略是那种方式了.data.ws文件包含了你录制脚本时所有发送和接受的数据,参数花用户名,密码之类的操作一般都在data.ws文件进行操作.
作者: yyfa6    时间: 2008-6-11 17:10
我设置了一个username参数和一个password参数,这两个参数都file类型。
strcpy(req.name,  lr_eval_string("{TestUserName}"));
strcpy(req.pwd, lr_eval_string("{TestPassword}"));
采用如上方式将数据设置到结构中,然后再将结构使用lrs_save_param_ex函数存入param1中再send数据
lrs_save_param_ex("socket0", "user", (char *)req,  0, sizeof(req), "ascii", "param1");
lrs_send("socket0", "buf0", LrsLastArg);
以上是示例代码,实际由于还要进行加密所以会对req结构再进行一次转换。
作者: Zee    时间: 2008-6-11 17:15
要的具体的设置还是没有描述出来。呵呵。
作者: yyfa6    时间: 2008-6-11 17:37
"{TestUserName}"和"{TestPassword}"都是file类型的参数,这辆个参数分别关联一个文件。
至于具体设置我还不是太明白是什么意思?

整个工程是用socket协议录制的,除了这两个参数其余的都是参考例子手工添加的脚本代码。
作者: yyfa6    时间: 2008-6-12 15:44

问题还没有解决呀
作者: vickiren    时间: 2008-12-12 14:59
标题: 回复 7# 的帖子
你的参数的 更新值方式是怎样的?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2