简介

随着应用软件用户负载的增加和愈来愈复杂的应用环境,用户的响应速度、系统的安全运行等性能问题

逐渐成为软件系统必须考虑的指标之一。性能测试通常通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,用来检测软件是否达到用户提出的性能指标,及时发现软件系统中存在的瓶颈,优化软件,最后起到优化系统的目的。

常用测试方法

一般性能测试中最常见的基本类型有基准测试、配置测试,负载测试,压力测试等,以下是各种测试类型的具体概念:

基准测试——把新服务器或者未知服务器的性能和已知的参考标准进行比较

配置测试——确认服务器在不同的配置下性能的可接受性。(操作条件不变)

负载测试——确认服务器在不同的负载条件下性能的可接受性。(操作条件不变)

压力测试——确认服务器在异常或者极限的条件时性能的可接受性,例如,减少资源或大数量的用户。

竞争测试——确认服务器可以处理多个客户对同一个资源的请求竞争

容量测试——是在数据库中有较大数量的数据记录情况下对系统进行的测试。

渗入测试——使用固定数目的并发用户测试系统的总体健壮性。

峰谷测试——不断增加一些新用户直至达到固定数目的用户的测试方法,其目标是确定从高负载(例如系统高峰时间的负载)恢复、转为几乎空闲、然后再攀升到高负载、再降低的能力。

性能测试流程介绍

3.1 分析系统制定测试目标

在进行性能测试前,对测试系统做全面的需求分析是很有必要的。首先我们要分析系统,了解系统的组成,包括分析系统业务流程,实现架构,系统的功能,了解这些内容的本质其实是帮助我们明确测试的范围,选者适当的测试方法来进行测试。要了解系统,至少要弄清以下几个问题:

  • 测试目的:性能指标如何描述,性能测试结束的标志是什么等;

  • 整个测试环境的体系结构及详细描述,测试环境的网络协议有哪些,具体连接方式如何;

  • 测试环境中相关软件的版本详细情况;

对于一个开发中的web系统进行性能测试,可以根据开发目标和用户需求在体系结构的迭代过程中,不断调整测试目标。对于一个已经发布的Web系统,可以通过网站的管理人员收集测试数据,为以后进行性能测试做好准备,收集的信息包括每小时在线用户数量,平均每小时的在线用户数量,不同时段的在线用户峰值比较,收集被访问次数最多的的页面,系统正常运行时CPU的使用率等等。

其次要定义测试目标,定义用户要求,包括响应时间,并发用户的数量等。

制定测试的目标可以从以下三方面考虑:

确定客户需求和期望、实际业务需求、系统需求

3.2 制定详细的测试计划

在对测试需求充分了解的基础上,制定尽可能完善而详细的测试计划,对测试的实施是大有裨益的。性能测试计划包括了进行性能测试前期的准备工作,如时间与人员的安排、硬件与数据的准备、脚本的介绍、测试过程中的观察点等。测试计划主要包括以下内容:

  • 测试参加人员

性能测试是一项团队合作的技术,每个角色在团队中的侧重点不同,及时组织相关人员参加性能测试对判断性能瓶颈有良好的作用。性能测试中有以下这些角色:

项目经理:协调多个性能测试、取得需要的软硬件、处理资源分配、发现问题。

性能测试专家 :负责建立并执行性能测试,搜集测试的结果。

系统架构师 :对测试结果进行分析诊断,进行系统性能调优。

基础设施专家 :包括数据库、网络管理员,对测试结果进行分析诊断,进行系统性能调优。

  • 测试用例

设计测试用例的原则是用最少的用例提供最多的测试信息,设计测试用例的目标是一次尽可能的包含多个测试要素。这些测试用例必须是测试工具可以实现的,不同的测试场景将测试不同的功能。因为性能测试不同于平时的测试用例,尽可能把性能测试用例设计的复杂,才有可能发现软件的性能瓶颈。

3.3 测试准备

  •  配置测试环境

