性能测试(1)——loadrunner简介
1.响应时间:
服务器端响应时间+网络响应时间+客户端响应时间
2.吞吐量:
3.资源使用率:
4.点击数:
5.并发用户数:
1.消除软件空间(比如内存泄漏)和时间上的浪费(优化数据结构和算法):
2.以空间换时间:算法调整、并行计算、体系结构、cache缓存、数据库index
动态网站,频繁访问的首页程序可以采用cache机制,把常用数据房子内存里,内存占用增多,但是提高了速度
3.以时间换空间:不常见(比如嵌入式对内存限制)
1.软件系统设计的架构及技术平台:
时间苛刻,密集计算、在线大数据分析,这些场景用J2EE先天不好解决,用C++或其他平台合理一些
2.中间件的设置和优化
应用程序调用的第三方软件(操作系统、数据库、WEB服务器、消息服务器),不能改变中间件,只能尽量优化3.硬件配置(硬件配置和网络环境):
服务器配置(内存、CPU);网络环境配置(交换机、路由器)
性能测试规则:
1.确定预期输出
2.检查测试结果(二八规则)
3.不可能穷举
性能测试不是功能测试:
基本常用的功能
响应时间苛刻的功能
性能测试属于系统级测试:所以性能测试需要模拟生产环境,并且系统框架、主要代码、中间件稳定的情况下开始
1.负载测试:
在一定条件下系统的性能表现
预期结果是用户满足。(响应时间、交易容量、并发容量、资源使用率)
2.压力测试:
在极端条件下(超负荷的交易量和并发用户量)
预期是系统会出问题(考察系统处理问题的方式,比如系统可以变慢,但是我们不希望系统崩溃)
负载测试关注用户规则和需求;压力测试关注软件系统本身
3.并发测试:系统和服务器端建立大量的并发连接(通过客户端的响应时间和服务器端的性能检测)
并发测试涉及服务器的并发容量,所以单独提出来测试,多线程、多进程协调同步带来的问题
4.基准测试:系统新增加模块时,需要在不启用模块和启用模块测试两次。不启用时候的作为基准测试
5.稳定性测试:在一定负载下,长时间运行
6.可恢复测试:
从错误状态恢复(例如主机无法承受压力,备份机能否快速接管负载)