一、性能测试
性能测试分为压力测试、负载测试、并发测试、可靠测试、失效恢复测试。为了模拟大量用户场景,减少实际用户测试的代价,Loadrunner提供了很好的性能测试平台,被使用广泛。重点关注性能测试的公司/行业有:通讯、银行、金融、证券、医疗、保险、搜索引擎(百度、谷歌) 等多用户系统。对性能测试要求较低的行业:比如OA 办公自动化、个人系统、计算器。
性能测试的指标:
通用指标:服务器cpu占用率
web服务器指标:每秒响应次数、成功请求、失败请求、每秒点击次数。
数据库服务器性能指标:用户连接数、死锁,cache命中情况。
三、使用工具必备知识
语言基础c/java等
四、性能测试环境(引用参考)
一般web应用系统分为3层架构
* 表现层(web服务器)
* 业务逻辑层(应用服务器)
* 数据层(数据库服务器)
性能测试环境包含内容:
硬件:服务器、客户端、交换机等。
软件:数据库、中间件、被测系统、操作系统等。
网络:有线/无线/宽带、网络协议等。
寻找的被测试对象和压力点。要测试的对象不是凭空想象出来,而是经过分析与系统数据收集得到。下取几个典型的压力点
登录、查询、交易
被测的系统应该是最重要的最基本的功能,也是用户使用最频繁的功能。
一般的性能要求包括:
系统容量:系统最大容纳多少个用户注册。
访问数:同时访问系统的用户数。
并发数:一个操作同时执行的并发数目,一个系统中应该有不同操作的并发数的组合(一般是有权限进行操作的用户)。
系统的最大用户数与最佳用户数:系统在承受的最大并发用户数量,系统在最佳状态下承受的并发用户数据。
响应时间:用户提交一个操作到得到响应的时间间隔。
吞吐率:系统每秒钟处理的TPS
性能测试关键的一个因素就是压力,性能是在系统设计满足的最大压力下的性能。并发数要不小于系统正常运行的峰值,数据总量不小于系统正常运行3个月的数据量。
虚拟并发用户的数量可以使用如下的公式换算: (真实用户数×每个真实用户请求数)/(总请求响应时间+真实用户总思考时间)=(虚拟用户数×每用户请求个数)/(总请求响应时间+虚拟用户总思考时间)=吞吐量。
六、环境搭建和工具
根据项目要求进行搭建,在压力测试的过程中也可能需要性能计数器来记录软硬件的性能。如监控服务器cpu、内存的计数器,记录中间件日志的监控中工具,监控数据库性能的监控工具等。
七、数据准备
要准备测试数据的,例如系统不允许相同用户的重复登录,那么必须要生成合法的用户数据。有时要对系统进行查询测试,只有在系统有一定数据量进才能验证出系统的真实性能。一个数据库中有两条数据和有两千万条数据,同相一条查询操作,对系统造成的压力是完全不一样的。
测试数据最好和真实数据相同,如果能够获得真实系统运行3个月的数据,我们就可以在此基础上进行性能测试。关于数据的生成,我们可以祝一个工具完成,如数据库数据生成工具,大小文件生成工具等。
从历史数据/访问量来确定我们要测试的数据用量,大型的系统三个月数据
八、测试策略
着重测试使用最频繁的功能
较少使用的功能也要考虑
同一系统在不同硬件下的性能