基于用户体验的性能测试:模拟个别的用户延迟(续)

本周免费下载杂志:《保健与生活》共计12本,请点击下行红色文字链接获取下载地址杂志推荐《保健与生活》3.       在TestStudio中生成时间延迟使用Rational TestStudio的VuC语言,有很多方法可以生成时间延迟。对于如何使用Think_avg及相关的命令和参数来实现,Rational的文档和培训资料已经做了详细的说明,这里不做深入讨论,只做简要介绍。这个方法只有在Think_avg命令不在计时器(Timer)里...

基于用户体验的性能测试:模拟个别的用户延迟(续)

本周免费下载杂志:《保健与生活》共计12本,请点击下行红色文字链接获取下载地址

杂志推荐《保健与生活》

3.       在TestStudio中生成时间延迟

使用Rational TestStudio的VuC语言,有很多方法可以生成时间延迟。对于如何使用Think_avg及相关的命令和参数来实现,Rational的文档和培训资料已经做了详细的说明,这里不做深入讨论,只做简要介绍。这个方法只有在Think_avg命令不在计时器(Timer)里面或附近时才有效。我发现Think_avg命令更容易代表客户端的处理过程,但对用户模型来说并不合适。关于计时器和客户端处理时间模型将在后续的文章中详细讨论。

当脚本中的用户延迟不包含在计数器中的时候使用delay命令。下面是使用delay命令创建静态值以及均匀、负指数、正态分布以实现用户延迟的讨论。

如果已经明确某些活动消耗了所有用户8秒的操作时间(很少,但有可能),可用以下命令:

delay(8000);

括号中的数值是静态延迟值,以毫秒为单位。此命令的语法是delay(value);,静态延迟一般只用在精确模型中。

如果确定用户在网站上执行活动的时间在6到12秒之间,那么均匀分布能准确地代表实际用户。命令如下:

delay(uniform(6000,12000));

在这个例子中,6000是最小值而12000是最大值,以毫秒为单位。此命令的语法是delay(uniform(min_value, max_value))。

如果确定用户在网站上活动的时间在9到15秒之间,但大部分用户接近9秒而不是15秒,同时没有用户少于9秒,这时使用负指数分布将最准确。典型的例子比方是只有当9秒的短片播放完后,下一步的按钮才会显示。命令如下:

delay(negexp(9000,15000));

在这个例子中,9000是最小值而15000是最大值,以毫秒为单位。此命令的语法是delay(negexp(min_value, max_value))。

在VuC函数中并没有创建正态分布的延迟命令。为此,我们用下列的函数以及delay命令的组合构成了正态分布。注意,normdist函数在每个脚本中必须直接放在#include命令下面。

int func normdist(min, max, stdev) /* specifies input values
for normdist function */

/* min: Minimum value; max: Maximum value;
stdev: degree of deviation */
int min, max, stdev;
{

/* declare range, iterate and result as integers -VuC
does not support floating point math */
int range, iterate, result;

/* range of possible values is the difference between the
max and min values */
range = max -min;

/* this number of iterations ensures the proper shape of
the resulting curve */
iterate = range / stdev;

/* integers are not automatically initialized to 0
upon declaration */
result = 0;

/* compensation for integer vs. floating point math */
stdev += 1;
for (c = iterate; c != 0; c--) /* loop through iterations */
result += (uniform (1, 100) * stdev) / 100;

/* calculate and tally result */
return result + min; /* send final result back */
}

将这个函数以0毫秒为最小值,25000毫秒为最大值,3200毫秒为标准差,执行1000次产生的正态分布如图7所示。需要注意的是,这里使用了与理想正态曲线相同的参数,只是把单位由秒替换成毫秒。大家可以看到,这个曲线图与图5的理想正态分布几乎是一样的。

基于用户体验的性能测试:模拟个别的用户延迟(续)

图7 用normdist函数生成的正态分布

delay函数在正态分布中使用频率最高。可用以下命令来模拟一个10秒到35秒之间,标准差为3.2秒,呈正态分布的用户延迟(对于上面的例子而言,只是将时间右移了10秒):

delay(normdist(10000,25000,3200));

这里10000是最小值而25000是最大值,3200是标准差,均以毫秒为单位。此命令的语法为:delay(normdist(min_value, max_value, std_deviation))。记住,如果脚本里面没有normdist函数的代码将会报错。

