51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6324|回复: 34
打印 上一主题 下一主题

[原创] 怎么在Buffer里面读取想要的信息

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-5-23 12:31:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是用Winsocket协议录制的脚本,现在想要从返回的结果里面去读取想要的信息.
现在查询关键字是动态的,用lr_save_searched_string函数获取,可是无法确想要
的字符串的长度.  
   还有用Winsocket协议录制的脚本要参数化一个参数,是不是直接到data.ws里找到相应的BUF
,再把面要的内容Replace with a parameter 就可以 了.

........我是一个新手,第一次用这个测试软件,问的问题可能很肤浅,望各位LR高手不要见怪
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-5-23 12:41:25 | 只看该作者
嗯,参数化data.ws里的buffer就行了。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-5-23 13:25:19 | 只看该作者
谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-5-23 13:29:16 | 只看该作者
我还有个问题:
lrs_get_static_buffer("socket0","buf11",178,i,NULL); 这个函数,我想把它的最后第二个参数,用变量代替,结果就显示这样的错误:
c:\\program files\\mercury interactive\\mercury loadrunner\\scripts\\commonselecttest\\\\combined_CommonSelectTest.c (4): 1 errors, not writing pre_cci.ci

请教..什么原因
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-5-23 13:46:52 | 只看该作者
lrs_get_static_buffer ( char *s_desc, char *buffer, int offset, int length, char *encoding );
offset  The offset inside the buffer (binary representation of the data).  
length  The length of the data to retrieve (binary representation of the data).Specify -1 to ignore the offset and retrieve the whole buffer.  
encoding  The encoding method for the returned data. The possible values are "ascii" or "ebcdic". A NULL value indicates the original client format.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-5-23 13:50:41 | 只看该作者
谢谢..英文不好理解
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-5-23 14:03:25 | 只看该作者
不是吧。我也是用win socket测试,但是像Zee所说的那样去参数化,好像不怎么行得通喔。我测试的是一个聊天工具(就像聊天室的那种,不过采用的是C/S架构的)

send buf0 76
        "+IG&"
        "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00"
        "<<Pid>"    //这里就是我要参数化的地方啦。录制的时候是0001的
        "\x00\x00\x00\x00\x00\x00"
        "aaa"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00"
        "111"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

但是参数化后,运行就会出错:
Action.c(14): lrs_send(socket0, buf2)
Action.c(14): 错误: socket0 - 软件造成连接终止。错误代码: 10053。

请问有谁知道是什么原因啊??请指教。。。在线等。

[ 本帖最后由 wawa133 于 2006-5-23 14:06 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-5-23 14:11:04 | 只看该作者
说明你在14行的地方有错误,你再去查查lrs_send函数的格式.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2006-5-23 14:12:19 | 只看该作者
lrs_send 这函数是这样的:
lrs_send("socket0", "buf10", LrsLastArg);
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-5-23 14:21:45 | 只看该作者
lrs_send("socket0", "buf2", LrsLastArg);
这句吗?不觉得有错啊。
send buf2 28
        "+IG&"
        "\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00"
        "\fGA(E01"
        "\x00\x00\x00\x00"
        "1&"

实在是看不出有什么地方错。

参数化的时候是不是要按照软件的数据库定义的名称啊?我只想参数化登录时的用户号,用户昵称,和密码。
ID,Name,Pwd
001,11,11
002,22,22

不知道这样定义对不对。但是不论我怎么运行都是出同样的错喔。

[ 本帖最后由 wawa133 于 2006-5-23 14:24 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2006-5-23 14:25:50 | 只看该作者
你脚本里是这么写的吗?
但是,你的错误提示是:
Action.c(14): lrs_send(socket0, buf2)  <--这个!  再仔细看看
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2006-5-23 14:27:49 | 只看该作者
可以啊,不过你的用户名,密码要一一对应起的!  parameter list 里面你一个一个选项要注意看的
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-5-23 14:29:15 | 只看该作者
vuser_init:#include "lrs.h"


vuser_init()
{
   
   lrs_startup(257);

    lrs_create_socket("socket0", "TCP", "RemoteHost=ntm034.ntm789vr.com:5000",  LrsLastArg);

    lrs_send("socket0", "buf0", LrsLastArg);

    lrs_receive("socket0", "buf1", LrsLastArg);

    return 0;

}
action:#include "lrs.h"


Action()
{
    lr_think_time(7);

    lrs_send("socket0", "buf2", LrsLastArg);

    lrs_receive("socket0", "buf3", LrsLastArg);

    lrs_send("socket0", "buf4", LrsLastArg);

    lr_think_time(7);

   lrs_send("socket0", "buf5", LrsLastArg);
   
   
   
    return 0;
}
vuser_end:#include "lrs.h"


vuser_end()
{
    lrs_cleanup();

    return 0;
}
data.ws:
;WSRData 2 1

send buf0 76
        "+IG&"
        "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00"
        "<0001"
        "\x00\x00\x00\x00\x00\x00"
        "aaa"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00"
        "111"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

recv buf1 20
        "+IG&"
        "\x80\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00"

send buf2 28
        "+IG&"
        "\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00"
        "\fGA(E01"
        "\x00\x00\x00\x00"
        "1&"

recv buf3 20
        "+IG&"
        "\x80\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x00"

send buf4 28
        "+IG&"
        "\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00"
        "\f"
        "\x00\x00\x00"
        "\b44545545"

send buf5 36
        "+IG&"
        "\x00\x00\x00\x06\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x10"
        "this is / test!!"



-1


这就是所有的脚本啦。都在这里了。搞得我头都大了。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2006-5-23 14:37:58 | 只看该作者
你可以用HTTP加Winsocket两协议一起录,即然你要参数化登陆,那么你就不要分开录了,全部录在action里面吧.这样录出来的脚本好读一点.你再试试吧!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2006-5-23 14:42:18 | 只看该作者
用http加winsocket录制不了脚本,c/s架构的。不过我可以试试看把登陆的也录进ACTION里看看。谢谢楼上的。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2006-5-23 14:52:38 | 只看该作者
呵呵,不客气,我也是第一次用的,帮助上提到每次回收的时候LR只运行ACTION里的脚本,如果你要参数化登陆,就要把vusr_int 里的录到action里了.


我现在头也不比你好多少,有好几个函数比如lrs_save_searched_string();最后第二个参数是要求一个明确的数字,可是查询条件各种各样,我哪知道那个条件的字符串有多少长啊.哎,字母它一个不认识,即使我知道有多少,我也只能通过函数得到,到这里就死了,做不下去了.LR里这个函数的参数是死的.现在证在头痛中................
    找寻其它解决办法.
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2006-5-23 14:53:05 | 只看该作者
是回放!!写错字了!
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2006-5-23 14:53:17 | 只看该作者
试过了。我把 lrs_send("socket0", "<NewParam>", LrsLastArg); buf0参数化,但是运行的时候出错:Action.c(14): lrs_send(socket0, <NewParam>)
Action.c(14): 错误: 指定的缓冲区 <NewParam> 不存在。错误代码: 9011。

请问这个是什么问题啊?
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2006-5-23 14:54:27 | 只看该作者
晕!!不能直接把BUF参数化的
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2006-5-23 14:57:20 | 只看该作者
你要到data.ws里面到那个buf,再到里面打到你要参数化的用户名,密码什么的,再参数化,如果还不行你就要写脚本了!用什么函数就看HELP吧.我第一次玩这东西,被他玩死了要................
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-14 02:06 , Processed in 0.073597 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表