性能测试思想(What is performance testing?)

1.什么是性能测试
什么是软件性能?
定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能是展示出来的及时性。
比如:一个登录功能他能实现登录操作,但是登录过程需要10s才能进入主页面,这就说明软件的性能不好。
什么是性能测试?
定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
功能测试的时候关注的是1个人的操作,性能测试关注的是多个人。
性能测试什么时候做?
接口测试是最先做,性能测试是最后做。
性能测试是基于所有功能都测试完毕并且修复完成,基本不改变,正常测试流程已经全部走完,在上线前的两三天做性能测试,性能测试通过则可以上线。
2.不同群体眼中的性能
用户的视角:
- 响应时间(还要让我等多久?需要加载老半天才出现页面?)
- 确定性(为什么总是失败?闪退?无响应?)
开发视角:
- 架构设计是否合理?——架构设计
- 数据库设计是否合理?——数据库设计
- 代码是否存在性能问题?——代码
- 是否有不合理的内存使用?——代码
- 是否有不合理的线程同步操作?——代码
- 是否有不合理的资源竞争?——代码
- 代码算法是否还能进一步提升?——代码
系统管理员(运维)视角:
- 服务器资源使用合理吗?——资源利用率
- 数据库使用合理吗?——资源利用率
- 系统是否实现扩展?——可扩展性(比如:服务器动态扩展)
- 最多支撑多少用户访问?——系统容量
- 最大业务处理量?——系统容量
- 系统有哪些潜在的瓶颈?——可扩展性
- 更换哪些设备,添加哪些机器可以提高系统性能?——可扩展性
- 7×24小时连续不间断业务访问?——稳定性
测试眼中的性能:
官方回答:
- 测试人员通常是作为软件质量控制的一个角色,不仅仅是找BUG,更需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面。
- 测试人员需要考虑全面的性能,包括用户、开发、运维等各个视角的性能。
- 测试人员在做性能测试时除开要关注表面的现象,比如:响应时间,也需要关注本质,比如:用户看不到的服务器资源利用率,架构设计是否合理,代码是否合理等方面。
实际测试:
- 将开发视角看成一块,运维视角也看成一块,站在用户的角度,模拟用户操作。
- 如果达标就通过,上线。
- 如果不达标,就要判断是开发的问题还是运维的问题。
- 监控系统的物理资源,比如:CPU占用100%(一般是85%以内,70%、60%、50%都ok),就是运维问题,或者是内存占满,带宽打满。
- 运维已经调过物理资源,CPU、内存、带宽等也都达标,测试发现还有性能问题,那就是开发问题。就要指派给开发去处理。
性能测试的指标?是谁定的?
产品经理和项目经理制定。
3.性能测试的场景维度和类型
基准测试:
在给系统施加较低压力时,查看系统的运行状况并记录相关数据作为基础参考。
比如:一个系统的性能要求是满足100个人使用,我们就会取10-20个人去做测试就会得到一组数据,这个数就作为基准测试的基础参考值
负载测试:
是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如:某种资源已经达到饱和状态。
正常是由小往大增加,需要注意的点是需要往安全的临界值去加,而不是往超负荷的去加,也就是说性能是走上坡路的,寻找最佳性能的那个点。如果加到发现性能下降,就需要往回退,取更小的差值,比如60直接加到70的时候出现性能指标下降,就需要取65、66、67等慢慢尝试,找到系统最优点。
压力测试:
压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
70往上加,观察软件是如何处理这种情况:
①系统崩溃
②所有人都无法访问
③一部分人可以访问,一部分人无法访问,需要错峰访问(比如:考试系统查分)
稳定性测试:
在给系统加载一定业务压力(40%-60%)的情况下,使系统运行一段时间,以此检测系统是否稳定。
并发测试:
测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
4.性能测试指标确立及分析
响应时间(RT——Response-time)定义:从
用户发送一个请求到用户接受到服务器返回的响应数据的这段时间就是响应时间。关键路径:http请求经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最终把结果数据通过网络返回给客户端。

响应时间计算方法:
响应时间=呈现时间+网络传输时间+服务器端响应时间+应用延时时间
响应时间和负载对应关系:

理发店模型:10个理发师,理1个客户需要1分钟,当同时来的客户数量小于等于10个,总时间只需1分钟,当同时来11个客户,总时间就需要2分钟,以此类推21个客户就需要3分钟......
拐点:
- 响应时间突然增加。
- 意味系统的一种或多种资源利用达到极限。
- 通常可以利用拐点来进行性能测试分析与定位。
吞吐量定义:单位时间内系统处理的客户端请求的数量。(判断系统处理能力的一个指标)
计算单位:一般使用
请求数/秒作为吞吐量的单位,可以使用页面数/秒表示。另外,从业务角度来说也可以使用访问人数/天或页面访问量/天作为单位。计算方法:throughput = (number of requests)/(total time)
吞吐量和负载对应关系:

