软件性能测试怎么用 精选:关于软件性能测试的步骤介绍

大家好,今天赵廷凯为大家准备了一些软件性能测试怎么用,关于软件性能测试的步骤介绍的相关话题,想要学习性能测试,性能,服务器,线程,软件的实用技巧和最新干货分享吗?在成功的路上,清晰的思路非常重要,希望我的分享能够为你们的成功带来一些帮助和指导。

要解决性能测试这个问题,我们可以分为三大步:

第一步:了解性能测试

第二步:熟悉性能测试流程

第三步:从性能测试原理分析性能测试流程和相关的技术知识
下面我们详细介绍

一.了解后端性能测试

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

1.1 这里提供了2个案例:

示例1:

游戏行业:某游戏上线新功能,目标是全服游戏群体,结果上线后,先后出现了服务器崩溃,游戏功能图标加载缓慢等问题,导致玩家怨声载道,为此,游戏运营商不得不发放了许多奖励。具体损失不表,为赶进度而发布的功能,也因为生产事故导致延期更长的时间

这就是典型的没有进行性能测试,或者说性能测试不充分导致出现的生产事故。在游戏行业还比较好,毕竟损失的只是虚拟的货币和玩家的游戏热情,但是在传统行业呢?

示例2:

传统航空行业:2019年9月5日,波音777X飞机在压力测试的过程中,舱门炸毁。

如果,波音的777X飞机没有经过压力测试就试飞了,那么当遇到同样的条件时,舱门必然炸毁,整个飞机就会直接暴露到高空低压低氧的环境,全飞机的人生存将会受到直接威胁。

通过这两个案例,我们知道,在一些极限的场景下,软/件和硬件会造成极大的破坏和损失,因此,我们需要进行性能测试,来验证软件在高压力下,高并发下,高负载下的实际工作情况。

2. 什么是性能测试?

性能测试就是模拟一些极端场景,对软/硬件性能进行测试,判断其极限性能和在极限性能边界上的运行状态。

性能测试主要分为前端性能,网络性能和后端性能

• 前端性能:是指对前端相关的数据指标进行测试,主要是HTTP请求,JavaScript,多媒体数据,CDN,缓存等进行测试,主要关注响应时间。一般优化方向是,缩小数据包,提高缓存命中率,即时响应。

• 网络性能:是指数据包在网络中传播时的性能,主要关注网络带宽,网络吞吐量,网络延时,丢包率等指标。

• 后端性能:前端发起请求后,经过的各类中间件和服务器处理的性能。比如:apache、nginx、rabbitmq、storm、zookeeper、dubbo、mysql数据库等。主要关注TPS(Transaction Per Second 每秒事务请求数),CPU,内存,交换内存,IOPS(IO吞吐量),TCP连接数等指标)

3.性能测试的目标

总之,性能测试的目的,就是为了提前发现软/硬件的瓶颈,从而可以进行评估和改进的一种测试。

本文重点介绍软件性能测试中的后端性能测试。

二.熟悉性能测试流程

本章节主要是为了介绍常用的性能测试流程

性能测试流程可以简单的划分为4个阶段:

• 性能需求分析阶段

• 准备阶段

• 执行阶段

• 报告和总结阶段

软件性能测试怎么用,关于软件性能测试的步骤介绍

性能需求分析阶段

• 熟悉项目相关的资源,如:架构设计,软/硬件环境配置,线上业务运营数据(交易量、用户活跃度、请求分布等等)

• 根据运营数据或者指标,确定性能测试要达到的目标,如:支持xx用户并发,TPS达到多少,响应时间达到多少,还有CPU,网络,IO的负载情况等等

• 设计性能测试计划:与功能测试计划差不多,主要对以下内容进行设计(根据实际情况设计,比如有的公司只看结果,就可以省略许多不必要的文案说明):

– 项目背景

– 项目结构

– 测试功能/范围

– 软/硬件资源准备和对比

– 技术术语

– 时间/人力安排

– 度量方式

– 准入准出条件

– 各阶段需要接收和交付的文档

