为什么要在性能测试中设置考虑时间(Thinking Time) [ 光影人像 东海陈光剑 的博客 ]
原文请访问这里
考虑时间Thinking Time指的是在性能测试脚本中,事务与事务之间,会有一些短暂的停顿,就好像真实用户在操作时,两次操作之间需要考虑一下。比如用户注册的时候,在打开注册页面到提交注册页面之间,是有一段考虑时间的(用户在填写个人信息)。
下面就讨论一下在性能测试实战中,为什么要设置考虑时间。
先说一个概念:吞吐量,这指的是服务器系统(包括软件和硬件)单位时间内处理业务的数量。我们现在做一个小试验,写一个小程序,执行一个简单的业务,并且在程序中进行计时,计算每分钟能执行多少次。然后当我们运行1路这个程序的时候,每分钟能完成约6万次。好,现在问一个问题,如果我们起2路,是不是每一路都能达到 6万/分钟 的吞吐量?
试验发现,当运行2路的时候,两个程序的数值都降了下来,但是它们的总和仍然是6万次。而且不管我们起多少路,这些程序的性能总和都接近于6万。
这就好像一个人1分钟最快能吃1个馒头,你让他一个一个吃,他两分钟能吃2个,如果你让他一手拿一个,同时吃,他两分钟吃不了4个,还是只能吃两个。
我们不是在说“考虑时间”么,哈哈,别急,因为上面的问题必须要先说清楚。
如果我们需要进行性能测试的业务是一个单纯的业务,就好像上面举的那个例子一样,那么测试脚本中就不需要设置“考虑时间”,因为不管你用什么方法测试,一个服务系统处理单一业务的吞吐量总是一个定值。
但是在实际环境里面,往往一个系统都是要处理多种业务,并且这些业务之间是有逻辑关系的。举例说明,比如一个论坛系统,每天最常处理的业务有两个:A打开帖子、B回复帖子。那么每天系统处理AB业务的总数是不是一样的呢,答案很明显,看帖子多,回复的少一些。假设A:B=2:1。
好,如果我们不设置考虑时间,起2路A的脚本,1路B的脚本进行性能测试,我们会得到什么结果呢?我们会得到这两个业务的吞吐量,并且能算出每个小时系统完成A、B业务的总数,吞吐量 × 时间 = 总数。
这时我们发现,同样时间,AB业务的处理总数却不是2:1的关系,这是为什么呢?原因是这样的,我们在跑AB脚本的时候,这两组脚本都在尽全力争夺服务器的资源,他们的并发路数虽然是2:1,但是给服务器的压力却不一定是2:1,可能会出现偏差,测试结果就是最好的证据。A查看帖子由于响应时间短,因此跑的次数更多,最后的比例可能是4:1。
那么这样的结果有什么问题呢。总结为一句话:测试环境的业务和真实环境不符,这样测出的数据没有价值。即使测试通过,也不能证明真实环境是ok的;或者即使测试不通过,也不能说明真实环境不ok,呵呵。
比如上面的例子,如果我们测出的结果是B回复帖子的吞吐量不够,响应时间太长,那可能是因为A业务抢走了过多的,本不属于A的资源,而引起了B的性能降低。
说到这里,大家应该明白了,我们设置考虑时间,是为了保证测试复合业务的时候,各个业务之间的比例关系符合我们的真实生产环境。
那么考虑时间是如何在性能测试中发挥作用,我们又该如何计算考虑时间呢?我们将再下一篇《考虑时间的计算方法》中详细说明。
据说,男人看美图可以延年益寿,女人看美图可以美容养颜........
那么, 去哪儿看美图呢? 亲爱的,别急!别急!! 在这里---
欢迎关注! 光影人像 公众号!
光影人像---和美不期而遇.
( 摄影 艺术 人像 美图 )
Copyright 2015 光影科技公司版权所有
回复 1 : 首页
回复 2 : 影廊
回复 3 : 社区
回复 4 : 下载App
回复 5 : 精选文章列表
lightshadow 光影人像 Abstract 抽象艺术 Macro 微距 Animals 动物 Nature 自然 Black and White 黑白 People 人像 Celebrities 节日 Performing Arts 行为艺术 City 城市 Architecture 建筑 Sport 运动 Commercial 商业摄影 Life 生活 Concert Street Family 家庭 Transportation Fashion 时尚 Travel 旅行 Film 电影 Underwater 水下 Fine Art Urban 乡间 Exploration Food 美食 Wedding 婚纱 Journalism Uncategorized 杂类 Landscapes 风景