基于用户体验的性能测试:第二章 模拟个别的用户延迟

发表于:2007-8-14 10:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:pent    来源:pent的博客

        将normdist函数拷贝到脚本中#include命令的下面,代码如下:

#include
int func normdist(min, max, stdev)
int min, max, stdev; // min: Minimum value; max: Maximum value;
stdev: degree of deviation allowed
{
int range, iterate, result;
range = max ? min;
iterate = range / stdev;
result = 0;
stdev += 1;
for (c = iterate; c != 0; c--)
result += (uniform (1, 100) * stdev) / 100;
return result + min;
}
{
push Http_control = HTTP_PARTIAL_OK | HTTP_CACHE_OK | HTTP_REDIRECT_OK;

        然后删除或注释掉start_time命令下面的set Think_avg这一行,并在stop_time和start_time命令之间添加delay(normdist(6000,14000,2000))。这段代码如下:

http_header_recv ["RDN_on_~242"] 200; /* OK */
http_nrecv ["RDN_on_~243"] 100 %% ; /* 9997 bytes */
stop_time ["Page1"];
delay(normdist(6000, 14000, 2000)); /* added to replace Think_avg below */
start_time ["Page2"];
/* set Think_avg = 8536; -replaced by delay above*/
set Server_connection = www_noblestar_com_1;
/* Keep-Alive request over connection www_noblestar_com_1 */
http_request ["RDN_on_~244"]

        再次强调,没有normdist函数的话脚本执行将会出错。现在这段代码也能正确的统计Page1、Page2的加载时间了,并且在用户阅读Page1之时有一个随机的正态分布时间。如果你愿意的话,可以检查一下全部修改后的脚本。

5.高级用户:双峰正态分布

        为了应用这种分布,你应该有Rational TestStudio的性能测试经验以及C语言的基本了解。我测试过的很多网站就有些这样的页面,它们的用户访问呈双峰正态分布。想象一个有很多文字的页面,首次访问时用户可能会详细地阅读这些文字,下一次你就会直接的跳过这个页面到下一个页面了。这种页面的用户延迟时间如图8所示。

?22

图8 文字性网页所展现的双峰正态分布

        在这个例子中,假设60%的用户花了8秒的时间浏览了这个页面并寻找下一个链接,而其它40%的用户花了45秒的时间详细的阅读了整个页面。你会发现这是两个有着不同的最小值、最大值、标准差的正态分布。在脚本中模拟这种分布的方法生成一个0到10的随机数,并创建一个控制逻辑,当随机数字落在1~6之间时实现左边的延迟,在7~10时实现右边的延迟。

65/6<123456>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号