海龙 发表于 2004-5-8 17:17:14

压力测试经验

被测系统架构:C/S
被测系统通讯协议:Socket
测试工具:robot

测试通过标准:
1、大量用户并发(具体数量按使用需求设定),服务程序无资源泄漏、无报错、无异常退出、数据返回正常;
2、大量用户(具体数量按使用需求设定)连续工作时间不少于72小时,服务程序无资源泄漏、无报错、无异常退出、数据返回正常;
   
测试步骤:
1、录制脚本,脚本示例:
/*
      ->-> Session File Information <-<-
       Created: Sat May8 13:33:08 2004
          Name: C:\mn\TestDatastore\DefaultTestScriptDatastore\TMS_Sessions\81.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;

ZN3K20P = sock_connect("81001", " ZN3K20P:8888");

{ INFO SERVER " ZN3K20P"="192.168.1.28"; } /*1*/

set Server_connection = ZN3K20P;

push Think_avg = 0;

sock_send
    "`123412345345000000000001cc002d01000002000000d2080300000000000000000001000000"
    "000000000000`qwerqwer`00234500` 2345`0000000000000000000000000000000000"
    "000000000000000000000000000000000000000000`23452345`00d3d0`23452345345"
    "2345345`0000000000000000000000000000000000`";


sock_nrecv ["81002"] 155;

sock_disconnect(ZN3K20P);

pop ;

}

2、回放脚本加入同步点,设定虚拟用户数,进行并发测试(每用户执行脚本一次),如果程序有错误出现,马上修改程序;
3、并发测试通过,同样设定虚拟用户数,设置脚本的运行次数,可以利用多台机器同时向服务器发送数据包,连续运行时间不得少于72小时,如果服务程序出现错误,修复程序后,要重新进行连续的不少于72小时的压力测试,直至测试通过;

注:为什么是72小时?
    这是一些公司的经验,没有理论证明为什么。实际测试中连续72小时没有问题,就基本不会再有问题。


   在我实际的测试中,就遇到过服务程序在连续工作了十几个小时才出现错误的情况。

      经验之谈,欢迎讨论

[ Last edited by 海龙 on 2004-5-16 at 20:30 ]

smartbaby 发表于 2004-5-9 09:57:00

想了解一下下这个的含义

sock_send
    "`123412345345000000000001cc002d01000002000000d2080300000000000000000001000000"
    "000000000000`qwerqwer`00234500` 2345`0000000000000000000000000000000000"
    "000000000000000000000000000000000000000000`23452345`00d3d0`23452345345"
    "2345345`0000000000000000000000000000000000`";

这个sock_send是啥意思,为啥要用到这样的数据?这些数据包是用什么来发送的?人工还是什么工具模拟么?

海龙 发表于 2004-5-9 10:08:04

1、sock_send是向服务器发送数据
2、数据时录制的,与被测程序有关
3、testmanager执行VU脚本

smartbaby 发表于 2004-5-9 14:01:46

那如果我想使用你给出的脚本直接运行,是否成功的机会会比较小呢?
数据可能不同吧~
如果需要调试,可能哪些部分需要修改修改呢?

海龙 发表于 2004-5-9 14:13:46

不可能回放成功。

暗夜之吻 发表于 2004-6-3 14:07:26

能解释一下你这段脚本执行的是什么操作吗?
连续运行72个小时,是指一个动作还是几个不同的脚本?

yealiu 发表于 2004-6-17 09:08:30

压力测试要那么复杂呀

要我望而却步

hgc2002wh 发表于 2004-7-20 17:15:00

性能测试

请问测试系统能够正常运行7天的方案应有几个。公司测试一个web 产品7天在线运行状态。是否可以设计出一种方案在短时间内测试出该产品的压力性能

海龙 发表于 2004-7-20 21:38:13

微软公司的经验是连续72小时压力测试,如果没有问题基本上就没有问题。

final 发表于 2004-7-26 16:00:55

看起来有点复杂哦。

yg_82 发表于 2004-7-30 09:36:11

不错,不过现在还不能实现72小时的测试,过段时间准备实践。
另外,我对加入同步点还不大清楚,可不可以简单说一下。

海龙 发表于 2004-7-30 22:54:48

如果做长时间的压力测试,可以不用同步点。

如果测试不同用户数同时进行操作时的响应时间,则必须加同步点。如分别测试100、200、300用户时的系统响应时间,同步点是必须的,否则结果不准确。
可以对比相同用户数加与不加同步点时响应时间的差别,就可以看出同步点对结果的影响。

yg_82 发表于 2004-8-2 10:37:17

我还是不清楚如何加入同步点以及加入同步点的作用,哪儿可以找到相关介绍或帮助?谢谢

yg_82 发表于 2004-8-3 10:21:05

在“Using Rational TestManager manual”中已找到答案。
页: [1]
查看完整版本: 压力测试经验