关于性能测试问题解答篇(下)
- 测试结果分析的步骤。
本人对性能测试经验虽然不多,但在自己做过的性能测试项目中,总结出一套分析测试结果的步骤,不断地学习,加强对性能测试结果分析的理解。对性能测试的结果分析,重点分析是对结果数据的分析,以loadrunner性能测试工具来对结果分析的步骤如下:
结果分析思路:结果摘要--》并发数分析--》响应时间--》每秒点击数
--》业务成功率--》系统资源--》网页细分图
--》web服务器资源--》数据库服务器
1.先查看LR结果分析器页面中,Summary的页面报告,Summary主要是先看结果摘要信息,判定它与场景运行是否一致,包括运行时间、并发用户数等,事务的响应时间与执行情况是否合理
2.结合Summary的页面报告,如果事务执行失败或响应时间过长,需要深入分析
深入分析原则:
1) 最大运行的并发用户数是否与场景设置的最大运行并发数一致如果没有,看虚拟用户相关的分析图;
2) 事务的平均响应时间过长,要看与事务相关的各类图,每秒点击次数 与 吞吐量、每秒HTTP响应数 这三个图是成正比,即三个图的曲线大体是一致的;
3) 分析业务成功率,即结果分析报告中是否事务有失败,如果有(看量多量少),说明系统有瓶颈;
4) 接着就要分析服务器系统资源的使用情况,包括CPU、内存、磁盘等;
5) 使用LR页面诊断图标,网页细分图分析每个页面占用的资源;
6) 分析web服务器资源,包括中间件(缓存设置、初始化内存、最大线程数等);
7) 最后分析数据库服务器。
2. 在分析结果的时候需要关注的内容有哪些?
总的来说,一般我们常用的评价系统性能关注的指标
1) 响应时间(Response Time)
2) 并发用户数(The Number of Concurrent Users)
3) 吞吐量(Throughput)
4) 每秒事务处理量(Transaction per Second)
5) 资源利用率(Hardware/Software Resource Utilization)
性能指标之间的关系
1) 此消彼长
2) 此长彼消
3. 在进行性能测试前,服务器上的哪些参数需要设置。
应用服务器和数据库服务器需要根据并发的用户数,设置相关的参数。应用服务器:内存调整、连接池设置;数据库服务器:内存策略、连接数设置。
4. 录制脚本手动关联后,回放时没有报错,但在运行场景时怎么报变量找不到左右边界的错误,按道理如果找不到左右边界,应该在脚本回放时就报这个错误的。
运行脚本时候,不一定会报错的。因为大多数情况是我们在回放脚本之后只观察回放日志中有没有红色的错误提示信息,如果没有我们就认为我们的脚本是ok的,其实不然,很多时候一些隐藏的错误就在回放日志中可以被发现,比如回放日志中的Warning信息,也就是警告信息,这些信息一旦你不去理会它,它将在场景运行过程中开始频繁暴露出来,而在场景中报错之后我们就认为可能是系统有问题或者是测试过程存在其他问题等等,而很难去考虑到是脚本的问题,是脚本在Vuser中调试就存在的问题。还有的时候一些问题在一次脚本回放中就不能被发现,他需要通过Vuser中设置多次迭代才能在回放日志暴露出问题来,所以说我们通常的思维就是一旦测试脚本没有一次回放没有出现错误,就去场景中运行,结果在场景中哪怕是运行10个用户都还会报错,这就是问题的根源所在。
5. 并发用户数和集合点有必然联系吗?在性能测试中必须使用集合点来测试吗?
并发用户数,就是同时操作的用户,这里的“操作”可以指对系统真正的操作,也可以只是连接(此时通常叫作“并发连接数”),而集合点是一种特殊情况下的并发,多用于测试系统在瞬间加压的表现。因此,并发用户数和集合点有联系,但并非必然的联系,在测试并发用户的性能测试场景中,可以不必设置集合点,这将视测试目标和测试策略而定。
6. 不设置集合点的测试,能代表是“并发”操作吗?
不设置集合点,可以看作是在线的用户数,并发操作对服务器等的指标压力是不一样的,不设置并发可看作同时在线。同时在线用户:对于一个软件来讲,当一个用户登录到该网站的首页后,开始在该网站上进行各种操作,包括浏览网页、检索内容、提交表单等,这个过程中的用户称为在线用户。若同一时间点或同一个时间段内,有很多这样的用户在访问该网站,这些用户统称为该网站的同时在线用户。同时在线用户的另一层理解是,将应用系统整体看作是一个黑盒子,从用户的客户端层面看向系统,总共有多少个人在使用它。当进行性能测试时,如果你使用的是同时在线用户,则可以称之为同时在线负载。并发用户:对于一个软件来讲,可能存在WEB服务器、应用服务器、数据库服务器三个层次,而用户所使用的浏览器是在最外面的客户端层面。如果某个时间点或时间段内,共有1000个用户同时在线,他们进行着各种各样的操作,而某个时间点上可能存在10个左右的用户同时进行了一个或多个操作,导致WEB服务器同时接收到了10个左右的交易请求,我们称这个10个左右的用户为超级并发用户。当进行性能测试时,如果你使用的是超级并发用户,则可以称之为超级并发负载。