|
测试目的:测试服务程序支持的最大的用户在线数
说明:这里所说的在线数不是并发数,这种方法的优点是可以使用尽可能少的硬件资源来完成测试。
以使用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 [Think_def, Think_avg, Timeout_val, Timeout_scale];
}
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连接后,服务程序自动退出。 |
|