|
对于并发情况不是很多的系统,测试其性能该从哪几个方面考虑呢?
1,首先要看该系统是否存在内存泄露
我的做法是录制几个核心功能,在controller设置几十个用户跑一段时间,然后观察windows资源消耗情况。
如果发生了内存泄漏,process\private bytes计数器和process\working set 计数器的值往往会升高,同时avaiable bytes的值会降低
2,测试并发登录,检查平均响应时间
我的做法是,录制并发脚本(添加集合点、事务、检查点),只录制到了成功登录之后显示的页面。在看一些书的例子时,录制登录的脚本,
登录之后还录制了些别的内容,例如随便浏览些其他页面什么的,难道是这样做显得刚真实些,我觉得没必要呢。
假设测试50个用户并发。
测试并发登录,设计场景时,start users是不是要选择Simultaneously这种方式,这样才能使得50个用户同时并发。
如果启动方式为:每5秒钟启动10个用户。意思是不是第五秒时有10个用户并发,第10秒仍是10个用户并发,但是这10个用户并发的同时已经有
之前的10个用户处于在线的状态了,....一直到25秒时,仍是10个用户并发,在这10个用户并发的的同时还有之前已经在线了的40个用户。
这样的理解对吗?
3,如果上面的理解是正确的,意味着每次并发的只有十个,而不是并发数逐步增加(我之前的理解是5s时并发10个,10秒时并发20个,25秒时
并发50个,并发数是逐步增加的,后来知道这样理解是不对的)。那我如何测试在我可以忍受的响应时间内可以支持多少用户并发呢?现在我
测试50个用户并发,平均响应时间是1s,我想知道如果平均响应时间不超过5s,可以支持多少用户并发呢?不会是想几个数试探吧,200?300
?我觉得设计面向目标的场景应该可以做到吧?可是我定义了一个面向目标的场景(脚本使用的仍是之前录制的登录脚本),是transaction
response Time类型的,目标是5s,用户是50-300,刚运行怎么就提示目标无法达到呢?
4,除了这些还需要测试什么呢?看%Disk Time?吞吐量?这些值在什么范围内比较正常呢?我测试的Disk Time是10%、Thoughput是
3742065Bytes/s
5,在controller运行场景时经常会报错,例如
“Action.c(4): Error -27796: Failed to connect to server "qurl.f.360.cn:80": [10060] Connection timed out”
“Action.c(4): Error -27791: Server "qurl.f.360.cn" has shut down the connection prematurely”
而且即使场景完全一样,运行两次,报的错也不同,报错数量不同,有时类型也不同
但即使报这些错,事务还是会全部通过,这些错误需要处理吗?而且貌似这些错误都是和360有关,但是我把关于360的都退了啊,而且也没有
使用360浏览器
对于27796错误,有人说是在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,修改两个键值:
TcpTimedWaitDelay、MaxUserPort,可是我已经修改了,还是报错
学loadrunner没多长时间,发现有很多问题不太明白,书上讲得也比较少,所以想请各位前辈能指点一二,感激不尽啊,先谢谢各位了 |
|