1、首先得清楚明白学习性能测试不是单纯的学习LoadRunner,而是学习性能测试的方法和建模;LoadRunner只是众多性能测试工具中的一种。
2、其次得站在一个高层次,对于一个复杂的问题,当我们去面对它时,不应该是举步维艰,频频摇头;而应该做的是将复杂的问题进行拆分成一个个的简单问题,然后再去制定一个个简单问题的实施方法;最终将一个个的简单问题实施完成,拼凑起来便是解决掉了复杂问题。
学习前首先需要思考一个问题:
什么是软件性能?
1)软件性能和时间相关(用户感受)
2)软件性能和环境相关(系统视角)
不同视角的软件性能体现:
1)用户视角:软件性能就是软件对用户操作的响应时间;
2)管理员视角:从管理员角度来看,软件系统的性能首先表现在系统的响应时间上,这一点与用户的视角是一样的,但是管理员还会关心和系统状态相关的信息;
3)开发视角:从开发人员的角度来讲,对软件性能的关注就更加深入了,开发人员会关心主要的用户感受--响应时间,但是开发人员还需要关心系统的扩展性等内容;
理解:
- 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试;
- 负载测试和压力测试都属于性能测试,两者可以结合进行;
- 通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况;
- 压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试;
- 带宽应用的领域非常多,可以用来标识信号传输的数据传输能力、标识单位时间内通过链路的数据量、标识显示器的显示能力。
为什么要进行性能测试?
- 系统的性能也是系统的重要特性,功能测试不是软件的全部。
什么情况下需要进行性能测试?
- ?????
软件性能测试的一般过程?
1)制定目标和分析系统
- 每一个性能测试计划中第一步都会制定目标和分析系统构成。只有明确目标和了解系统构成才会澄清测试范围,知道在测试中要掌握什么技术。
2)获取性能测试需求
- 一般对于性能测试需求,获取的直接方法是从软件需求规格说明或非功能需求中得到;其次还有几种方式或得,一种是客户方直接提出的性能需求,一种是根据客户以往的业务情况来分析客户的业务量以及每年、每月、每周、每天的峰值业务量。
3)设计性能测试用例
- 根据不同的业务场景设计性能测试用例。
4)通过协议模拟系统操作
- 通过程序可以模拟不同协议应用的实际的各种操作:模拟真实的系统环境。
5)设置场景运行测试用例
- 通过多线程程序模拟多用户在线或多用户并发操作,模拟真实的系统环境。
6)监控系统指标
- 对于监控来讲需要实时的获取测试过程中的各种参数,其中主要获取WEB(应用)服务器性能指标、数据库性能指标。获取被测系统的性能指标。
7)分析测试结果
- 运行测试用例后,收集相关信息,进行数据统计分析,找到系能瓶颈。