在性能测试中,测试环境对测试结果的影响很大,在配置测试环境前,我们应该分析不同的用户环境,如软硬件规模、使用模式、应用背景等。不同的用户群使用软件的方式和深度都不尽一致,为了能够让不同的用户都体验到软件的最佳表现,我们需要软件有灵活的可定制性,而性能测试则是对这种灵活性的率先检验。
在性能测试中,我们建议针对不同用户群的应用环境,配置不同的测试环境,当然我们不可能一开始就清楚什么样的环境是最有代表性或是最好的,这本身也是要通过测试或参考一些其他因素(如行业标准等)才能确定的,并且在配置测试环境时决对不能脱离用户的实际情况,总之,在配置测试环境时我们一定要考虑到它的可代表性、稳定性和有效性。一个充分准备好的测试环境有三个优点:一个稳定、可重复的测试环境,能够保证测试结果的正确;保证达到测试执行的技术需求;保证得到正确的、可重复的以及易理解的测试结果。

  • 数据的准备

在性能测试中,前期数据的准备工作也非常重要。在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试用例,在测试前选择的测试数据应有一定的精确性和代表性;在正式的测试开始以前对测试用例进行调试,将正式测试开始时的错误降到最低。在测试进行到关键过程环节时,非常有必要进行数据状态的备份。制造初始数据意味着将合适的数据存储下来,需要的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果。

准备运行脚本

准备好运行环境,就可以录制脚本了。运用测试工具录制脚本后,还应调试脚本,增强脚本的功能,只有调试成功后的脚本才能运用到测试中。

3.4 执行测试

执行测试的过程,就是创建场景,运行场景和测试用例的过程。在测试过程中,我们要监控客户端、网络、应用服务器、WEB服务器、数据库服务器等设备的运行情况,测试过程中应准确完整地记录每次测试的结果并进行维护。记录应包括:

  • 精确的系统配置,尤其是与前几次测试的不同之处
  • 原始数据和性能监视工具所记录的结果

3.5 分析结果

对测试的总结,实际就是对测试数据的分析和处理。首先,我们最好从所有的测试数据中,筛选出具有代表意义的数据,做出统计图,然后和开发人员一起,通过排除误差和其他因素,让测试结果体现接近真实情况。不同的体系结构分析测试结果的方法也不同,B/S结构我们会分析网络带宽,流量对用户操作响应的影响,而C/S结构我们可能更关心会系统整体配置对用户操作的影响。在分析阶段有些结果因为环境的限制或其他原因可能无法获取,这时适当的推算也是必要的,但一定要以事实为依据。此外,还应评估数据格式和数据量对测试的影响,如有必要,应准备多组数据。最后要围绕测试计划中提出的问题,检查测试结果是否能够逐一解答,有含糊不清的地方就再补测。通过认真分析数据,找出软件存在的问题,得出测试结论。

其次,一份好的性能测试报告不但要展示软件最好的性能,还应能定位软件的性能瓶颈,帮助开发人员更好的改进软件性能,同时也指导用户更好的发挥软件的效能。

