2QTP自动化测试教程.docx
上传者:niupai11
2022-06-16 18:38:54上传
DOCX文件
12 KB
5.1.2不同阶段的性能测试
对应于软件生命周期的不同阶段,性能测试可以分为单元性能测试、集成性能测试、 系统性能测试、多系统性能测试以及容量评估;另外还有一类比较特殊的性能测试。接口性 能测试,它可能存在于软件生命周期的几个阶段中,而从测试方法上来说,接口性能测试又 部分与单元性能测试相似,但又有其特有的一些测试方法。无论如何,接口性能测试是重要 而不可缺少的。
单元性能测试。在把软件的独立单元提交到集成阶段之前,对其进行的性能测 试称之为单元性能测试。单元性能测试的对象是软件的独立单元,这在C这样的语言中是 函数或子过程,而在C++、Java这类面向对象的语言中则是类或者类的方法。通常单元性 能测试需要借助于各种工具,也可以结合单元测试框架来做,形成一个统一的过程。当然, 也可以不借助任何工具,但是这意味着必须自己写代码以完成单元性能测试,这样的代价是 很高昂的。这种测试主要用来发现被测单元在执行耗时、多线程并发、内存使用等方面存在 的问题,以保证被测单元本身的性能,从而降低软件系统存在性能问题的风险,并有效减少 后期性能调优的工作量。同时,对于算法的选择、第三方组件的选择等,单元性能测试也是 一个重要的手段。
集成性能测试。在软件的独立单元通过单元测试(包括功能与性能测试),被认 为可以满足要求,而被集成到一个应用中后,这阶段对集成后的应用所进行的性能测试即为 集成性能测试。针对不同的集成策略,集成性能测试可能是一个反复迭代的过程(对应于增 量式集成策略),也可能是一个一次性的过程(对应于一次性集成策略)。这种测试的目的不 是分析应用是否能满足预期的业务目标,而是为了发现应用的问题(要发现的问题与单元测 试类似,执行耗时、多线程并发、内存使用等),确定不同的组件是否可以一起发挥作用。 集成性能测试的结果是能否进行系统性能测试的一个重要依据。
系统性能测试。这是人们最为熟悉的一种性能测试,通常性能测试指的都是这 种测试。这个阶段软件系统已经经过确认,并仿照生产环境的方式进行部署,包括硬件系统、 操作系统、网络、中间件,等等,然后根据计划的用户量(上线后将最终支持的用户量), 使用虚拟用户发送各种服务请求来模拟真实用户使用软件系统,分析应用是否能满足预期的 业务目标,识别性能瓶颈(可能是代码问题、硬件问题、网络问题、操作系统问题、中间件 配置问题,等等),并进行性能优化。注意这阶段的测试对象已经不仅仅是所开发的软件了, 而是包括软件、硬件、网络、操作系统、中间件等,即整个计算机系统中的所有元素。对于 这点不少人存在误解,认为性能测试仅仅是测试程序的性能,性能优化只是对代码进行优化, 这是不完全的。
多系统性能测试。多系统性能测试分为两种情况。
由于硬件和软件License都是很昂贵的,很多情况下不得不将多个应用部署在一个 共享的环境中,这意味着即使经过系统性能测试,也可能因为各个应用对共享资源(例如堆、 线程池、JDBC连接池等)的竞争,而产生性能问题。特别是当添加一个新的应用到原有的 共享环境中时,可能需要调整原有的共享环境,并进行性能测试,以确保添加了新的应用后, 原有应用的性能不会下降。
在软件互联已经成为一种趋势的今天,多个异构系统共享某些公共服务已经越来越 常见,各个系统之间必然存在对公共服务的竞争。当然公共服务本身的性能测
对应于软件生命周期的不同阶段,性能测试可以分为单元性能测试、集成性能测试、 系统性能测试、多系统性能测试以及容量评估;另外还有一类比较特殊的性能测试。接口性 能测试,它可能存在于软件生命周期的几个阶段中,而从测试方法上来说,接口性能测试又 部分与单元性能测试相似,但又有其特有的一些测试方法。无论如何,接口性能测试是重要 而不可缺少的。
单元性能测试。在把软件的独立单元提交到集成阶段之前,对其进行的性能测 试称之为单元性能测试。单元性能测试的对象是软件的独立单元,这在C这样的语言中是 函数或子过程,而在C++、Java这类面向对象的语言中则是类或者类的方法。通常单元性 能测试需要借助于各种工具,也可以结合单元测试框架来做,形成一个统一的过程。当然, 也可以不借助任何工具,但是这意味着必须自己写代码以完成单元性能测试,这样的代价是 很高昂的。这种测试主要用来发现被测单元在执行耗时、多线程并发、内存使用等方面存在 的问题,以保证被测单元本身的性能,从而降低软件系统存在性能问题的风险,并有效减少 后期性能调优的工作量。同时,对于算法的选择、第三方组件的选择等,单元性能测试也是 一个重要的手段。
集成性能测试。在软件的独立单元通过单元测试(包括功能与性能测试),被认 为可以满足要求,而被集成到一个应用中后,这阶段对集成后的应用所进行的性能测试即为 集成性能测试。针对不同的集成策略,集成性能测试可能是一个反复迭代的过程(对应于增 量式集成策略),也可能是一个一次性的过程(对应于一次性集成策略)。这种测试的目的不 是分析应用是否能满足预期的业务目标,而是为了发现应用的问题(要发现的问题与单元测 试类似,执行耗时、多线程并发、内存使用等),确定不同的组件是否可以一起发挥作用。 集成性能测试的结果是能否进行系统性能测试的一个重要依据。
系统性能测试。这是人们最为熟悉的一种性能测试,通常性能测试指的都是这 种测试。这个阶段软件系统已经经过确认,并仿照生产环境的方式进行部署,包括硬件系统、 操作系统、网络、中间件,等等,然后根据计划的用户量(上线后将最终支持的用户量), 使用虚拟用户发送各种服务请求来模拟真实用户使用软件系统,分析应用是否能满足预期的 业务目标,识别性能瓶颈(可能是代码问题、硬件问题、网络问题、操作系统问题、中间件 配置问题,等等),并进行性能优化。注意这阶段的测试对象已经不仅仅是所开发的软件了, 而是包括软件、硬件、网络、操作系统、中间件等,即整个计算机系统中的所有元素。对于 这点不少人存在误解,认为性能测试仅仅是测试程序的性能,性能优化只是对代码进行优化, 这是不完全的。
多系统性能测试。多系统性能测试分为两种情况。
由于硬件和软件License都是很昂贵的,很多情况下不得不将多个应用部署在一个 共享的环境中,这意味着即使经过系统性能测试,也可能因为各个应用对共享资源(例如堆、 线程池、JDBC连接池等)的竞争,而产生性能问题。特别是当添加一个新的应用到原有的 共享环境中时,可能需要调整原有的共享环境,并进行性能测试,以确保添加了新的应用后, 原有应用的性能不会下降。
在软件互联已经成为一种趋势的今天,多个异构系统共享某些公共服务已经越来越 常见,各个系统之间必然存在对公共服务的竞争。当然公共服务本身的性能测
2QTP自动化测试教程