4.       Now You Try IT

为了证明这些概念的简单和有效,我建议大家跟着下面的练习一起做,前提是大家已经知道如何录制和回放VU脚本,以及如何在录制过程中插入timer。

4.1.      确定用户延迟和分布情况的练习

选择一个完全静态的网站,因为每次都变化的网站只会妨碍学习过程。接着确定一个导航的路径,比如在onblestat.com网站的首页上,点击About Us,然后点击Essentials,最后点击Heritage。首先在记事本上记下你认为每个页面可能的用户分布和延迟时间,然后找一些同事根据纸上的指示进行操作,并记录下他们在这些页面的停留时间。看看实际的时间与分布是否接近于记事本上的记录。

4.2.      在VuC的练习中模拟用户延迟和分布情况

在这个网站的不同测试时间,我用尽了4个方法来确定用户延迟和分布情况。在所有的案例中,根据正态分布曲线获得不同的时间值。出于对于这个例子的考虑,我们假设并非总是如此,这样你才能看到如何使用内置的C函数和我之前介绍的新的normdist函数来产生时间延迟。

我重申一点,这个例子中的延迟和分布并不能很好地代表实际网站交互。我会在这篇文章地讨论中创建练习来论证所有的主题。

首先基于一个静态网站录制一个简单的VU脚本(我用noblestat.com来录制)。录制时用timer将每个页面包括起来。(你也可以用timer block,但录制出来的原始脚本有点差别,我会在第5章详细介绍timer block)。录制3个页面,Home Page、Page1、Page2。

录制完成之后用1个虚拟用户回放一下,确保没有修改之前的脚本回放成功。然后再用Robot打开脚本并找到第一个stop_time命令。这部分的脚本如下:

http_header_recv ["RDN_on_~233"] 304; /* Not Modified */
http_nrecv ["RDN_on_~234"] 100 %% ; /* 238 bytes -From Cache */
stop_time ["Home Page"];
start_time ["Page1"];
set Think_avg = 12342;
/* Keep-Alive request over connection www_noblestar_com */
http_request ["RDN_on_~235"]

这部分代码停止了计时器对加载主页的时间统计,并开始了对加载Page1的计时器统计,再等待了差不多12秒后才开始对Page1的下载。实际上,你并不想将12秒的延迟时间也算在计时器里面的,还有并不希望12秒是静态值,而是一个6秒到18秒延迟范围的正态分布。你可以通过删除或注释掉start_time命令后的set Think_avg这一行,同时在stop_time和start_time命令之间加入delay(uniform(6000,18000))来实现。这段代码显示如下:

http_header_recv ["RDN_on_~233"] 304; /* Not Modified */
http_nrecv ["RDN_on_~234"] 100 %% ; /* 238 bytes -From Cache */
stop_time ["Home Page"];
delay(uniform(6000,18000)); /* added to replace Think_avg below */
start_time ["Page1"];
/* set Think_avg = 12342; -replaced by delay above*/
/* Keep-Alive request over connection www_noblestar_com */
http_request ["RDN_on_~235"]

现在这段代码将统计主页和Page1的真正加载时间,等到用户阅读完主页之后才访问Page1页面,并且等待时间是一个6到18秒正态分布下的随机时间。

找到Page1的stop_time命令,原始代码如下:

http_header_recv ["RDN_on_~242"] 200; /* OK */
http_nrecv ["RDN_on_~243"] 100 %% ; /* 9997 bytes */
stop_time ["Page1"];
start_time ["Page2"];
set Think_avg = 8536;
set Server_connection = www_noblestar_com_1;
/* Keep-Alive request over connection www_noblestar_com_1 */
http_request ["RDN_on_~244"]

和上面一样,这段脚本停止了Page1的计时器,开始了Page2的计时器,并延迟了8.5秒左右的时间。这里,你希望把8秒的静态延迟改为最小值6秒、最大值14秒、标准差2秒的正态分布延迟。如果你没有计算延迟范围标准差的方法,那么将最大延迟时间减去最小延迟时间再乘以25%是一个比较精确的、可以接受的方式。

将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之时有一个随机的正态分布时间。如果你愿意的话,可以检查一下全部修改后的脚本。

