LR 对无法录制的C/S(有加密要求)系统长连接做性能测试

来源:互联网 发布:手机装机必备软件 编辑:程序博客网 时间:2024/06/04 21:55

1.首先介绍一下C/S系统

(1).客户端一般为非windows系统上的应用(比如移动互联网类),服务端就不用介绍了

(2).整套系统采用的时tcp的长连接方式

(3).整个长连接数据传递都必须采用特定加密格式和指定的数据长度

2.使用LR测试该系统的性能

协议选择以winsocket为佳,当然测试长连接也可以用java Vuser ! 两者相比较而言、前者更佳。直接上action步骤代码

#include "lrs.h"




Action()
{
lr_start_transaction("regiester");


    lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=192.168.1.11:9003",  LrsLastArg);


    lrs_send("socket0", "buf0", LrsLastArg);//send code


lrs_send("socket0", "buf1", LrsLastArg);//send length


lrs_send("socket0", "buf2", LrsLastArg);//send body


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


    lrs_close_socket("socket0");


lr_end_transaction("regiester", LR_AUTO);


return 0;
}

          整个脚本过程中最难的就是客户端需要发送到服务端的数据该如何写的问题,因为不能录制,所以请求的加密数据不知道以怎样的形式提交给服务端的。

查看LR文档,提到winsocket 协议,数据一般都采用的是ascii码传输的,故要将加密数据转换成ascii的形式写入buf中,贴代码


看上图 由于服务端接收的加密数据位字节码形式,而且buf中发送字节码都采用的是16进制方式,所以内容就变成一堆的“\x**”的组合!

这样,整个过程脚本就写完了,验证器正确性时,回放一下就行!

这里我用到了ascii码和16进制的转换工具,将内容转换输入;并用到了网络抓包工具实现数据传递的正确性检查!

大家想下载的话可以到http://download.csdn.net/user/wise622453 去下载,也可以自己网上找

最后附上 1000 socket并发的license 

global 1000: AEACFSJI-YASEKJJKEAHJD-BCLBR