kissher 发表于 2011-6-20 15:05:24

lr脚本如何实现长链接

我录制了一个脚本,模拟向服务器发送报文,长链接。但是在运行场景的时候,用户都是失败的,脚本运行的时候,没见报错,请问这是什么原因呢?
以下是我的脚本
#include "lrs.h"


vuser_init()
{


        lrs_startup(257);       

        lrs_create_socket("socket0", "TCP", "RemoteHost=130.251.101.41:10023",LrsLastArg);

    return 0;
}







/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Wed Aug 18 13:53:27
*********************************************************************/

#include "lrs.h"


Action()
{

        lr_rendezvous("集合点");

        lr_start_transaction("发送报文");

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

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

        lr_end_transaction("发送报文", LR_PASS);


    return 0;
}






#include "lrs.h"


vuser_end()
{
    lrs_close_socket("socket0");

        lrs_cleanup();



    return 0;
}




迭代次数设置的为1000次,run time settings中并发用户50个,时间为5分钟

liujinkui 发表于 2011-6-20 15:49:07

你把close 也放入Acation
你是怎么样判断报文发送成功的.

durbey_712 发表于 2011-6-20 15:54:06

标题说的是lr脚本如何实现长链接。既然是长连接,就需要在初始化的时候建立起来,然后连接不关闭,这些用户能够共享这些连接。
我觉得lz的脚本存在一点问题,初始化的时候,的确建立了连接,但是在并发的时候,存在多线程并发的情况,如果一个连接被获取了以后,那其他线程需要获取其余的空闲的tcp长连接,当连接池不够用的时候,判断一下,是否需要new一些新的连接,或者等待连接池有可用连接。
代码需要修改下吧。

kissher 发表于 2011-6-20 17:23:03

问题已经解决了,谢谢大家

yxd2006 发表于 2012-6-19 15:41:59

你是怎么解决的,我也遇到这个问题,烦请赐教
QQ:281891741
页: [1]
查看完整版本: lr脚本如何实现长链接