(未完待续)

版权声明:基于分享的精神,为了有更多的测试同行能从中受益,本文可以被转载。请在转载时保留此版权声明,并保证文章的完整性,但不得用于任何商业用途或其他以盈利为目的的用途。
基于用户体验的性能测试:模拟个别的用户延迟(续)
基于用户体验的性能测试:模拟个别的用户延迟(续)原文名称:User Experience, Not Metrics
基于用户体验的性能测试:模拟个别的用户延迟(续)原文作者:Scott Barber
基于用户体验的性能测试:模拟个别的用户延迟(续)原文出处:http://www.perftestplus.com/resources/UENM2.pdf
基于用户体验的性能测试:模拟个别的用户延迟(续)
基于用户体验的性能测试:模拟个别的用户延迟(续)译文名称:基于用户体验的性能测试
基于用户体验的性能测试:模拟个别的用户延迟(续)翻译:pent
基于用户体验的性能测试:模拟个别的用户延迟(续)译文地址:http://www.cnblogs.com/pent/archive/2007/07/01/802117.html

基于用户体验的性能测试:模拟个别的用户延迟(续)

猜你喜欢

  1. 《蔬菜,这样吃最健康》

  2. 男生追女生追到一半为什么不追了?

  3. 算命先生是怎么帮别人算命的?

  4. 治愈系书籍推荐,让寒冬增添温暖

基于用户体验的性能测试:模拟个别的用户延迟(续)

原创文章,作者:交互精选,如若转载,请注明出处:https://www.iamue.com/35018/

(0)
交互精选交互精选
上一篇 2018-02-01
下一篇 2018-02-01