– 压测工具和监控工具

– 风险项

– 其他

• 设计性能测试场景

主要有以下场景:

– 基准测试:了解系统在静置时的资源消耗,如cpu,io,网络带宽,网络连接的情况。如果有干扰,务必排除。

– 单次连续请求测试:1次连续请求情况下的tps,响应时间,服务器资源消耗情况,主要用于参考。

– 负载测试:逐渐增加并发请求数,查看tps,响应时间,错误率,服务器资源消耗情况,主要用于分析最大性能。

– 压力测试:在最大性能的临界点上保持压力进行测试,查看服务器在高压力情况的处理情况。

– 稳定性测试:连续xx天内,在一定的并发下进行测试,查看服务器运行情况是否能达到需求设计

准备阶段

• 搭建性能测试环境

• 设计性能测试用例

• 准备测试数据

• 编写测试脚本

执行阶段

• 运行性能监控工具

• 按照测试场景,执行测试用例。

• 分析:分析性能瓶颈,针对不同的业务场景,分析的侧重点也不一样,比如计算密集型,IO密集型的业务,还有线程锁,垃圾回收机制等等

• 调优

结果阶段

• 总结测试结果,输出性能测试报告

三.了解性能测试需要用到的技术

本章节,主要是通过性能测试的原理,了解性能测试需要使用的各方面的知识和技术。

性能测试原理介绍:

性能测试,本质就是模拟客户端请求,对服务器进行高并发,高流量的压力测试,从而验证服务器提供服务的能力,并找出瓶颈点,提出或者进行优化。

问题:

1. 怎么模拟高并发,高流量?

2. 怎么进行性能优化?

1. 怎么模拟高并发:

– 使用多线程技术,模拟高并发。

– 如果并发太高,如10w并发以上,则需要使用负载均衡和分布式处理技术,jmeter工具支持多台机器作为负载机。

2. 怎么模拟高流量:

– 在每个请求中塞入大量数据即可

3. 怎么进行性能优化

– 这是个大问题,下文《怎么进行性能优化》会有更详细的讲解

那么怎么提升性能呢?我们首先介绍一个衡量性能标准的一个参数:TPS(Transaction Per Second 每秒事务请求数)。

我们再看一下TPS计算公式:

TPS = 总请求数/ 平均响应时间

总请求数:在一段时间内发送的所有请求数量

平均响应时间:所有请求的平均响应时间

通过这个公式,我们可以知道,当分母越小时,TPS越大。所以要提升性能,我们只需要提高平均响应时间就可以了。那么怎么减少平均响应时间呢?

我们先看一个客户端到服务器的请求流程图:

软件性能测试怎么用,关于软件性能测试的步骤介绍

图中,客户端发送请求经过了互联网到服务器,服务器经过内部处理,从数据库中读取了数据,然后把数据返回给客户端。这过程中,经历的时间大致可以分为:C1+T1+T2+T3+N2+T4+T5。

所以,要把平均响应时间缩小,我们只需要缩小这8个时间就够了,其中主要包括:

• 网络时间(T1+T2+T3+T4+T5),

• 服务器内部处理时间(N1),

• 数据库处理时间(N2),

• 客户端处理时间(C1)。

所以我们可以就可以从这三个方向去优化:提高网络传输速率,服务器内部处理速率,数据库处理速率,客户端处理速率,其中客户端处理速度也和服务端优化策略基本相同

性能优化:

网络传输速率的提高:

1,采用光纤,配置路由表,缩短网络传输距离与路由器跃点数量。

2,如果是实时服务,那么需要配置缓存服务器,尽量避免缓存穿透

服务器内部处理速率的提高:

1. 计算密集型:优化思路是提高CPU利用率,采用多线程的思路进行。但是线程数量不能超过cpu核心数。因为线程数量超过cpu核心数后,cpu会分片执行超过部分的线程,会增加cpu读取线程缓存的压力,使计算能力下降

2. IO密集型:

– 优化思路是提高存储的效率,如使用固态硬盘,阵列,分布式等技术。