性能测试方法及基本流程相关推荐

  1. 性能测试理论(一)之性能测试方法与流程

    性能测试方法 一.正确理解性能测试 1.1.性能测试: 1.2.不符合需求的情况下: 1.3.常见误区: 二.什么时候需要做性能测试 2.1.什么时候需要做? 2.2.能力验证 2.3.验收性 2.4 ...

  2. 微信小程序软件测试junit,微信小程序兼容性能测试方法

    本文为微信小程序兼容.性能测试方法介绍. 兼容 操作系统兼容 由于小程序依赖微信客户端本身,因此理论上来说只要微信客户端兼容的小程序应该都可以兼容,这里推荐覆盖Android和iOS主流版本系统即可, ...

  3. 性能压测服务器502报错,一种交易系统的性能测试方法及相关服务器

    1. 一种交易系统的性能测试方法,其特征在于,包括: 性能测试服务器发送N条性能测试交易至应用服务器,其中N>0; 所述性能测试服务器接收所述应用服务器发送的监测报告,所述监测报告为所述应用 服 ...

  4. java 测试代码效率_JAVA程序的性能测试方法

    JAVA程序的性能测试方法 Java 1.5以上都在虚拟机里内建了程序性能跟踪的功能,并提供了Java Profiling API,简称JPA,你可以搜索'java profiling'.Java也提 ...

  5. 7种性能测试方法,帮你提供工作效率80%

    根据在实际项目中的实践经验,我把常用的性能测试方法分为七大类:后端性能测试.前端性能测试.代码级性能测试.压力测试.配置测试.并发测试,以及可靠性测试.接下来,我将详细为你介绍每一种测试方法. 第一, ...

  6. 百度视频在Android和iOS端性能测试方法

    背景介绍 一直以来,性能测试是被一部分人遗忘,又让另一部分人无可奈何的东西.在绝大部分的创业公司,性能测试基本上都是被遗忘的,他们认为功能测试和稳定性测试才是重点,而在中等规模的公司中一部分测试人员考 ...

  7. 软件测试面试题:常见的性能测试方法有哪些?以及每类测试方法的目的是什么?

    常见的性能测试方法有哪些?以及每类测试方法的目的是什么? 1)基准测试:确保测试环境无问题,初步评估每次只是单独运行一个交易时,当前系统的响应时间是否够快,各服务器的CPU.内存耗用是否合理; 2)单 ...

  8. FM信号测试软件,手机中FM调频性能测试方法简介

    原标题:手机中FM调频性能测试方法简介 手机已经成为人们非常重要的通讯工具,相应手机整合的功能也愈来愈多.目前市面上的手机基本上都支持FM收音机功能,而FM收音机性能则主要是通过 .接收频带宽度.解调 ...

  9. 性能测试方法详解(验收性能、负载、压力、配置、并发、可靠性、失败恢复)

    一.性能测试 性能测试时通过自动化测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行,通过负载测试,确定在各种工作负载下系统的 ...

最新文章

  1. 汇编语言-第四章 第一个程序
  2. 分享超全的 Linux 渗透测试命令速查表
  3. 目标检测--吴恩达深度学习记录
  4. python删除两个excel表中的相同元素_python筛选出两个文件中重复行的方法
  5. oracle授权只读用户,Oracle创建只读用户(账号)的方法
  6. linux选择运行的核数量,linux – 如何根据可用内核的数量选择最大负载阈值?
  7. SprinBoot整合SSM之添加
  8. hadoop 配置文件
  9. hadoop 3.0.0 alpha3 安装、配置
  10. Rsync总结笔记—以守护进程(socket)方式传输数据
  11. 23andme、gsa、wegene各染色体位点统计
  12. QT高级编程技巧(二)-- 编写多线程和并发应用
  13. DEVCON.EXE管理USB
  14. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(五)——无源与有源电流镜
  15. 服务器固态硬盘和普通硬盘的区别
  16. Oracle 数据库访问故障(TNS-12535、TNS-00505)解决思路
  17. python 数据挖掘_Python数据挖掘框架scikit数据集之iris
  18. Java将List对象导入Excel文件
  19. 快速排序的枢轴(pivot)和边界
  20. 当Mac电脑遇到ANDROID_NDK_HOME not defined...报错

热门文章

  1. Opencv入门第一课打开窗口
  2. itools3.0服务器维护,APP Store失联?iTools3.0告诉你如何解决
  3. 交换机指示灯状态说明
  4. 六度分离 HDO 1869 Floyd
  5. 【Python】过滤表情字符
  6. VB6银联读卡之旅(二)__55域获取流程及相关注意
  7. 第二十三讲 常用技术标准【2021年软考-高级信息系统项目管理师】
  8. QT中主线程终止子线程中的死循环
  9. 两个生物特征识别会议的最新情况
  10. 机试评判系统评判提交程序后返回结果详细说明