LoadRunner的软件平台负载测试和性能优化是通过模拟真实的高并发用户行为,主动发现系统短板,并根据数据驱动的方式进行准确调优,以保证软件系统在上线后能满足设定的性能标准。
一、LoadRunner和性能测试
LoadRunner是行业领先的性能测试工具,作用是能模拟成千上万的虚拟用户(Vuser)并发访问系统,从而考虑系统的负载能力、稳定性和潜在性能短板。一个完整的性能测试项目围绕LoadRunner的三大组件展开:
Virtual User Generator (Vugen):用于录制或开发测试脚本。通过模拟用户在和服务器交互过程中的真实操作(如登录、查询、提交等),生成可供执行的自动化脚本。
Controller:负责创建和管理测试场景。可以控制大量虚拟用户按照预设的负载方式(如逐渐加压、瞬间爆发)并发执行脚本,从而模拟真实的负载情况。
Analysis:用于对测试结果进行深度分析。能将测试过程中收集到的海量数据(如响应时间、吞吐量、资源利用率等)转化为图表和报告,帮助测试人员定位性能短板。
二、LoadRunner的负载测试流程
一个规范的负载测试流程包含以下步骤:
需求分析和计划制定:确定测试目的,如系统的最大并发用户数、可接受的平均响应时间等性能标准(KPIs)。
测试脚本开发:使用Vugen录制或编写业务操作的脚本。此阶段的技术包括:
参数化(Parameterization):用不同的数据(如用户名、密码)替换脚本中的固定值,以模拟多用户真实操作。
关联(Correlation):处理服务器返回的动态数据(如Session ID),保证脚本在多用户并发下能正确运行。
插入事务(Transaction)和集合点(Rendezvous):事务用于测量一个特定操作(如登录)的响应时间;集合点则用于模拟多个用户在同一时刻执行同一操作,制造并发压力。
测试场景设计和执行:在Controller中设计负载场景。常见的方法包括标准测试(单用户证实)、负载测试(逐步加压至目的并发)和压力测试(不断超负荷运行)。
测试结果监控和分析:测试运行时,需同时监控服务器端(CPU、内存、磁盘I/O、网络)和应用端的各项标准。测试结束后,利用Analysis工具对结果进行多方面分析。
三、性能优化方法和实践
性能优化是一个迭代的测试->分析->调优->再测试过程。优化一般从以下几个方面入手:
脚本和负载生成器优化:优化Vuser脚本思路,减少不必要的等待时间;合理配置负载生成器(Load Generator),保证自身不成为短板。
应用服务器和中间件调优:如调整WebLogic、WebSphere等应用服务器的线程池大小、JVM内存参数(如堆大小、垃圾回收方法)等。
代码和数据库优化:包括优化低效的SQL查询、合理建立索引、调整数据库连接池大小、优化应用程序的业务思路等。