软件测试之「 性能测试」总结,新手上路必会知识点

目录

1、为什么要做性能测试?

2、性能测试概念

3、性能测试的内容

4、性能测试关注角度

5、性能测试关注点

6、性能测试工具

7、性能测试评价指标

8、性能测试的核心原理

9、loadrunner使用

为什么要做性能测试

1)目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。

2)用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。

性能测试概念
【虚拟用户】模拟真实业务逻辑步骤的虚拟用户,其模拟的操作步骤都被记录再虚拟用户脚本中。

【事务】事务是性能测试脚本的一个重要特性,按照最小的http请求打包而成。

【TPS】每秒中系统处理的交易或者事务的数量。

【PV】用户浏览器访问页面,对应用服务器产生的每一个请求,记录一个PV。

【Peak PV】峰值PV,一般适用于接口测试。

【并发】并发分为广义和狭义的并发。侠义的并发是所有的用户在同一时刻 做相同的操作,一般为同一类型业务,或者所有用户进行完全同一操作。广义的并发是多个用户对系统发出请求或者操作,但是这些请求或者操作可以不同,对整个系统而言,仍然有很多用户同时进行操作。

【场景】性能测试过程中为了模拟真实用户的处理过程。

【响应时间】响应时间是指客户端发送一个请求开始,到客户端接收到服务器返回的响应结果结束所经历的时间。

【思考时间】模拟用户正式的实际操作时的停顿间隔时间,思考时间会影响TPS。

【CPU资源】CPU是指性能测试场景运行的这个时间内,应用服务器系统的CPU资源占用率。

【标准差】该标准差根据数据统计的概念得来,标准差越小,说明系统越稳定。

性能测试的内容
【性能测试】侠义的性能测试,是指以性能预期为前提,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。

【Linux资源查看】

top

top -i 动态显示内存
top 每5秒显示资源的占用情况
top -d 2每2秒显示系统的资源消耗情况

free

free表示内存的使用率情况

iostat(IO)

iostat -d -k 2 -d表示磁盘的使用状态 -k 磁盘的使用块 2表示2秒显示一次
iostat -d sda 2表示指定监控sda

内存中的buffer和cache

写缓存:数据存储时,先保存到磁盘缓冲区,然后再写入到永久空间
读缓存:数据从磁盘读出后,暂留在缓冲区,预备程序接下来的使用

【负载测试】侠义的负载测试,是指对系统不断增加压力或增加一定压力下持续时间,直到系统某项或某几项性能指标达到安全临界值。

【压力测试】侠义的压力测试,是指超过安全负载的情况下,对系统不断施加压力。

【容量测试】系统最大支撑的相关数量,数据库最大数据数量,用户数量。

【稳定性测试】稳定性测试的TPS,响应时间,资源消耗等波动率不超过15%。

性能测试关注角度
【用户角度】响应时间,用户体验。性能测试压测服务器的响应时间一般在内网,所以不考虑公网的响应时间。压力测试不应该在公网测试,因为公网的环境是不可控的。

【运维角度】资源消耗是否正常,数据库规划配置是否正常。运维的性能监控工具主要有zabbix工具等。

【开发角度】页面性能,代码正确率。

【客户角度】系统扩展性,项目成本。

性能测试关注点
响应时间快慢,服务器端的处理速度
服务器端的使用情况
数据库端的资源使用情况
最大用户访问数量
同时处理最大业务数量
考察系统能否支撑7x24小时运转
内存资源、线程资源能否正常回收
代码,算法,sql语句设计是否合理
整个系统的稳定性,可恢复性
性能测试工具
【测试工具】主流的性能测试工具有:LoadRunner、Jmeter。

【脚本语言】Java、Python、Shell等。

【性能测试相关的中间件】tomcat多线程、jetty、jboss、weblogic、web sphere等。

【常用的数据库】SQL Server、Oracle、MySQL、Redis、ES引擎等。

性能测试评价指标

1、在资源充足的情况下满足TPS

2、通过率不超过安全界限

3、资源消耗不超过安全界限

4、接口测试响应时间

(1)通用的接口响应时间分布情况:

100ms为优良

500ms为及格

1000ms以上为不可忍受

(2)金融接口响应时间的分布情况:

100ms为优良

200ms为及格

300ms以上为不可忍受

5、测试服务器的响应时间的各项指标是多少

(1)1/3/5排除网络时间和前端增加时间

(2)2/4/6加上网络时延,并发很严重的情况下6s

6、并发用户数和TPS的关系是怎么样的

(1)有关系,但不是正比关系

(2)和思考时间有反比关系

(3)网络时间要考虑,但是要排除

7、在某一项资源到达高端临界值时到达B点

(1)一般测试到B点就差不多

A点是闲时用的

A-B点高峰时间用的

(2)稳定性测试一般在B点

(3)最佳用户数B点

(4)永不宕机的基础B点

8、高端临界值B点判断的各项指标

(1)CPU 70%

(2)内存 70%

(3)I/O 60%

(4)网络

一个网卡,进出网卡40%

两个网卡,进网卡80%,出网卡80%

9、低点临界值非高峰期的业务值A的各项指标是多少

(1)CPU 50%

(2)内存50%

(3)I/O 40%

(4)网络30%

10、性能测试各个点的总结

(1)在安全值希望没有虚拟内存的交换

(2)如何测试拐点?越测试坡度越缓,才能测试比较真实的拐点

(3)压测到某一项资源到达极限C点

11、单场景和多场景测试的区别是什么

(1)资源够不够的问题

(2)资源分配的问题

(3)争用资源的问题

性能测试的核心原理

1、基于协议(前端后端通信机制),基于界面(决定和前端交互),基于代码(后端)。

基于网络的分布式架构:基于网络协议去模拟用户发送请求

2、多线程:模拟多线程操作,多人同时操作,模拟大负载量(功能测试在于用以测试功能)

3、模拟真实场景:真实的网络环境,用户操作时间不确定性,操作不确定,得出的数据是准确的,场景不对,数据也不一定可用。

loadrunner使用

四个主要部件:1、vuser generator 开发性能测试脚本 。2、controller 提供多线程并发等操作. 3、ananlysis 结果分析 4、load generator 负债生成器(controller 里面的一个主键)

1、vuser generator (虚拟用户生成器)

新建一个脚本:在这里插入图片描述
进入界面,点击start 录制一段脚本在这里插入图片描述
internet application 指的是b-s 架构,win 32 是指c-s 架构,默认是录制到action,勾选recond表示立即开始。在这里插入图片描述
可以手写,可以录制

点击web_url,使用get请求

点击web_submit_data,使用post请求

解决乱码

开始时:tool > advaced > support charset // utf-8 或者本机编码

运行时:vuser > preferences > option > convert from/to utf-8

编码的差别:

国标GB-x ,2byte-16bit , 2^16种组合,只对中文进行编码。

utf-8 :3byte = 24bit 2^24种组合 ,对全世界的文字进行统一的编码。

ascii码:一个字节 (2^8=128)

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

在这里插入图片描述

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

点击文末小卡片领取

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:25天从零基础转行到入职软件测试岗,今天学完,明天就业。【包括功能/接口/自动化/python自动化测试/性能/测试开发】

自动化测试进阶:2022B站首推超详细python自动化软件测试实战教程,备战金三银四跳槽季,进阶学完暴涨20K

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值