相关推荐

  • 全国高校“用户体验、视觉界面(UI) 设计、交互设计新技术实践教学与应用师资研修班

    商务合作联系QQ:3158521867 或加微信号:jujiao01一、会议背景近年来新技术、新趋势不断爆发,同时掀起了互联网的蜕变热潮,行业和用户更加成熟理性,随着网站和平台开发需求不断增多,智能手机广泛应用,用户体验、视觉界面(UI) 设计、交互设计对于网络产品来说是赢得用户的关键特性。苹果、google等顶级企业的成功案例已经深刻说明了这一点。打破传统界限,连接商业与技术,在新商业环境中实现更大的价值,把设计领域、设计概念向外延展...

    2018-03-30
  • SEO营销之浅谈用户体验

    好的产品不是做出来的,而是改出来的。任何一个产品都不可能一招致胜,都需要不断的打磨,改进,尝试过失败之后,才能更为光彩的进入用户的视野。在这个反复修改的过程中,大家提到最多的词恐怕就是“用户体验”了,没有之一。今天,山哥就来跟大家交流一下我对“用户体验”的理解,希望各位看官手下留情。什么是用户体验标准定义:人们对于针对使用或期望使用的产品、系统或者服务的认知印象和回应。通俗讲法:这个东西好不好用,用起来方不方便。总的来说,用户体验是用户...

    2018-03-23
  • UED建筑品谈 | 昭君博物馆:土木轮回

    📌编辑 | F.项目竣工的下午,一片低黑的云朵重重地飘盖过来,浓烈的阳光穿过云缝狠狠地砸在了和周围土地一样色质的“夯土”表面上,一派陌上苍歌的景象。新的“土木”谦虚地溶嵌在大地之上,迥异的材料体验感却反而没有让建筑消失,熟悉得甚至可以忘记的“土”和“木”。体验变得几分陌生,他们与大地一同构建了令人难忘的场所。这让我想到几米漫画书里的句子:“……看不见的,看见了;遗忘的,记住了。”——曹晓昕主创建筑师曹晓昕中国建筑设计院有限公司副总建筑师...

    2018-02-02
  • 2018用户体验设计趋势,你知道吗?

    设计师总再盼望未来 - 在整个工作流中我们重复相同的事情。最后,困扰设计师往往是围绕着一个简单的问题:我们如何才能提高用户的体验?为了解决这个题,Figma采访了18位设计师,让他们来来预测2018用户体验设计趋势。1.可用性第一,个性化第二“我真的希望2018年设计师们将可用性设计铭记在心。我们不要在基本元素上使用超浅灰色,我们做得每一个像素动画不应该只是因为它看起来不错,我们不应该让用户难以理解内容,因为我们是设计师。”2.设计师要...

    2018-01-31
  • 五个提升用户体验的分析要素

    原文链接:https://uxdesign.cc/analytics-for-better-ux-c0128c0da55e用户体验是区分产品优劣的核心元素。为了提高转化率,你会试着仔细的检查产品的用户体验,但是应该如何着手呢?你要如何找到痛点并弄清用户的真正需求呢?不去研究调查就编造借口,觉得你知道确切问题所在当然是很轻松的。但是你必须保持谦卑,机敏,通过客观的分析来得出结论。流行的分析软件挺多的,列举一些:Google Analyti...

    2018-03-02
  • 干货时间|交互设计线上讲座内容回顾总结

    学艺术的大表姐带你走上艺术留学的不归路Hello~Everybody~上礼拜元宵节的结束宣告着新的一年的真的要开始了!这下我们也再没有借口偷懒了小伙伴们要用新的节奏开始奋斗啦~2018,告别懒惰,发愤图强吧!!最怕的就是:“比你优秀的人还比你努力!”当然为了给大家缓冲的时间大表姐特意送上年前的交互设计分享讲座的干货回顾总结对交互设计感兴趣的同学,可千万不能错过接下来的内容了~并且还能拓宽自己的艺术设计领域想了解更多关于英美交互院校、专业...

    2018-03-09
  • 做你女朋友,用户体验真差

    点上方蓝字关注「晚安少年」每晚十点,一位少年陪你说晚安文/陈大力经作者授权发布01先说件有趣的事。我前两天跟gay蜜吐槽我男朋友。内容是:不会夸人,半句甜言蜜语都说不得。明明本人是腿模级别身材,偏偏他一个劲儿挑出不足为道的赘肉来取笑。以及,起争执的时候,退化成“我就静静看你发疯”的不解意选手,仿佛眼前这一场不是他该来的比赛。gay蜜的回答是:嗯是有点过分了,女生不就喜欢被哄哄嘛。同一个情感问题,我也问了基友,直男小学弟一只。我这边慷慨激...

    2018-02-02
  • 产品思维~02·用户体验与结婚教练

    今天继续分享《得到》app梁宁的大师课程产品思维30讲,感兴趣可以下载《得到》app继续关注,在文后会附上《得到》app的下载方式。其实梁老师真的很幽默也很形象,来用结婚教练的例子来类比产品的用户体验,同样的结婚也好,创业找合伙人也罢,都是非常重要的长期关系,改变一个人那是非常难的一件事情,那么如何去观察和判断一个人就显得尤为重要。如果没有受过专业训练,那么眼睛看到的很可能是不真实的,你的感觉以及情绪很容易被某个点所牵制,而且在你没有强...

    2018-04-26
  • 王者荣耀 安卓用户体验服礼包第二波 疯狂放送中

    王者荣耀武则天夺宝多少必出?在游戏中武则天是通过夺宝才能获得的,属于稀有英雄。不过武则天也确实强大,今天小编就为大家带来武则天的解析攻略,告诉大家武则天怎么才能获得,武则天的实战技巧有哪些,快一起来看看吧!武则天详解攻略:1、获取途径:抽奖这个是靠运气,但是抽取次数越多中奖概率会越大,根据土豪玩家反映,夺宝100次左右能获得英雄,100次到200次获得稀有英雄概率很大,所以一般在200次以内就可以抽到武则天。2、技能介绍:【女帝辉光】武...

    2018-04-09
  • 4个关键词总结,如何把用户体验做到极致?

    作者:@烧包鹿全文共 4530 字 6 图,阅读需要 10 分钟———— / BEGIN / ————上周五约了朋友吃晚饭,提前约的顺风车。由于堵车,司机到了办公区的北门。经过沟通,我从定位地点过去找他。四扇车窗都是开的,他坐在驾驶位,烟刚抽了三分之二,后视镜旁还有未散尽的烟雾。他回头看见了我,我朝他微笑示意。确认了眼神,我是他的乘客。他马上把烟灭了,左手在空中挥了挥,右手向左转了一下空调按钮,抬起头在空中胡乱吹了几口气。隔着车窗看见副...

    2018-04-30