– 由于IO密集型中,CPU可能会等待IO操作完成。所以我们可以使用超过CPU核心数的线程来访问IO,从而提高性能(但如果磁盘繁忙,线程数再多也只是在磁盘队列中排队,增加CPU线程数来访问IO的方法,适用于IO读/写操作并不繁忙,但是需要长时间寻址的场景)

– 注意:因为磁盘内部只有1个线程处理IO操作,所以要真正实现磁盘的并发,需要使用多个磁盘,也就是磁盘阵列

数据库处理速率:

• 数据库直接和IO进行交互,所以提高IO性能,能提高数据库性能。

• 数据库有自己的数据结构,所以优化数据存储和查询的相关算法,也能提高数据库性能

• 索引优化

• 缓存优化

• 数据库连接优化

• 数据库查询语句优化

• 分表分库

• 分布式处理

性能优化方向也可以用一个思维导图来表示:

硬件优化:加cpu升级,cpu阵列;使用ssd固态硬盘;主板用最先进的,内存用最高的,网络用专线等等。

操作系统优化:

• windows操作系统,去掉不需要的服务,根据实际业务场景调整线程,虚拟内存,缓存的大小等相关配置项,需要专业人士操作

• Linux操作系统:与windows基本相同

中间件优化:根据不同的业务场景,选择不同的中间件,调整配置等等,如nginx中启用的cpu核心数量等等

架构优化:采用分布式存储架构,分布式服务器架构,负载均衡等

代码优化:许多问题都是代码的问题,如果代码问题能准确定位,可以考虑优化代码。

数据库优化:优化索引,配置,数据库连接,算法等等

算法优化:这个不提了,算法属于底层的优化,需要非常扎实的计算机基础知识和优秀的逻辑思维以及灵感

其他:线程,进程,网络等等

性能监控

我们要分析数据,就必须得到数据,所以需要性能监控工具来采集和展示数据,才能进行分析。

那么我们要怎么进行监控呢?这里我们可以借助已经实现的工具来进行。

Linux:

• 可以使用sysstat工具包中的sar命令来监控CPU,内存,IO,网络的运行情况,具体用法参考:
http://lovesoo.org/linux-sar-command-detailed.html

• 可以使用ps命令查看线程运行情况

JAVA:可以使用jstack,jprofile,jstat,jmap,jps工具来进行查看,这是java自带的工具包,用于分析java的堆栈信息

Windows:

• 可以使用widnows自带的资源监视器监控和采集数据

数据库监控:

• mysql数据库有自带的监控工具,但是收费

• 可以使用免费的工具进行监控,如innotop

• 可以使用综合能力强大的工具监控,如zabbix(也能监控服务端)

其他:

• 前端性能监控:Yslow,谷歌开发者模式->performance,使用windows.performance 进行定制化开发

• Android监控:

– 网易开源的Emmagee,

– 腾讯开源的GT,

– 科大讯飞的iTest,

– Google的开源Battery

– 自己开发

• IOS监控:

– 自己开发,参考:
http://www.cocoachina.com/articles/19680

• 服务器中间件:nginx,apache,dubbo,redis,kafka等

看到需要学习这么多技术,可能会让大家感到许多压力。但是大家不用慌,这里介绍一个开源的性能测试工具,功能强大也好用,不满意还可以二次开发,它就是jmeter

jmeter可以很好的支持并发操作,并有内置模块收集TPS,响应时间等关键性能指标。服务端性能也可以使用jmeter插件来实现监控,只要掌握jmeter工具的使用和性能测试流程,性能测试就不再遥远!

总结

想要做好性能测试,的确需要比较扎实的基本功和丰富的应用经验,但是如果想快速入门进行性能测试,可以重点掌握性能测试流程和jmeter工具就可以初步达到要求了。

上面就是本文所要讲解的所有内容,希望能对大家有所帮助!希望这些观点对大家有所帮助,看完这篇软件性能测试怎么用 精选:关于软件性能测试的步骤介绍,希望你继续深入学习相关知识,可以在巢座耶上找到更多有用的资源哦!

