软件性能测试怎么用(关于软件性能测试的步骤介绍)
如果有更好的建议或者想看更多关于电子数码技术大全及相关资讯,可以多多关注茶馆百科网。
为了解决性能测试的问题,我们可以将其分解为三个步骤:
步骤1:理解性能测试
步骤2:熟悉性能测试流程
步骤3:从性能测试原理出发,分析性能测试流程及相关技术知识
: 010 - 1010 1。为什么执行性能测试?
1.1这里提供两种情况:
示例1:
游戏行业:推出游戏的新功能,旨在服务于所有游戏群体。但上线后,服务器接连崩溃,游戏功能图标加载缓慢,引起玩家不满。为此,游戏运营商不得不发放大量奖励。具体损失没有列出,发布功能要赶上进度,也会因生产事故造成较长时间的延误
这是由于缺乏性能测试或性能测试不充分而导致的典型生产事故。在游戏行业中,你所失去的只是虚拟货币和玩家热情,但在传统行业中呢?
示例2:
传统航空:2019年9月5日,一架波音777X飞机的舱门在一次压力测试中爆炸。
如果波音777X飞机在没有进行压力测试的情况下进行测试,那么当它遇到同样的条件时,舱门必然会爆炸,整架飞机将直接暴露在高空低压低氧环境中,整架飞机的生存将受到直接威胁。
通过这两个案例,我们知道在一些极端的情况下,软件/软件和硬件会造成很大的破坏和损失。因此,我们需要进行性能测试,验证软件在高压、高并发、高负载下的实际工作情况。
2. 什么是性能测试?
性能测试是模拟一些极端的场景,测试软件/硬件的性能,在极限性能的边界上判断其极限性能和运行状态。
性能测试主要分为前端性能、网络性能和后端性能
•前端性能:是指对前端相关数据指标的测试,主要是HTTP请求、JavaScript、多媒体数据、CDN、缓存等,重点是响应时间。一般的优化方向是减少数据包,提高缓存命中率,立即响应。
•网络性能:指数据包在网络中传播时的性能,主要包括网络带宽、网络吞吐量、网络时延和丢包率。
后端性能:各种中间件和服务器在前端发起请求后处理请求的性能。例如:apache、nginx、rabbitmq、storm、zookeeper、dubbo、mysql数据库等。关注诸如TPS(每秒事务请求)、CPU、内存、交换内存、IOPS(IO吞吐量)和TCP连接等指标。
3.性能测试的目标
简而言之,性能测试的目的是提前识别软件/硬件瓶颈,以便对它们进行评估和改进。
本文主要研究软件性能测试中的后端性能测试。
一.了解后端性能测试
介绍常用的性能测试步骤
性能测试过程可以分为四个简单的阶段:
•性能需求分析阶段
•准备阶段
•执行阶段
•报告和总结阶段
性能需求分析阶段
•熟悉项目相关资源,如架构设计、软硬件环境配置、在线业务运营数据(交易量、用户活跃度、请求分布等)
•根据操作数据或指标确定性能测试目标,例如对xx用户并发性、TPS、响应时间、CPU、网络、IO负载等的支持
-项目背景
-项目结构
-测试功能/范围
—准备和比较软硬件资源
——技术术语
——时间/人力安排
-测量方法
——出入境条件
-每个阶段需要接收和交付的文件
—压力测量工具和监控工具
——风险项目
——其他
•设计性能测试场景
主要场景如下:
—基线测试:了解系统的静态资源消耗情况,如cpu、I/O、网络带宽、网络连接等。如果有干扰,一定要消除它。
—单次连续请求测试:连续一次请求的tps、响应时间、服务器资源消耗。
—负载测试:通过逐步增加并发请求数,检查tps、响应时间、错误率、服务器资源消耗等指标,分析最大性能。
—压力测试:在性能最大的临界点进行压力测试,检查服务器在高压环境下的工作状态。
—稳定性测试:连续xx天,在某一并发度进行稳定性测试,检查服务器是否符合要求
准备阶段
•建立性能测试环境
•设计性能测试用例
•准备测试数据
编写测试脚本
执行阶段
•运行性能监控工具
•根据测试场景执行测试用例。
•分析:分析性能瓶颈,并关注不同的业务场景,如基于计算的、IO密集型服务、线程锁、垃圾收集机制等
•优化
结果阶段
汇总测试结果并输出性能测试报告
当前位置
二.熟悉性能测试流程
本章主要目的是通过性能测试的原理了解性能测试所需要的各个方面的知识和技术。
性能测试原理介绍:
性能测试本质上就是模拟客户端请求,在服务器上进行高并发、高流量的压力测试,以验证服务器提供服务的能力,找出瓶颈,提出或优化。
问题:
0
2. 如何优化性能?
1. 如何模拟高并发:
—使用多线程技术模拟高并发。
—如果并发数过高,例如10w以上,需要采用负载均衡和分布式处理技术。jmeter工具支持多台机器作为负载机。
2. 如何模拟高流量:
-在每个请求中塞进大量的数据
3.如何优化性能
这是一个很大的问题,更多信息请访问:《怎么进行性能优化》
那么如何提高性能呢?让我们从一个性能指标开始:TPS(每秒事务数)。
让我们再看一下TPS的计算公式:
TPS=总请求数/平均响应时间
总请求数:一段时间内发送的所有请求数
平均响应时间:所有请求的平均响应时间
由这个公式,我们知道分母越小,TPS越大。因此,为了提高性能,我们只需要提高平均响应时间。那么如何减少平均响应时间呢?
让我们从客户端到服务器请求的流程图开始:
在图中,客户端通过Internet向服务器发送请求,服务器经过内部处理,从数据库中读取数据,然后将数据返回给客户端。这个过程的时间大致可以分为C1+T1+T2+T3+N2+T4+T5。
因此,要减少平均响应时间,我们只需要减少这8次,主要包括:
•网络时间(T1+T2+T3+T4+T5),
0
•数据库处理时间(N2),
•客户端处理时间(C1)。
因此,我们可以从这三个方向进行优化:提高网络传输速率、服务器内部处理速率、数据库处理速率、客户端处理速率。客户端处理速度基本与服务器优化策略相同
性能优化:
网络传输速率的提高:
1. 通过光纤配置路由表,可以缩短网络传输距离,减少路由器跳数。
2. 如果是实时业务,需要配置缓存服务器,防止缓存渗透
服务器内部处理速度提升:
1. 计算密集型:优化思路是提高CPU利用率,采用多线程。但线程数不能超过cpu核数。当线程数超过cpu核数时,cpu分片并执行超过一定数量的线程。因此,cpu必须读取线程缓存,从而降低了计算能力
2. IO密集型:
—优化的思想是提高存储的效率,例如使用固态驱动器、阵列和分布式技术。
—CPU可能会等待I/O操作完成,因为这是IO密集型操作。因此我们可以使用超过CPU内核数的CPU来访问IO,从而提高性能(但如果磁盘繁忙,任何数量的线程都会在磁盘队列中排队,增加CPU线程数来访问IO适用于IO读写操作不繁忙,但需要长寻址的场景)。
—注意:由于磁盘内部只有一个线程处理I/O操作,因此需要多个磁盘或磁盘阵列才能实现真正的磁盘并发
数据库处理速率:
•数据库直接与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工具就可以初步达到要求了。
本文主要介绍了关于软件性能测试怎么用(关于软件性能测试的步骤介绍)的相关养殖或种植技术,电子数码栏目还介绍了该行业生产经营方式及经营管理,关注电子数码发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解电子数码技术怎么管理的要点,是您电子数码致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://seotea.com/article/1442980.html