在测试时代论坛上看到有人发贴问性能测试的相关问题,我觉得这些问题比较有代表性,而且也颇值得探讨,于是据我自己的想法简单回复了一下,抛砖引玉,希望大家能各抒已见。
原贴如下:
也问性能测试(LR)
补充资料
现在很多企业对软件测试人员的要求也越来越高了。除了功能测试之外,还要求会做自动化测试和性能测试。但是进入企业后做不做这些工作那就不一定了。这个和我们讨论的性能测试无关。 j w6 S- X3 T( u8 B: _' "
想问的是各位做完的性能测试的结果你们认为是否正确?判断分析的是否合理?这个工具的原理是否真的是明白?9 r3 x/ x: F5 d& p& g2 K, o
为什么要迭代?为什么要有集合点?这些和用户实际业务是否相符?
2 K5 b3 _) h" j4 ?6 k% x+ b) d7 i" p7 ^
再则做性能测试需要模拟用户的并发人数,这时就需要设计是先每5秒递增10VU,还是每隔105秒递增20VU?这些是模拟的方式又是从何而来?8 P" x3 W/ a7 p% K' L1 u' e; O+ [
问的有些乱,各位不必拘弥我的问题,大家随便聊聊。
以下是我的回复:
你问的问题确实有点广。
我试着回答一下吧,权当抛砖引玉。
还记得上中学物理课的时候就学过很重要的一课:误差。
可以说整个现代科学都是建立在误差这一基础上的,因为所有的科学研究都必须有一定的标准和前提,然而这些标准和前提又是永远也无法精确的,我们所做的工作
只能是尽量去缩短这个误差,做到尽量精确。我觉得这一原理应用在我们软件测试尤其是性能测试上是非常合适的,由于受到测试环境,测试案例,测试脚本,人为
操作等因素的共同影响,我们做完的性能测试结果不可能是完全准确的,我们利用工具也好,手工也好,测试出来的结果如果能够提供给我们一个分析问题的参考,
那么我们的测试就是有价值的,有意义的。
再来,为什么要迭代?因为我们的测试工具是通过采样来收集测试结果数据的,从统计学的角度看,只取一次的测试结果值显然是不够准确,也不够有说服力,因此需要设置多次迭代,通过获得多次的采样值来分析结果,以达到尽可能接近真实情况的目的。
为什么要有集合点?这是一种特殊情况下的性能测试场景,为的是模拟多个用户在同一时刻做同一个操作,这是一种更严格意义上的并发。至于这些和用户实际业务
是否相符,这是需要测试的人去分析,去设定的,并没有一种万能的场景模式可以套用,这也正是软件测试的复杂性和难度所在。