拐点:
- 吞吐量逐渐达到饱和。
- 意味着系统一种或多种资源利用达到了极限。
- 通常可以利用拐点来进行性能测试分析与定位。
并发数- 并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
- 在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。(日活——每日活跃用户数)
- 系统用户数:系统注册的总用户数据。
- 三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
资源利用率定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量(CPU、内存)。
通常需要关注的服务器资源如下:
- CPU:就像人的大脑,主要负责相关事物的判断以及实际处理的机制。(一般不超过80%-90%)
- 内存:大脑中的记忆块区,将眼睛、皮肤等收集到的信息记录起来的地方,以供CPU进行判断,但是是临时的,访问速度快,如果关机或断电,内存中的数据就会消失。
- 磁盘IO:大脑中的记忆区块,将重要的数据保存起来,永久保存,关机或断电也不会丢失,速度慢,以便将来再次使用这些数据。(通过查看读写)
- 网络:带宽。(发送/接收的速率)
资源利用率和负载对应关系:

拐点:
- 服务器某资源使用逐渐达到饱和。
- 通常可以利用拐点来进行性能测试分析与定位。
windows的资源监视器:
任务管理器 --> 性能 --> 资源监视器

其他常用概念PV(Page View,页面访问量):访问一个URL,产生一个PV,每日每个网站的总PV量是形容一个网站规模的重要指标。UV(Unique Visitor,用户访问):作为独立的用户,访问站点的所有页面均算一个UV。
性能测试思想(What is performance testing?)的更多相关文章
- RabbitMQ Performance Testing Tool 性能测试工具
RabbitMQ Performance Testing Tool 介绍:https://www.rabbitmq.com/java-tools.html RabbitMQ Performance T ...
- Performance Testing 入门小结
从事软件测试两年多了,一直在做功能测试.2016年计划学习Performance.今天,先把之前听过的同事session以及自己查阅的资料小结一下. 一.什么是性能测试 首先来说一下软件的性能是什么. ...
- Difference Between Performance Testing, Load Testing and Stress Testing
http://www.softwaretestinghelp.com/what-is-performance-testing-load-testing-stress-testing/ Differen ...
- 脚本语言&& Performance Testing
watin: http://www.cnblogs.com/dahuzizyd/archive/2007/04/13/ruby_on_rails_windows_instatnrails_study_ ...
- Run Performance Testing Which Was Distributed To Multiple Test Agents
How to solve the VS installed machine cannot run performance testing by .testsettings file, which wi ...
- Difference between Load / Stress / Performance Testing
Load and stress testing are subsets of performance testing. Performance testing means how best somet ...
- Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑
脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的. 原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保 ...
- 【原创】时隔十年,再度审视Performance Testing,性能测试,Load Runner,和企业级性能测试解决方案
软件测试入行是2006年,最先学习的测试工具囊括了QTP,Test Director,Load Runner,Rational Robot,Rational Performance: 那时的操作系统是 ...
- Performance testing of web application
Testing the performance of web application is easy . It's easy to design unrealistic scenario . Easy ...
- Performance testing test scenarios
1 check if page load time is within acceptable range2 check page load on slow connections 3 check re ...
随机推荐
- 基于角色的权限控制(RBAC)介绍
什么是RBAC? RBAC(Role-Based Access Control)基于角色的权限控制.其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集 ...
- centos上使用makefile编译sliver时 提示gcc 错误,cannot find -ldl cannot find -lpthread cannot find -lc
github.com/bishopfox/sliver/server /usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit ...
- python中的泛型使用TypeVar
引入为什么需要TypeVar PEP484的作者希望借助typing模块引入类型提示,不改动语言的其它部分.通过精巧的元编程技术,让类 支持[]运算不成问题.但是方括号内的T变量必须在某处定义,否则要 ...
- 1.Go 的基本数据类型
Go 的基本数据类型
- Vue.beforeEach is not a function报错
使用导航守卫改变页面的title时报错了,明明在beaforeEach的参数中写了箭头函数也报下面的错误 后面发现我的问题在于直接导出了export.default new Router({--})中 ...
- Java abstract 小测试
1 package com.bytezreo.abstractTest; 2 3 /** 4 * 5 * @Description abstract 小测试 6 * @author Bytezero· ...
- 深入理解与应用CSS clip-path 属性
clip-path clip-path是什么 clip-path 是一个CSS属性,允许开发者创建一个剪切区域,从而决定元素的哪些部分可见,哪些部分会被隐藏.通过定义这个剪切路径(clipping p ...
- Python函数对象与闭包函数
[一]函数对象 函数对象指的是函数可以被当做 数据 来处理,具体可以分为四个方面的使用 [1]函数可以被引用 def add(x,y): return x + y func = add res = f ...
- 使用LabVIEW打开默认应用程序中的文档(PDF,Word,Excel,Html)
问题详情 我想让我的LabVIEW VI使用默认应用程序打开硬盘上的文档.如何实现? 解决方案 有一个名为 "Open a Document on Disk.vi" 的 VI,它可 ...
- iview 表单验证 爆红后,有某些组件现隐,爆红和必填会错位,解决方案 组件上加key
iview 表单验证 爆红后,有某些组件现隐,爆红和必填会错位,解决方案 组件上加key