了解需求时需要获得如下信息:
应用程序相关:
-
是新上线的程序,还是老程序升级?
-
应用程序的架构,BS、CS?
-
客户访问应用程序时使用的通讯协议,TCP/IP、WebService还是其他?
-
应用服务器和数据库服务器的平台,Windows、Linux、AIX?
-
应用(WebLogic、Apacha)及数据库的软件(Oracle、MySql)是什么?版本是多少?
网络环境相关:
-
程序是在局域网运行还是Internet上运行?
-
使用的局域网和Internet的带宽是多少?
-
请提供一个网络拓扑图,标明防火墙、负载均衡、交换机、服务器的位置,以决定测试的接入点,以及方便定位问题。
用户的使用模式相关:
-
有没有历史数据可以估计峰值时每秒能做多少笔业务?比如,从数据库或者日志中提取峰值时一个小时的各种业务完成数量。
-
能否估计出目前使用该系统的用户是多少?粗略的估计即可,只需要大致的上线及下线。
-
将来用户会增加多少?
-
如果是新上线的应用程序,有没有类似的已经运行的应用程序可以作为参考,来决定每秒需要完成多少笔业务?
-
有没有明显的业务峰值,业务峰值一般持续多久?
测试范围和目标相关:
-
您最担心出现性能问题的业务是哪些?
-
哪些业务是最常用的?
-
哪些业务压力最大?
-
哪些业务一定不能出现压力问题?
-
一般选择测试的业务只要能代表用户大部分行为模式即可,一般选择测试的业务都小于4个。
-
您想评估系统能承受的最大压力吗?
-
您想测试系统的稳定性吗?
-
客户可以接受的响应时间是多少?(一般原则:对于简单业务来说,2秒优秀,5秒中等,8秒内可以接受。对于批量执行的复杂业务只要客户可以接受,任何响应时间都是允许的。)
测试项目的执行相关:
-
测试环境和生产环境是否有差异?
-
能否直接使用真实的生产环境测试?模拟环境推论真实的生产环境几乎不可信。
-
在生产环境测试需要预先备份数据。
-
生产环境的停机时间需要足够测试的时间,现场执行一般5天以内。
-
现场执行测试时需要至少一个了解应用程序的工程师、一个能管理数据库的工程师和一个网络工程师,否则,一旦发现性能问题很难做分析和优化。
告知用户:
-
务必做好生产环境的备份
-
测试期间的环境只能由测试人员使用,不向外提供服务。
-
测试完成后会出一个测试报告,提供测试的性能结果和监控数据,以及做了哪些调优。
另外,在现场执行前,我们需要
-
出一个场景设计文档,跟客户沟通好,取得认可,这可以保证我们理解的需求是用户想要的。
-
准备好测试数据。
-
需要准备一个环境用于录制和调试脚本。
-
录制、参数化、调试好相应脚本。务必在Controller中以少量并发试运行一下,查看数据库中的数据是否正确。只有数据库中的数据正确了才能说明脚本真正调通了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29882253/viewspace-1629377/
,如需转载,请注明出处,否则将追究法律责任。