基于用户体验的性能测试:第三章 模拟个别的用户模式

发表于:2007-8-15 12:19

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

 作者:pent    来源:pent的博客

3.3灵活脚本方法练习

  如果你已经在做这个练习,或曾经访问这个网站的话,你可能会发现在WMATA网站的Plan a Trip path的最后一页上,有一个关于地铁站之间行程价格和时间的链接。出于好奇心你可能点击来看看。我们把这个可选的路径加到Plan a Trip的脚本中,并假设其中50%的用户会关心行程的价格和时间的问题,如图12所示。

2222

               图12 添加了可选路径的WMATA用户路径

  出于练习方面的考虑,我们重点关注Plan a Trip部分的模拟。我们先录制一个包含了Fares and Times部分的脚本。这里使用的是全路径脚本方式,虽然也可以用脚本片段方式。

  第一部分的脚本,可以用和前面一样的步骤。录制打开主页(www.wmata.com),点击System map,点击Vienna stop,点击Stations,在下拉框中选择Smithsonian stop。接下来录制另一段脚本。点击Fares & travel times between stations链接(这里会弹出一个新的浏览窗口,这也就是使用灵活脚本方法的最佳方式),在下拉列表中选择Vienna,点击Get Fare Data点击,看完结果之后再点击关闭按钮,最后停止录制。

  用第二章介绍的方法调整延迟时间后,把这段新录制的代码插入到前面的脚本中,形成一个满足新流程的脚本。代码3展示了部分的脚本。

#include <VU.h>
int percent; /* Declare the variable that will hold the random number */
{
push Http_control = HTTP_PARTIAL_OK | HTTP_CACHE_OK | HTTP_REDIRECT_OK;
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;
push Think_avg = 0;
start_time ["Home Page"];
www_wmata_com = http_request ["Metro_T~001"] "www.wmata.com:80",
. . .
http_disconnect(www_wmata_com_1);
stop_time ["Home Page"];
delay(uniform(6000,14000));
start_time ["System Map"];
//set Think_avg = 17525;
www_wmata_com_2 = http_request ["Metro_T~014"] "www.wmata.com:80",
. . .
http_nrecv ["Metro_T~057"] 100 %% ; /* 8052 bytes */
stop_time ["System Map"];
delay(uniform(7000,12000));
start_time ["Vienna"];
//set Think_avg = 6650;
set Server_connection = www_wmata_com_4;
. . .
http_nrecv ["Metro_T~078"] 100 %% ; /* 15581 bytes */
stop_time ["Vienna"];
delay(uniform(9000,13000));
start_time ["Stations"];
//set Think_avg = 23514;
set Server_connection = www_wmata_com_5;
. . .
http_disconnect(www_wmata_com_4);
stop_time ["Stations"];
delay(uniform(9000,13000));
start_time ["Smithsonian"];
//set Think_avg = 13199;
set Server_connection = www_wmata_com_5;
. . .
http_disconnect(www_wmata_com_7);
stop_time ["Smithsonian"];
delay(uniform(9000,13000));
percent = uniform(1,10); /* Select a random number between 1 and 10 */
if (percent < 6) /* If the selected number is greater than 6, view fares */
{
start_time ["Fares and Times"];
//set Think_avg = 13199;
smartbenefits_wmata_com = http_request ["Metro_T~113"]
"smartbenefits.wmata.com:443",
. . .
http_disconnect(smartbenefits_wmata_com);
stop_time ["Fares and Times"];
delay(uniform(12000,15000));
start_time ["Get Fare Data"];
//set Think_avg = 19268;
smartbenefits_wmata_com_1 = http_request ["Metro_T~119"]
"smartbenefits.wmata.com:443",
. . .
http_disconnect(smartbenefits_wmata_com_1);
stop_time ["Get Fare Data"];
}
pop [Think_def, Think_avg, Timeout_val, Timeout_scale];

列表3:添加了查看费用信息的部分脚本

  如同前面在线书店的例子一样,这种方法通过变量的随机值来控制脚本的执行路径。

  给高级用户:灵活脚本方法看起来非常简单,但需要注意的是,if语句中浏览的是独立浏览器窗口的会好一些。这种脚本方法可以用在任何可选的导航路径,但前提是开始点和结束点在同一地方,对于个别的sockets(set Server_connection和http_disconnect命令)来说需要手工维护。这个详细讨论起来就太多了,根据我个人的经验,如果没有非常必要的情况的话,另外录制一个脚本来覆盖那部分的用户模型会没那么痛苦。

4. 小结

  本文介绍了3种模拟个别用户行为模式的方法,以及如何在Rational TestManager中使用。你可以使用全脚本路径方法、脚本片段方法和灵活脚本方法中的一种或者组合来有效地模拟任何的个别用户行为模式。本系列的下一篇文章将详细介绍如何使用TestManager创建测试套件来准确模拟全部的用户群,而不仅是个别用户。

5.参考

“Website Stress-Testing” by Serdar Yegulalp (ExtremeTech Web site)

6.附录(单词)

distinction:区别, 差别
simplistic:过分单纯化的
make sense:有意义
access to:有权使用
alternative:可供选择的办法
universally:普遍地,全体地,到处
inherent:固有的, 内在的, 与生俱来的
drawback:缺点, 障碍
redundant:多余的,冗余的
yield:出产, 生长, 生产
eliminate:排除, 消除
surefire:准不会有错的, 一定能达到目的的
Survey:调查,测量
in concert with:和...相呼应[合作]
leave out:省去,不考虑
out of curiosity:出于好奇心
original version:原著

相关阅读:

(一)基于用户体验的性能测试

(二)基于用户体验的性能测试:第一章 介绍

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

(一)基于用户体验的性能测试-创建下降曲线

(二)基于用户体验的性能测试-单用户区域

(三)基于用户体验的性能测试-性能屈服期

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号