随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的功能测试质量,性能也随越来越受到人们的关注。但是一提到性能测试,很多人就直接连想到Jmeter。认为LR就等于性能测试,其实这是不对的。Jmeter只是性能测试的一个工具,但性能测试不仅仅是Jmeter。本文会从以下几个方面介绍基础的性能测试理论,后续也会持续更新相关文章,尽量理论结合实践,让性能测试学习不在是工具的学习。

01、什么是软件性能

定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。

由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。

性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

02、不同群体眼中的性能

不同的人由于人生观、世界观、价值观以及教育背景、知识体系、人生阅历的不同,对于同一事物或问题的看法可能不同。对于软件性能也是如此,不同的人由于视角的不同,所关注的点也可能不同。下面来看看在不同的人群眼中性能分别是什么样的。

用户眼中的性能

开发眼中的性能

系统管理员眼中的性能

测试眼中的性能是什么样的呢?

测试人员通常是做为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面:

1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。

2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率, 架构设计是否合理?代码是否合理等方方面面。

03、性能测试类型

基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数据做为基础参考

负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。

压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。

稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。

并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,

04、性能测试基本概念

1、响应时间

a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间

b) 关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端。

c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)

d) 响应时间-负载对应关系:

图中拐点说明:

1、响应时间突然增加

2、意味着系统的一种或多种资源利用达到的极限

3、通常可以利用拐点来进行性能测试分析与定位

2、吞吐量

a)定义:单位时间内系统处理的客户端请求的数量

b)计算单位:一般使用请求数/秒做为吞吐量的单位,可以使用 页面数/秒表表示。

另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。

c)计算方法:Throughput = (number of requests) / (total time).

d)吞吐量-负载对应关系:

图中拐点说明:

1、吞吐量逐渐达到饱和

2、意味着系统的一种或多种资源利用达到的极限

3、通常可以利用拐点来进行性能测试分析与定位

3、并发数:

并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以 是不同场景或功能。

在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求

系统用户数:系统注册的总用户数据

三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数

4、资源利用率

a) 定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
b) 通常需要关注的服务器资源如下:

1、CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制

2、内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。

3、磁盘IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使用这些数据。

4、网络:

c)资源利用-负载对应关系:

图中拐点说明:

1、服务器某个资源使用逐渐达到饱和

2、通常可以利用拐点来进行性能测试分析与定位

5、其它常用概念:

a) TPS:Transactions Per Second,每秒事务数

b)思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力的

c) 点击数:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.

d)PV:访问一个URL,产生一个PV(Page View,页面访问量),每日每个网站的总PV量是形容一个 网站规模的重要指标。
UV:作为一个独立的用户,访问站点的所有页面均算作一个UV(Unique Visitor,用户访问)


最后:如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到 902061117,群内会有不定期的分享测试资料。

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

好文推荐

2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

什么样的人适合从事软件测试工作?

软件测试和软件开发哪个发展更好

那个准点下班的人,比我先升职了…

