海龙 发表于 2004-5-9 12:09:27

利用Robot进行在线数测试

测试目的:测试服务程序支持的最大的用户在线数
说明:这里所说的在线数不是并发数,这种方法的优点是可以使用尽可能少的硬件资源来完成测试。

以使用socket协议的C/S架构的系统说明测试方法:
VU脚本:
   /*
      ->-> Session File Information <-<-
       Created: Fri Jul 18 14:28:01 2003
          Name: F:\ttt\TestDatastore\DefaultTestScriptDatastore\TMS_Sessions\123.wch
          Type: Rational Robot - API
                (with Winsock1 Data)
*/

#include <VU.h>
{

push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */
push Think_def = "LR";
Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */
push Timeout_val = Min_tmout;

SERVER = sock_connect("123001", "SERVER:2000");

{ INFO SERVER "SERVER"="192.168.1.12"; } /*1*/

set Server_connection = SERVER;

push Think_avg = 0;

sock_send
    "`45645651300000000001cc00f701000002000000c3330100000000000000000001000000"
    "00000000000sdgsdfgfhjghjjdfhjhkjgfhjgfjjk000000000000hh0000000000000000000000"
    "000000000000000000000000000000000000000000000100`g2222`0012313546545465431"
    "`45641313000000000000000000000000000000000000`";


sock_nrecv ["123002"] 200;

sock_send
    "`1321321656548745215599154654456546122132112313210000000000000001000000"
    "00000000021321215665654548879654654655562000000000000000000000000000000"
    "00000000000000000000000000000000000000000000012131132321213212111323213"
    "`123110000000`Z2";


sock_nrecv ["123003"] 50; /* 50 bytes */

sock_disconnect(SERVER);

pop ;

}

socket协议通信过程:建立socket连接――收发数据――断开socket连接
sock_disconnect(SERVER),为断开socket连接的命令。

    此方法采用的是删除sock_disconnect命令,使用建立socket连接――收发数据――不断开连接的方式,这样一个虚拟用户就可以打开多个socket连接,以达到服务器大量用户在线的状况。
    以100个虚拟用户,每用户执行脚本10次为例,正常情况下虚拟用户建立socket连接――收发数据――断开socket连接,这样在服务器上最大的在线数为100。如果不断开连接,服务器理论上最大在线数最大可以达到1000。

影响因素:
1、一台机器可以打开的socket连接数受系统限制,打开过多的socket系统会报错。在P4、512M内存的机器上成功打开过4500个socket连接。
2、虚拟用户的进程退出,会自动关闭这个用户打开的全部socket连接;

   实际测试案例:C/S架构程序,在建立了1500个Socket连接后,服务程序自动退出。

yg_82 发表于 2004-7-30 10:16:49

在哪个地方可以设置运行脚本的次数啊?谢谢了

海龙 发表于 2004-7-30 22:57:03

suite的script属性中或者场景属性中。

yg_82 发表于 2004-8-2 15:25:18

THANKS

yg_82 发表于 2004-8-3 15:38:49

再问个问题好吗?
我仿照你的方法用程序与服务器的数据库建立连接并操作6次而不断开。当虚拟用户达到200的时候自己的机器就会重启,这能说明服务器已达到最大在线数吗?
还是我自己机器有问题?
页: [1]
查看完整版本: 利用Robot进行在线数测试