性能测试概述

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 性能测试概述

一. 什么是性能测试

1.1 生活中遇到的软件的性能问题

资源泄露,包括内存泄露

CPU 使用率达到100%,系统被锁定

线程死锁,阻塞等造成系统越来越慢

查询速度慢,或者列表的效率低

受外部系统影响越来越大

1.2 性能测试定义

测试人员借助性能测试工具(Jmeter/LoadRunner),模拟系统在不同的场景下,对应的性能指标是否达到预期

1.3 性能测试和功能测试有什么区别

功能测试:依靠人工执行,不管在什么场景下,只要能正常运行即可

性能测试:依靠工具完成,保证功能在正常运行的前提下,验证软件在一些极端的情况下是不是能够正常运行

1.4 影响一个软件性能因素有哪些

硬件:服务器CPU利用率,CPU核心数,内存,磁盘操作频率,网络

软件:算法,编程语言

用户:用户并发数,用户使用时长,用户访问频率

二. 为什么要做性能测试

• 获取系统性能的指标,作为性能指标的基准

(例如我系统的v1.0版本登录所用时长20ms,v2.0版本登录时长30ms,可以根据v1.0版本作为基准,来判断以后的版本的性能)

• 验证系统的性能是否达到要求(性能需求)

应用程序是否能满足要求中各性能指标

应用程序是否能处理预期的用户负载并有盈余能力

应用程序是否能处理业务所需要的事务数量

在预期和非预期的用户负载下,应用程序是否稳定

是否能确保用户在真正使用软件时获得舒服的体验

• 发现系统的性能瓶颈,内存泄漏等问题

• 系统正常工作的情况下的最大容量

• 帮助系统运维部门能更好的规划硬件配置

三. 性能测试常见的术语及性能测试衡量指标

3.1 并发用户数

并发用户会对系统造成压力。

系统用户数:该系统的注册用户数。例如QQ里存在6666个注册用户,他们可以是活跃用户,也可以是僵尸的。不会对系统产生压力


在线用户数:例如QQ中状态有在线,有离线。指的是成功登录系统的用户数。不一定会对系统产生压力


业务层面的并发用户数:同时向服务器发送请求的用户数量


后端服务器层面的并发用户数:同时向服务器发送请求的请求数量

3.2 响应时间

用户相应时间(从用户发送请求到接受响应):N1+A1+N2+A2+N3+A3+N4


请求响应时间(服务器收到请求到发送响应):A1+N2+A2+N3+A3


事务响应时间: 事务响应时间是指从事务开始到事务结束所经过的时间,包括了所有请求和响应的时间。性能测试中重要的综合性性能指标.


这里的一个事物是一个业务度量单位,是指一组密切相关的子操作的组合,比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作.

每秒事务通过数:

TPS 是指每秒系统能够处理的事务数,它是衡量系统处理能力的重要指标.


当压力加大时,TPS曲线如果变化或者有平坦的趋势,很有可能是服务器开始出现了瓶颈了.如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变.


地铁站检票机:


只有10台进站检票的机器,1台机器1秒能进1个人


并发用户为5,则TPS为5


并发用户为10,则TPS为10


并发用户为30,则TPS仍为10


点击率: 点击数/时间


每秒点击数代表每秒用户向Web服务器提交的HTTP请求数,点击率越大,服务器压力越大


吞吐量: 用户一次请求和服务器之间的数据交互量


吞吐率: 吞吐量/时间

四. 性能分类

4..1 基准性能测试

让系统在正常情况下运行,观察软件性能指标,建立一个性能基准,作为以后性能测试的参考

应用场景: 软件刚上线需要进行性能摸底

4.2 负载性能测试

验证软件在一定压力情况下运行,观察性能指标是否出现了拐点

4.3 压力性能测试

不断的对系统施加压力,验证系统长期处于饱和状态下,观察系统性能指标(往往会把系统搞崩溃)


在不断地加压过程中,一旦系统出现拐点(从量变到质变),系统可能就会出现崩溃,揭露高负载下系统的问题,例如资源竞争、同步问题、内存泄漏等;软后逐渐减少压力,观察瘫痪的系统是否可以自愈


4.4 可靠性测试

验证系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常


在一定的软硬件环境下,长时间运行一定的负载,确定系统在满足性能指标的前提下是否运行稳定。与压力测试不同的是系统的负载并不是处于极限的状态下。重点是满足性能要求的情况下,系统的稳定性,比如响应时间,TPS是否稳定。

五. 性能测试执行流程

需求分析 -> 测试计划 -> 选择性能测试工具 -> 性能测试脚本编写 -> 执行性能测试脚本 -> 产出一个性能测试报告

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
Web App开发 测试技术 Linux
基于Python+uiautomation的windowsGUI自动化测试概述
基于Python+uiautomation的windowsGUI自动化测试概述
2179 0
基于Python+uiautomation的windowsGUI自动化测试概述
|
测试技术
测试基础之软件测试的原则概述
测试基础之软件测试的原则概述
182 0
|
关系型数据库 MySQL 测试技术
软件测试mysql面试题:Myql中的事务回滚机制概述
软件测试mysql面试题:Myql中的事务回滚机制概述
128 0
|
监控 算法 测试技术
接口测试平台代码实现29:真正的三大核心模块概述
如果说接口测试平台到底是做什么的?或者说核心到底是什么? 是帮助模块么?是首页么?是登陆注册么? 肯定都不是。
|
安全 算法 测试技术
渗透测试安全评估系统概述
互联网的广泛应用不仅给用户带来了便利,也带来了许多问题。近年来,出现了各种网站攻击方法,也出现了许多相应的网络渗透测试和评估方法。为了提高网站的整体安全性,整合网络渗透测试和评估具有重要的实际应用价值。本文首先研究了渗透测试的主要技术,总结了渗透测试的方法和特点。
257 0
渗透测试安全评估系统概述
|
测试技术 开发者
测试工程师必备基础知识:软件质量模型概述
测试工程师必备基础知识:软件质量模型概述
807 0
|
消息中间件 运维 Kubernetes
分享实录 | 阿里巴巴测试环境管理实践概述
在软件研发过程中,“测试环境”是部署最频繁、也是开发者使用最频繁的一种运行环境,稳定而易用的测试环境能够极大提高开发者的工作效率和幸福感。为更好的将阿里巴巴在测试环境管理方面的实践和经验跟广大开发者分享,《云效说码》策划了《阿里巴巴Kubernetes测试环境开源工具箱》系列直播视频,由阿里巴巴技术专家林帆(金戟)和郑云龙(砧木) 来为大家讲述。
4660 1
分享实录 | 阿里巴巴测试环境管理实践概述
|
测试技术 传感器 uml
带你读《基于模型的测试:一个软件工艺师的方法》之一:基于模型测试概述
本书主要讨论基于模型的测试(MBT)技术。作为一门手艺而非艺术,其关键在于:对被测软件或系统的理解,选择合适工具的能力,以及使用这些工具的经验。围绕这三个方面,书中不仅综合阐述了MBT的理论知识及工具,而且分享了作者的实战经验。
下一篇
DataWorks