51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1978|回复: 5
打印 上一主题 下一主题

[原创] C/S 协议数据动态关联的问题!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-8-18 15:07:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在c/s结构的系统压力测试时,碰到有数据是需要做动态关联的,也就是说,要从服务器返回的数据中截取固定长度的字符存成参数,然后发出去的时候把要变化的内容就使用此参数值,现在碰到的问题是,在脚本调试时,没有问题,在场景里运行的时候,只要有10个并发,就会提示保存参数出错,实在找不到原因了,只有请教高人了,脚本代码如下:
Vuser_init.c
/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Mon Aug 17 15:37:28
*********************************************************************/

#include "lrs.h"


vuser_init()
{
   
lrs_startup(257);

        lrs_set_recv_timeout(2,0);

    lrs_set_recv_timeout2(2,0);

    lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.1.200:8700",  LrsLastArg);

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

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

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

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

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

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

    lr_think_time(6);

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

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

   // lrs_receive_ex("socket0", "buf7","NumberOfBytesToRecv=2289", LrsLastArg);

    lrs_save_param( "socket0", NULL, "SessionId", 545, 32 );       

    lr_output_message("SessionId=%s",lr_eval_string("<SessionId>"));

    //lrs_receive("socket0", "buf7", LrsLastArg);

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

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

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

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

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

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

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

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

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

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

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

    lrs_receive("socket0", "buf19", LrsLastArg); //init_end

    return 0;
}

action.c

/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Mon Aug 17 15:37:28
*********************************************************************/

#include "lrs.h"


Action()
{       


    //char cm;
   
        lrs_set_recv_timeout(2,0);

    lrs_set_recv_timeout2(2,0);

    lr_start_transaction("sendpic");

    lr_think_time(18);

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

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

   

    lr_think_time(93);

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

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

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

    //lrs_set_receive_option(EndMarker, RecordingSize);

        //lrs_receive_ex("socket0", "buf25", "NumberOfBytesToRecv=557", LrsLastArg);

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

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

    lrs_receive("socket0", "buf27", LrsLastArg);
        //lrs_receive_ex("socket0", "buf27", "NumberOfBytesToRecv=1604", LrsLastArg);

    lrs_set_recv_timeout(5,0);

    lrs_set_recv_timeout2(5,0);

    lrs_save_param("socket0", NULL, "cm", 1454, 36);

    lr_output_message("cm=%s", lr_eval_string("<cm>"));

        lr_log_message("cm=%s", lr_eval_string("<cm>"));

       

    lrs_set_recv_timeout(2,0);

    lrs_set_recv_timeout2(2,0);

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

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

    lr_end_transaction("sendpic", LR_AUTO);

        //logout

         

    return 0;
}

vuser_end.c

/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Mon Aug 17 15:37:28
*********************************************************************/

#include "lrs.h"


vuser_end()
{

   lrs_set_recv_timeout(2,0);

    lrs_set_recv_timeout2(2,0);

    lr_think_time(14);

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

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

    lrs_close_socket("socket0");

    lrs_cleanup();

    return 0;
}

在场景里跑时,提示  lrs_save_param("socket0", NULL, "cm", 1454, 36)这句代码保存参数失败

[ 本帖最后由 xuefeng 于 2009-8-18 15:16 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-8-18 15:10:48 | 只看该作者
data.rar为data.ws,因为论坛不支持直接上传此文件,在此文件的BUF28里面,将一串字符用CM参数代替了。
还有一个文件为服务器返回的数据,请高人指点一下
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2009-8-18 15:21:37 | 只看该作者
    把用户数减少看是否报错,另外报错是否是全错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2009-8-18 15:52:27 | 只看该作者
    减少到2个都报错,有一个是成功的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2009-8-18 17:46:37 | 只看该作者
    有人帮我分析下原因?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-6-16 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
    发表于 2009-8-19 09:22:11 | 只看该作者
    1、把服务器返回的实际给出来,我找了半天,不知道哪个是你们服务器返回的数值;
    2、将lrs_save_param("socket0", NULL, "cm", 1454, 36)中的1454设大点,36也设置大点,然后再跑试试看,能不能输值,在场景中跑,不设置持续时间,使用1,2,3,4,5等并发,并且设置集合点,完了以后再检查输出的日志文件进行分析。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-19 06:45 , Processed in 0.078135 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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