本文发布者:大嫂助理,不代表巢座耶立场,转载请注明出处:https://www.chaozuoye.com/p/9329.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jubao226688#126.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年7月13日 14:03
下一篇 2023年7月13日 14:25

相关推荐

  • 苹果手机怎么录屏 以及苹果手机录屏教学

    各位朋友们大家好,今天韩剑明准备了一些有关苹果手机怎么录屏,苹果手机录屏教学的内容,还有关于苹果,手机,功能,控制中心,小伙伴这些的最新实用干货和分享内容。无论你是初学者还是老手,这篇文章都包含了很多有用的信息,建议认真阅读。 在使用手机的时候,很多小伙伴都会使用到截图、拍照等功能。使用苹果手机的小伙伴或许对截图和拍照比较熟悉,可对于不太经常使用的录屏功能来…

    2023年5月28日
  • wifi信号差怎么可以增强 以及提升无线信号的三个技巧

    各位朋友们大家好,今天沈赵超将为大家解析一下wifi信号差怎么可以增强,提升无线信号的三个技巧的文章,想要学习信号,技巧,信道,路由器,无线路由器的实用技巧和最新干货分享吗?我将分享在这个领域学习和实践中的经验,希望对你有所帮助。 从春节的7天小长假回归到日常的工作和生活中,朋友们是否还适应呢?许多朋友表示,过年宅在家中,但家中的WiFi信号不好,让人十分烦…

    2023年4月14日 经验分享
  • iPhone日历显示中国大陆节假日的方法 实用:苹果手机节假日的设定

    很高兴又和各位见面了,今天韩淙奕为大家整理了一些iPhone日历显示中国大陆节假日的方法,苹果手机节假日的设定的学习资料,还有节假日,中国大陆,日历,苹果,方法相关的最新实用干货和技巧分享,在我总结的基础上,我认为这篇文章对于初学者来说非常有用。 在苹果手机的日历中显示节假日,只需要在系统“日历”应用中,将所需要知道的“节假日”勾选即可。设置的方法非常简单也…

    2023年7月6日 经验分享
  • vivo格式化手机和恢复出厂设置-vivo还原官方系统的步骤

    美好的一天从这里开始,今天何豆要和大家分享一些关于vivo格式化手机和恢复出厂设置,vivo还原官方系统的步骤的见解,您是否需要手机,步骤,系统,官方,性能的一系列最新干货分享和实用技巧?如果你是初学者,这篇文章将对你的学习非常有帮助。 Vivo手机恢复出厂设置是一项有效的解决方案,可以帮助用户重新安装系统恢复手机的原始性能,清理内存空间,以及解决许多由于病…

    2023年5月26日
  • 诺基亚n95是哪一年上市的 精选:诺基亚N95全面讲解,神机再现

    大家好,今天蒋官第为大家带来一些诺基亚n95是哪一年上市的,诺基亚N95全面讲解,神机再现的探讨,您是否需要诺基亚,全面,当时,手机,这台的一系列最新干货分享和实用技巧?在成功的路上,清晰的思路非常重要,希望我的分享能够为你们的成功带来一些帮助和指导。 前两天我在收拾老房子的时候突然发现了这么个玩意,这就是2006年9月份诺基亚发布的N95,这款手机在当时堪…

    2023年8月19日 经验分享
  • 蓝牙怎么传软件给对方手机 重要:两部手机之间互传app软件的方法

    哈喽,小伙伴们你们好,今天辰初来跟大家分享一些有关蓝牙怎么传软件给对方手机,两部手机之间互传app软件的方法的技巧,您是否需要蓝牙,手机,软件,两部,给对方的一些实用干货和技巧分享?这篇文章对于新手来说非常有价值,希望能够帮助你们更好地学习。 提到蓝牙,相信大家都不陌生,时下多数人使用智能手机的蓝牙功能多半用于连接硬件设备,但在一些特殊时刻,蓝牙的用处也是相…

    2023年7月8日 经验分享