2021了,不会还有测试人员认为Jmeter就等于性能测试吧!相关推荐

  1. 开发团队里是否需要测试人员?

    最近在看"软件随想录",里面有个非常有名的"乔尔测试",其中有一个问题是"你的团队里面是否有测试人员",如果有的话就加分,表明团队对产品质量 ...

  2. 测试人员与开发人员的比例究竟多少是合理的?

    在一些软件大会上,人们常常会问这样一个问题:测试人员与开发人员的比例究竟多少是合理的?而这样的问题,很难直接给出一个答案.为什么会有这样的问题,可能来自于两方面的压力: 许多公司领导总是希望得到一个合 ...

  3. 2021:测试人员面试时都中过哪些套路?

    鲁迅说过,世上本没有路,只是走的人多了,也就成了路.然而路走的多了,套路好像也多了,你觉得是吗? 下面我们就来看看,测试人员面试过程中可能踩到哪些雷? 1.测试培训公司伪装招聘进行招生 利用招聘伪装起 ...

  4. 测试人员的发展瓶颈:35岁之后我们该何去何从...

    今天去外滩的某银行面试了,碰到了一个80年的姐姐.等候面试的时候聊了聊,成功接过了她的焦虑. 这位女士今年40了,做测试16年,精通功能测试,自动化测试.之前在一个小外企工作,外企工作环境相对友好,生 ...

  5. 测试人员,如何对直播类产品的直播质量进行测试呢?

    测试人员,如何对直播类产品的直播质量进行测试呢? 用户最关心的性能表现如何呢? 音视频质量测试的标准是什么呢? 真正决定未来竞争的关键,是在功能满足用户需求的前提下,提高直播软件的各项质量指标,对流畅 ...

  6. 已官宣:测试人员抄小道进腾讯的机会来了!

    经历了魔幻的2020最难求职季,终于迎来2021的"金三银四". 但疫情带来的余威不减,后疫情下测试人员就业趋势如何?如何深入挖掘更多就业资源.拓展自己就业空间?跳槽季跳还是不跳? ...

  7. 随心测试_软测基础_005 测试人员工作内容

    接上篇:清楚了_测试人员的工作职责范围,那每项测试活动的具体工作内容有哪些呢? Q1:如何理解测试工程师的工作内容? A1:SX的观点:综合一体化 现如今互联网行业高速发展,每一项IT职业的工作职责与 ...

  8. 作为一个测试人员,在你提出问题之前请先想想如下问题

    之前架构师米洛阐述了测试员报BUG的礼仪,并且引申出一个问题,该如何和程序员交往.其实,程序员群体,甚至推而广之的工程师群体,并没有那么的脾气大,对待测试人员还是挺客气的. 根据架构师米洛多年的开发经 ...

  9. 测试人员的GitHub

    当与开发人员谈起版本控制时,你一般会听到他们说,Git是一种工作流工具,而GitHub是一个存放代码和个人简历的地方.而对于测试人员或业务分析人员来说,Git是启动构建和产生缺陷的神秘之源.测试人员也 ...

最新文章

  1. 一文详解循环神经网络的基本概念(代码版)
  2. 备考一天速通计算机三级网络技术
  3. 300米远程深度估计:港科大重磅开源自动驾驶深度感知新技术,远超现有雷达|CVPR2020
  4. voc_eval.py:41: RuntimeWarning: invalid value encountered in greater_equal if np.sum(rec = t) ==
  5. Arduino学习笔记24
  6. python花萼长度表_python描述性统计实践
  7. 使用dubbo后尽量不用要@Service可能引起冲突
  8. php写不了php,php写入内存不足怎么办
  9. NAT (PAT)地址转换技术(讲解+配置)
  10. Layui的一点小理解(上)
  11. 2019118_四个化学数据分析(4)
  12. Prototype的JSON支持
  13. TensorFlow基础知识:计算图中的Op,边,和张量
  14. 微信Mac版客户端(支持查看朋友圈)
  15. linux发送短信的脚本,shell监控系统资源并通过短信报警的脚本
  16. TensorFlow 安装与环境配置
  17. 通过cocos裁切图片,将大图分为小图
  18. 为什么iPhone4到iPhone4S坚持使用512MB内存 详解 给力
  19. 数字图像处理100问—40 JPEG 压缩——第四步:YCbCr+离散余弦变换+量化
  20. 模拟360导航的钢琴效果实现

热门文章

  1. android 平台 列表布局,Android 设计指南 - 风格
  2. java 捕获运行时异常_java-如何通过ASM在字节码中捕获运行时异常
  3. 非主流图片制作工具_图片制作工具怎么用?有什么功能。
  4. springboot 整合redis_springboot自动装配原理详解
  5. 小米裁员10%?官方回应:创业至今 从未裁员
  6. 国家市场监管总局:低价倾销、大数据杀熟等价格违法行为将被罚
  7. 疫情之下困难的设备维护工作该如何解决? ​
  8. iPhone 13贴膜渲染图曝光:近几代外观最大升级
  9. 消息称荣耀7月发布年度旗舰 或用上旗舰级芯片骁龙 888
  10. 拼多多出手了,iPhone 12系列最高降价800元!