10-性能测试
10-性能测试
001-你了解你们项目的一个用户量吗?
这个问题一般可能是想看看你们的用户量,问下你们有没有做压力测试、性能测试的需求;这个如果你没有做过压力测试,就说一个大概的数字,不是很多。
002-响应时间不达标,怎么做?
1、具体问题具体分析
2、先排查网络问题
3、然后追踪数据流,监控数据流中各环境搭响应时间,定位性能问题,再优化
003-性能测试脚本中为什么要做参数化
参数化是将请求中的参数动态化,每次请求都使用不一样的参数,从而模拟了不同用 户使用不同数据来做业务请求 常用的
参数化方式有:随机数、随机字符串、时间戳、文件参数化、UUID 等
004-性能测试的分类?
验收性能测试(狭义) 、负载测试、压力测试、并发测试、配置测试、可靠性测试、失效恢复测试、大数据量测试、疲劳强度测试
005-如何在LoadRunner下让多个场景轮流执行?
为每个场景设置一个Group。
点击Edit Schedule->选择Schedule by Group->设置Start when group XXX finishes,就可以实现多个场景轮流执行。
006-你们这个项目性能的吞吐量是多少?
看项目,物业项目的说200左右
007-性能测试的流程是什么?
需求调研-环境搭建-脚本编写-准备数据-执行测试-回归调优-测试报告
008-如何设计性能测试场景?
基准测试,使用 1 个用户或者基准用户数,运行几分钟
单场景测试,并发用户逐渐递增到预估值情况下,运行 10 分钟。
混合场景测试,多种交易设置不同并发用户占比的情况下,运行 30 分钟。
稳定性测试,选择混合测试支持最大并发用户数的 80%,运行 12 小时
009-如何准备性能测试数据
a)调用业务接口构造数据,一般适用于数据逻辑比较复杂的情况下。
b)直接写 jdbc 代码造数据,一般适用于数据量较大且数据逻辑较简单的情况。
c)存储过程造数据,一般适用于数据量巨大且数据逻辑较简单的情况。
d)导入 sql,一般适用于数据安全级别较低且数据量巨大的情况。
010-客户交付一个性能测试项目,请阐述你的实施流程?
测试设计阶段:
1 )了解被测系统的性能 需求,定义测试目标和范围;
2)了解系统的技术信息,如系统架构等;
3)确定测试方案、进度安排,并制定测试计划 , 场景设置方案 , 及需要收集的测试数据;
4)同相关人员协商讨论测试方案;
5)准备数据收集模板;不同项目的性能测试,需要收集的数据不同;针对性的制定一个模板,更符合需要;
测试环境准备:
1)技术准备;选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集方案实现;如:如何监控系统资源等;
2)搭建测试环境; 3)创建初始数据;如虚拟用户使用的账号等;
测试执行阶段:
1)录制脚本;
2)调试脚本;
3)执行场景;
4)收集测试数据,并简单整理;
测试分析阶段:
1 )分析测试数据;提交测试报告。
011-负载测试、可靠性测试、可用性测试的定义,有什么区别
负载测试:负载测试是指在规定的时间内,以一定的系统负载,检测系统的性能和可靠性。它可以帮助开发人员确定系统的最大承载能力,并确定系统在不同负载水平下的表现情况。
可靠性测试:可靠性测试是指测试一个系统或产品在一定时间内的可靠性,它可以帮助开发人员确定产品在正常使用情况下的可靠性,并根据不同的使用情况确定系统的可靠性水平。
可用性测试:可用性测试是指测试系统或产品在特定条件下的可用性,它可以帮助开发人员确定系统的可用性,以及提供给用户的服务等级。
区别:负载测试主要针对系统的最大承载能力,可靠性测试主要针对产品在正常使用情况下的可靠性,可用性测试主要针对系统的可用性和提供给用户的服务等级。
012-压测时 tps 压不上去,可能有哪些方面的原因?
a) 压力机本身性能瓶颈
b) 网络 IO 瓶颈
c) 中间件(tomcat/nginx/mysql)连接数限制
b) 线程的阻塞、等待
e) 数据库性能问题
f) 本系统资源的瓶颈(cpu、内存、磁盘、网络等)
g) 其他外部系统响应时间过长,造成本系统的 time-wait
013-性能测试过程中如何对瓶颈进行分析?
针对不同的瓶颈采用不同的分析方法,一般分为:内存分析方法、处理器分析法、磁盘 I/O 分析方法、进程分析方法、网络分析方法等等。 1、内存分析方法:内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系 统性能表现。
2、处理器分析法:通过处理器性能计数器的值体现服务器整体处理器利用率,判断是否存在处 理器瓶颈。
3、磁盘 I/O 分析方法:通过磁盘 I/O 性能计数器的值体现服务器整体磁盘 I/O 使用情况,判断 是否存在处理器瓶颈。
4、 进程分析方法:通过进程性能指标数据,判断是否存在进程瓶颈。
5、网络分析方法:通过网络性能指标数据,判断是否存在网络瓶颈。
014-一般什么场景下会用到GT工具去监控
GT工具监控? 没有用过, 我用的GT是app的性能测试工具,不是监控工具。
015-日常工作中,sql性能优化,你是怎么做的?
首先获取到sql,
然后使用explain解析sql的执行过程,重点关注,性能差的表,
然后看表是否建了索引,sql是否正确使用了索引;
然后,看数据量,适当做些分页返回或提交;
然后,sql语句结构优化;
然后,读写分离或分表分区
016-请列举在进行性能测试之前我们应掌握的相关文档?
(1)用户需求规格说明及其相关文档;
(2)软件开发的前期数据;
(3)前期工作的详细资料(单元测试、集成测试、功能测试等的相关文档);
(4)在真正进入性能测试之前的软件数据的备份等;
(5)性能测试的测试大纲;
(6)性能测试的审批文稿及所签署的合同等。
017-性能测试中,分析响应慢的原因,如何排查?
1、观察服务器CPU,CPU消耗是怎么样的?频繁波动吗?上下文切换频繁吗? 2、当前测试时,网络带宽多少?网络吞吐量多少? 3、请求存在堆积现象吗? 4、gc垃圾回收机制正常吗?处理是否即时? 5、数据库sql连接数多少?多久释放?是否存在泄露?连接池中连接够用吗? 6、慢查询?数据库事务锁等待吗? ... ....
018-异步请求业务你是如何统计响应时间和TPS的
异步,是相对同步而言的,我们只要直接测试异步处理机制,就好了,此时的测试和同步是一模一样,响应时间、tps都能看的到
019-你的性能测试问题哪里来的?
1、查看请求的响应信息,重点是错误信息
2、查看性能测试过程,性能工具中的性能指标数据
3、性能测试各个环节的性能监控数据分析
020-系统安全性性能的指标
有效性:启动严格的安全性性能所花费的时间占启动整个系统所花费时间的比例。
生存性:当错误发生时,系统对紧急操作的支持,对错误的补救措施以及恢复到正常操作的能力,即系统的抗挫能力。
精确性:衡量系统安全性控制的精度指标,围绕所出现的错误数量、发生频率及其严重性判断。
反应时间:出错时系统响应速度的快慢,一个安全性较强的系统要具备快速的反应速度。
吞吐量:用户和服务请求的峰值和平均值。
021-简述LoadRunner 的工作原理?
loadrunner 会自动监控指定的 URL或应用程序所发出的请求及服务器返回的响应,它做为一个第三方( Agent )监视客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。
022-哪些功能需要做性能测试?
有监管、审查
涉及生命财产安全
大型新系统
核心功能、使用率最高
底层架构调整
预期业务量剧增
......
023-性能场景怎么设计?一般都有哪些性能场景??
一般基本的场景包括:基准测试、单交易测试、混合测试、稳定性测试
其他场景的可 选场景:高可用性测试、异常测试等,以及其他的结合各自项目业务的场景
024-你是怎么做性能测试的,流程是什么?
需求调研:了解性能需求和指标
测试方案:测试场景、并发、持续时间、测试数据等
环境搭建:有时候还需要自己搭建项目环境
脚本编写:使用Jmeter编写脚本
准备数据:需要提前造一些测试数据,一般通过调用接口来造
执行测试:执行Jmeter脚本,同时监控服务器性能,测试完成后收集下数据,我们领导会分析下数据
测试报告:最后汇总测试数据,出性能测试报告
025-说下LoadRunner进行测试的流程?
1、计划负载测试
2、创建虚拟用户脚本
3、创建运行场景
4、运行测试脚本
5、监视场景
6、分析测试的结果
026-你做性能测试的时候,一般用多少并发去压测?
我之前压测过几次,并发都不太高,我一般都是从10并发开始,每次压测5分钟,然后继续加并发,大 概压到100并发左右,tps大概在几百的样子,这样的数据已经能满足我们公司的需求了,后来就没有继 续往上压。
027-性能测试的分哪几种类别?请举例说明
性能测试类型包括一般性能测试、稳定性测试、负载测试、压力测试等
028-说说你对集合点的理解以及在项目中的应用
集合点是测试脚本中的一个标记,当每个虚拟用户执行到标记处时,会停留在标记处 等待其他的虚拟用户,当达到预期设置的并发数时,标记处的所有用户同时启动执行后续的 请求
集合点会产生瞬间高并发,但是也会降低平均压力。所以在压测过程中,如果有要求 瞬间高并发的业务,就需要使用集合点,比如抢购,秒杀之类的业务。
没有类似业务则不需要加集合点
lr_rendezvous(“集合点名称”),同步定时器
029-CPU使用率不达标,怎么做?
减少CPU数量,或继续增大请求压力
030-接口设置多少并发数?
并发数? 在我的理解中,并发数是设置不了的,没有一定的业务背景,性能测试靠一个并发数来确定,也是没有意义的。
我的性能测试,用的是并发用户数,持续运行一段时间,进行测试。 这个并发用户数的值,我先通过设计一个负载测试场景,找出这个并发用户数值,然后,再用这个值去做性能测试,持续一段时间,如果性能好,这段时间的总请求量会大一些,如果性能差,总请求量会低一些。
031-性能测试脚本需要配置哪些增强优化方式
首先,脚本要进行参数化,关联
然后,减少不必要的请求和元件
032-请你回答一下性能测试有哪些指标
性能测试常用指标:
从外部看,主要有 1、吞吐量:每秒钟系统能够处理的请求数,任务数 2、响应时间:服务处理一个请求或一个任务的耗时
3、错误率:一批请求中结果出错的请求所占比例
从服务器的角度看,性能测试关注CPU,内存,服务器负载,网络,磁盘IO
033-什么是性能测试、负载测试、压力测试?
性能测试(Performance Test):通常收集所有和测试有关的所有性能,被不同人在不同场合下进行使用。关注点:how much和how fast 负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。关注点:how much 压力测试(Stress Test):压力测试(又叫强度测试)也是一种性能测试,它在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。
034-说说性能测试中的并发用户数?
某一时刻同时向服务器发起请求的用户数
035-列举出5种以上服务器资源监控的命令或工具
top\vmstat\mpstat\pidstat\netstat\iostat\ss\sar
036-什么时候开始进行性能测试?
性能测试一般分前期阶段和后期阶段。 前期阶段是功能实现后还没有到系统集成时期。可以针对功能实现进行性能测试,看看单独功能实现的响应时间 后期阶段是指系统功能通过功能性测试完毕后,到整体的性能测试阶段。
037-什么是性能测试?性能测试主要包括什么内容?
是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试主要包括以下三个方面:
应用在客户端性能的测试,应用在网络上性能的测试和应用在服务器端性能的测试
038-性能测试使用的什么工具,是如何展开的?
我是使用JMeter来做性能测试的。
首先 找产品沟通哪些接口需要压测,需要达到什么样的预期值(TPS和响应时间),然后 编写测试计划,人员、时间周期、工具,接着去搭建性能测试环境(如果没有单独的性能测试环境,也可以用功能测试环境来压测),紧接着会对数据库,进行造数据。然后开始实战,我们用jmeter先保证接口能跑通、然后进行单接口压力测试、混合接口压力测试、稳定性测试。最后 进行性能结果分析,提交测试报告,以及等待开发性能调优,复测
039-性能测试包含哪些测试,在测试过程中需要监控os的哪些资源
负载,性能,压力,容量测试等。监控的指标比如 CPU 利用率, 内存使用率,磁盘IO使用率等等。
040-事务的4个特性
原子性、一致性、隔离性、持久性
041-性能测试怎么做的,压出来问题了吗?
编写好性能测试脚本,然后,设计负载测试场景,找出当前接口能支持的最大可接受并发用户数,然后用这个并发用户数设计性能测试场景,进行性能测试,监控性能测试过程,对性能测试的结果中的tps、响应时间、服务器资源利用率等数据进行综合查看和分析。
通过这些数据分析,发现过很多问题。
042-对TPC-DS是否有所了解
TPC-DS是数据库压测标准,在专门做数据库的研发公司使用比较广泛
043-使用jmeter做过性能测试吗
主要用jmeter来做接口测试,性能测试在项目中没有接触过,但是我自己在学习有关性能的知识。一是考虑到多点技术运用到工作中,可以提高效率,可以从更多的角度来保证质量,二是在测试领域,我也希望积累更多的专业技术。
044-常用的性能指标的名称与具体含义?
并发:所有用户在同一时刻对系统执行操作,一般指做同一件事情或操作。 在线:所有用户在一段时间内对系统执行操作。
请求响应时间:从 client 端发出请求到得到响应的整个时间; 包括: client 端响应时间 +网络响应时间 +Server 端响应时间。 事务请求响应时间:完成相应事务所用的时间;这个是性能测试中重点关注的指标。
TPS(Transaction Per Second ),每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。 TPS是 LoadRunner 中重要的性能参数指标。
点击率( Hit Per Second ):每秒发送的 HTTP请求的数量;点击率越大对 Server 的压力越大。 资源利用率:对不同资源的使用程度,如 CPU,I/O, 内存, ,
045-如何判断项目是否有网络瓶颈
首先,看请求的平均响应时间,
然后,看网络的监控数据
然后,通过吞吐率的数值与带宽进行比较
046-如何判断java应用程序内存泄漏?
首先看请求响应中的错误信息
然后,看服务的日志信息
然后,看服务的内存监控信息
047-你如何识别性能瓶颈?
1、看tps是否有连续报错,或是否出现连续下降的趋势
2、看响应时间曲线
3、看监控的服务器各项数据
048-如何确定最大可接受并发用户数?
通过逐步增加并发用户数的方式进行性能测试,观察性能测试的结果,在多少并发用户数前出现连续报错,或在多少并发用户数时的平均响应时间超过1.5s,或在多少并用户数时服务器资源利用率超过80%
049-做好性能测试工作的关键是什么?
包括以下几个方面: 1).评估系统的能力、 2).识别体系中的瓶颈、 3).系统调优、 4).验证稳定性(resiliencE.可靠性(reliability)
050-请详细说明软件可靠性测试中需注意的问题。
软件可靠性测试需要注意的问题主要有3点:
1.功能识别 软件可靠性测试首先考虑的是功能识别,确定系统所使用的功能。 功能识别的目标是:识别系统所确定的功能(依据系统功能说明书进行审核);识别系统功能所需的相关条件。
2.可靠性对时间的要求 软件可靠性对时间的要求是比较高的,测试时应将“运行时间”作为衡量可靠性的重要指标,所谓运行时间就是软件运行时应在“规定的时间”内完成所要完成的工作。对于时间的要求应根据系统性能说明书的要求进行审核。
3.可靠性对环境条件的要求 环境条件是指软件系统运行时所需的各种支持要素,主要表现为:硬件环境(服务器、路由器、交换机、防火墙、磁盘阵列)、网络操作系统、软件工具、应用系统的操作规程等。
051-性能在做自动化时,一般会遇到什么困难,要怎么解决?
性能测试在变为常态化后,可能会采用一些自动化的方式来执行性能测试,这个时候,哪些脚本要进行性能测试;执行的场景是哪些;执行时相互影响怎么处理;执行的结果怎么分析,怎么对比,这些就是比较难的问题了。
052-你如何设计负载?标准是什么?
通过逐步增加并发用户数调用接口的方式,找出当前系统环境配置下,最大可接受的并发用户数。
标准是: 1、没有出现连续报错;2、平均响应时间没有超过1.5s;3、服务器资源利用率监控数据,没有超过80%
053-怎么评估我们这次的需求需不需要做性能测试?
首先如果客户有要求,那么就按客户要求开展性能测试
其次如果是产品或开发要求做性能,那就开展性能测试
最后如果测试在体验生产环境过程中,觉得体验效果不佳,可以找产品申请做性能测试
054-请说明性能测试中响应时间和吞吐量的关系。
响应时间是提交请求和返回该请求的响应之间使用的时间。
示例包括:
(1)数据库查询花费的时间 将字符回显到终端上花费的时间 访问 Web 页面花费的时间
(2)吞吐量是对单位时间内完成的工作量的量度。
示例包括:
(1)每分钟的数据库事务
(2)每秒传送的文件千字节数
(3)每秒读或写的文件千字节数
(4)每分钟的 Web 服务器命中数
这些度量之间的关系很复杂。有时可能以响应时间为代价而得到较高的吞吐量,而有时候又要以吞吐量为代价得到较好的响应时间。在其他情况下,一个单独的更改可能对两者都有提高。可接受的性能基于合理的吞吐量与合理的响应时间相结合。"
055-请详细说明性能测试的目的。
性能测试主要是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈及问题,找到软件的可扩展点,优化软件,最后起到优化系统的目的。 性能测试的目的主要有以下几点: (1)评估系统的能力 性能测试主要考查系统的能力,它对系统的负荷和响应时间是相当重要的,也是验证系统能力的依据之一。
(2)识别体系中的弱点 性能测试考查系统受控的负荷还存在有哪些缺陷,并为解决这些缺陷提供路径。
(3)系统调优 性能测试的系统调优就是重复运行测试,验证系统的活动是否得到了预期的结果,从而改进系统性能。检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中隐含的问题或冲突。
(4)验证稳定性及可靠性 验证稳定性及可靠性是在一个生产负荷下,执行一定时间的测试,是评估系统稳定性和可靠性是否满足要求的唯一方法。
056-性能测试中,tps和qps的区别是什么?
QPS: Queries Per Second,顾名思义:“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS: 是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
TPS处理流程: Tps即每秒处理事务数,包括了 1、用户请求服务器 2、服务器自己的内部查询等处理 3、服务器返回给用户 这三个过程,每秒能够完成N个这三个过程,Tps也就是N;
QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS之中。每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准
一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
057-如何发现数据库的相关问题?
1、在性能测试过程中,如果http响应码有比较多且连续的5xx系列错误,基本可以断定,数据库有了性能瓶颈
2、在性能测试过程中,如果出现Too manay connection 这样的错误信息,也基本可以断定数据库有了性能瓶颈
058-如何分析性能测试结果?
首先,看并发用户数、响应时间、tps、资源利用率数据,通过这些数据,判断是否存在性能问题
然后,看测试结果中错误信息、服务日志
然后,反复调试,对比测试结果
059-如何识别性能瓶颈?
首先,看tps的变化趋势,如果出现连续的报错,就要进行性能分析,可能出现了瓶颈
再看平均响应时间,响应时间变得很长,可能出现了瓶颈
再看服务器的资源使用情况,如网络、cpu、内存、io等使用情况
然后再看服务和数据库的监控情况,如果出现明显的异常,则可能出现了瓶颈
060-什么是响应时间的2/5/10原则?
2s内最好的,5s可以接受,大于10s内不能接受
061-您认为性能测试工作的目的是什么?
目的:是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
062-请描述一下性能测试的常见类型和方法。
常见的性能测试类型包括负载测试、压力测试、容量测试和稳定性测试。负载测试用于模拟正常工作负载并观察系统在此负载下的表现。压力测试是在负载的上限情况下测试系统的性能。容量测试用于确定系统能够处理的最大负载。稳定性测试则是通过长时间运行测试以验证系统在持续负载下的表现。
063-什么是压力测试?
压力测试(Stress Test)也就是强度测试,压力测试是指模拟巨大的工作负荷来测试应用程序在峰值情况下如何执行操作。在实际的软硬件环境下,压力测试主要是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户访问时软件的抗压能力。其目的是找到系统在哪里失效以及如何失效的地方。
064-会做压力测试和安全测试吗?怎么做的?
压力测试:
jmeter; 具体产品--用户最常用的, 使用频率;峰值---- 压力测试; 负载测试--拐点,找到峰值;
压力测试; 关注点: TPS 响应时间 错误率 资源利用- CPU 内存
安全性测试:
1, 用户账号校验; 密码加密 ; 充值 体现 校验码;
- IP (MAC)--洪范攻击,恶意攻击 --黑名单 ;
065-如何定位应用线程死锁
1、通过jstack定位死锁信息
2、通过Arthas工具定位死锁
3、通过 Jvisualvm 定位死锁
066-如何确定最大并发用户数?
通过逐步增加并发用户数的方式,看,在什么时候,出现连续的报错、或服务异常、或服务器宕机、或服务器网络阻塞
067-解释5个常用的性能指标的名称与具体含义。
并发用户数: 模拟同时请求的人
平均响应时间: 一段时间内请求的响应时间的平均值
tps: 服务器每秒处理事务数
吞吐量: 网络每秒通过事务数
服务器资源利用率: 服务器各项资源的使用情况
068-负载测试 性能测试、压力测试的理解(区别)
1、负载测试:在一定的软硬件环境下,不段增加并发用户数,直到某项指标达到饱和状态,以检测服务器在不同负载情况下各项性能指标的情况,
2、压力测试:在一定的软硬件环境下,通过最大用户数测试系统的稳定性、可靠性,满足条件:足够的并发用户数+足够长的测试时间(7*24)
3、性能测试:性能测试是通过自动化测试工具模拟多种正常、峰值以及异常负载条件对系统各项指标进行的测试。
069-使用jmeter如何做接口之间的数据关联?
接口数据关联指的是上一个接口的某个返回值,作为下一个接口的请求参数。 如果上一个接口返回的是json格式的,可以用json提取器把数据保存到一个变量里,如果是其他格式 的,可以使用正则提取器保存数据。 那么在下一个接口中,直接使用${变量名}就能使用这个数据。
070-如何保证自动化测试的稳定性
a. 避免使用固定的数据,测试用例中使用老的测试数据,可能会被别人修改或删除。 所以每次跑脚本前,在脚本中构造新的数据,跑完脚本后,把数据清理掉。
b. 降低用例之间的耦合性,每个用例尽量都走完整的流程,不要依赖于其他用例,避 免其他用例执行失败,影响了后续的用例。
c. 提升依赖环境的稳定行,通常某些用例会依赖第三方系统的环境,如果第三方环境 不稳定,会造成用例执行的不稳定。可以采用 mock 的形式,屏蔽第三方环境,提 升环境稳定性。
d. 脚本的异常处理,在脚本中要多考虑可能出现的异常,尽量对每种异常都有对应的 处理方法,避免失败后程序退出
071-如何判断应用的最大处理能力
对应用中的主要的、核心的接口做负载测试,增加并发用户数到服务器出现连续报错、或服务器的资源利用率超过80%,此时的并发用户数,就是最大处理能力。
072-进行参数化的目的是什么?
在性能测试的过程中,我们要使用多用户并发,使用多用户进行性能测试时,如果使用同一个数据,那么,每次返回的结果都是可能相同,可能被缓存,从而导致不能准确反应服务器性能,如果使用不同的数据,那么被缓存的概率就会低很多,就能更加真实的反应服务器的性能,而要使用不同的数据,就需要对数据进行参数化,需要时,调用参数,获取数据。
073-性能测试,如何进行测试场景分析?
测试场景分析,有四种形式。
1、按聚合报告收集的RT响应时间和TPS的数据进行分析;
2、可以按图形化数据走向进行分析,使用jp@gc - Transactions per Second、jp@gc - Response Times Over Time、jp@gc - Hits per Second等插件,以及使用PerfMon + ServerAgent对服务器进行监控,查看图形进行分析;
3、使用命令形式,对服务器监控CPU、内存、网络、IO等指标。
4、搭建普罗米修斯等平台可以直接监控数据,输出报告。
074-性能测试怎么判断网络瓶颈?
1、看响应中的错误提示信息
2、观察网络监控展示的数据
3、通过网络命令,探测网络通信延迟情况
4、通过吞吐率和带宽数据,进行比较来确认
075-性能测试包含了哪些软件测试(至少举出3种)?
负载测试、性能测试、压力测试、稳定性测试、容量测试......
076-请列举性能测试的先决条件。
性能测试的先决条件包括:
(1)针对性能测试对象的技术要成熟;
(2)性能测试的测试环境要稳定;
(3)进行性能测试的准备要充分;
(4)性能测试的目标要明确;
(5)性能测试的计划要详细;
(6)性能测试的数据要精确以及要有代表性;
(7)性能测试的描述要精练。 满足了这些之后我们才能够进入测试阶段。
077-性能场景怎么设计?一般都有哪些性能场景?
一般基本的场景包括:
1> 单交易测试:单独测试每个接口,测出最高的tps
2> 混合测试:按照一定压力的比例,同时去测试多个接口,测出最高tps
3> 稳定性测试:长时间的去压测,检验接口是否稳定
078-请说明性能测试的主要分类,并简介之。
性能测试主要分为三类:
(1)应用在客户端性能的测试 应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。 (2)应用在网络上性能的测试 应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。
(3)应用在服务器端性能的测试 对于应用在服务器上性能的测试,可以采用工具监控,也可以使用系统本身的监控命令,例如Tuxedo中可以使用Top命令监控资源使用情况。实施测试的目的是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控。
079-性能测试主要做的哪一块,主要看那些指标、
主要对xx(登录或项目中核心功能)进行过性能测试,性能指标包括:并发量、响应时间、tps、吞吐量
080-常见的性能测试策略有哪些?
基准测试,并发测试,综合场景测试,场景测试,负载测试,疲劳测试,极限测 试,吞吐量测试,大数据量测试,内存泄漏测试等
081-简述Loadrunner的步骤
使用LoaderRunner进行性能测试的几个步骤:a、开发脚本(在Vugen中执行):涉及到,脚本的录制、参数化、事务的添加、检查点的设置、同步点的设置。loaderRunner脚本是符合c语言语法的。b、场景建立(在Controller中执行):加入脚本(如果脚本中有集合点,应该然集合点在这里生效)、用户设置。c、测试结果的分析。
082-软件性能测试的目的是什么?
软件性能测试的目的是为了对软件系统的性能情况给于评价,并发现可能存在的性能问题,例如服务端资源是否足够?能承受多大并发量?瓶颈值是多少? 响应时间是否超时?系统是否足够稳定?
083-性能测试考察的指标主要有哪些?
并发用户数、平均响应时间、吞吐量、吞吐率、TPS、服务器资源利用率
084-压测的时候,QPS一直上不去,你会怎么排查?
看被测服务器的性能,看是否资源被打满,导致请求无法连接 解决办法:被测服务器扩容。
看接口是否出现报错,以及响应时间是否变慢 解决办法:接口性能优化。
看压测机器的性能,是不是网络 IO 占满,并发数达不到 解决办法:多台压测机器并发。
看压测工具是否支持并发请求 解决办法:采用多线程或协程的方式去并发请求
085-什么是并发用户数?
并发用户数是指在某一给定时间内,某个特定点上执行请求的用户数。用来模拟真实用户调用接口请求,造成服务器压力。
086-你会从哪些方面判断CPU资源消耗是否有问题?
CPU的总使用率
系统的平均负载load average
CPU每秒的中断数量
CPU每秒的上下文切换数量
CPU的缓存命中率
087-你们项目最佳并发用户数是多少?
我们现在的功能很多,业务也比较复杂,日均访问量在百万级。我们做性能测试,也只是对一些重要的、核心的功能进行性能测试,并没有做到全部业务复购,在我做过的接口中,平均在一两百并发用户数的样子,每个接口各不相同。
088-多核的服务器,查看进程的CPU使用率,怎么会超过100%
进程列表中,显示的每个进程使用的CPU,当使用超过1个核的CPU时,就会出现超过100%,这在多核CPU的机器中是很正常的。
089-比较负载测试,容量测试和强度测试的区别
负载测试:在一定的工作负荷下,测试系统的负荷及响应时间
强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响
容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。
090-如何将jmeter响应结果保存到本地?
---保存成文件 --xml ; beanshell --- Java代码; 教程
091-资源不够怎么知道是服务器的原因?
服务器资源是否够用,可以通过监控数据来分析,这些监控,可以监控硬件、服务、中间件等等。
如果服务器是linux系统,常用的命令有top、vmstat、netstat、iostat、pidstat、mpstat、sar等等命令
092-性能测试中,一般都关注哪些指标?
TPS:每秒事务数,代表了性能的好坏,TPS 越高,性能越好
平均响应时间:请求的平均耗时,响应时间越短,性能越好
并发数:同时向服务端发起请求的虚拟用户数,在不同的工具里可以用多个进程/线程 来实现 错误率:失败的请求比例
吞吐量:网络上行和下行流量的总和,吞吐量是网络瓶颈定位的重要指标
093-怎么监控服务器资源使用情况?
服务器资源包括硬件资源、软件资源;监控当前比较流行的有监控工具和监控平台。
所以,监控服务器资源使用情况,可以根据自己需要监控的硬件、软件资源特性,以及自己对监控的熟悉度,和监控数据的使用,选择用监控工具或监控平台来实现。
094-性能测试中,TPS 比较低,可能是哪些方面的问题?
压力机本身性能瓶颈
网络 IO 瓶颈
中间件(tomcat/nginx/mysql)连接数限制
Java 线程的阻塞、等待
本系统资源的瓶颈(cpu、内存、磁盘、网络等)
其他外部系统响应时间过长,造成本系统的 time-wait
095-做性能测试,资源不够是为什么?
项目部署在机器上,提供能力输出时,需要进行计算,这些计算就需要消耗机器上的计算资源,请求量越多,理论上需要的计算资源就要越大,但是机器硬件资源有限,所以当请求量消耗的资源大于我们设定的资源利用率标准线时,就出现了资源不够用。
096-什么是系统瓶颈?
瓶颈主要是指整个软硬件构成的软件系统某一方面或者几个方面能力不能满足用户的特定业务要求,“特定”是指瓶颈会在某些条件下会出现,因为毕竟大多数系统在投入前。
严格的从技术角度讲,所有的系统都会有瓶颈,因为大多数系统的资源配置不是协调的,例如CPU使用率刚好达到100%时,内存也正好耗尽的系统不是很多见。因此我们讨论系统瓶颈要从应用的角度讨论:关键是看系统能否满足用户需求。在用户极限使用系统的情况下,系统的响应仍然正常,我们可以认为改系统没有瓶颈或者瓶颈不会影响用户工作。
因此我们测试系统瓶颈主要是实现下面两个目的:
-发现“表面”的瓶颈。主要是模拟用户的操作,找出用户极限使用系统时的瓶颈,然后解决瓶颈,这是性能测试的基本目标。
-发现潜在的瓶颈并解决,保证系统的长期稳定性。主要是考虑用户在将来扩展系统或者业务发生变化时,系统能够适应变化。满足用户目前需求的系统不是最好的,我们设计系统的目标是在保证系统整个软件生命周期能够不断适应用户的变化,或者通过简单扩展系统就可以适应新的变化。
097-请列举在进行性能测试之前我们应掌握的相关文档。
(1)用户需求规格说明及其相关文档;
(2)软件开发的前期数据;
(3)前期工作的详细资料(单元测试、集成测试、功能测试等的相关文档);
(4)在真正进入性能测试之前的软件数据的备份等;
(5)性能测试的测试大纲;
(6)性能测试的审批文稿及所签署的合同等。
098-简述性能测试的一般步骤和目的?
步骤一:性能测试与数据收集
步骤二:性能瓶颈分析
步骤三:性能调优解决方案
目的:
最终的目的是最大限度地满足用户需求、评价系统当前性能、预测系统未来性能、寻找瓶颈,优化性能。
099-有验证码或加密的功能,怎么做性能测试?
对于有验证码的,首先,要看是什么类型验证码,如果可以通过调用接口,获取验证码,关联来使用,这个就用接口关联,然后设计性能场景,进行性能测试;如果,不能简单调接口获得到验证码,哪最简单的方法就是找开发人员协助,使用万能验证码,然后再对接口进行性能测试。
如果接口中有参数需要加密,首先,看是否能从关联接口中获取,如果能获取到,就通过关联来解决;如果不能获取,哪就要和开发人员沟通,具体加密方式,然后,协助,写加密脚本生成加密信息。
100-现场测试一般要看服务器哪些性能指标吗
【吞吐量】 固定时间间隔内的处理完毕事务个数。通常是1秒内处理完毕的请求个数,单位:事务/秒(tps)。 【平均吞吐量】一段时间内吞吐量的平均值。无法体现吞吐量的瞬间变化。 【峰值吞吐量】一段时间内吞吐量的最大值。是用来评估系统容量的重要指标之一。 【最低吞吐量】一段时间内吞吐量的最小值。如果最小值接近0,说明系统有“卡”的现象。 【70%的吞吐量集中区间】通过统计15%和85%的吞吐量边界值,计算出70%的吞吐量集中区间。区间越集中,吞吐量越稳定。 【响应时间】一次事务的处理时间。通常指从一个请求发出,到服务器进行处理后返回,再到接收完毕应答数据的时间间隔,单位:毫秒。 【平均响应时间】 一段时间内响应时间的平均值。无法体现响应时间的波动情况。 【中间响应时间】一段时间内响应时间的中间值,50%响应时间,有一半的服务器响应时间低于该值而另一半高于该值。 【90%响应时间】一段时间内90%的事务响应时间比此数值要小。反应总体响应速度,和高于该值的10%超时率。是用来评估系统容量的重要指标之一。 【最小响应时间】响应时间的最小值。反映服务最快处理能力。 【最大响应时间】响应时间的最大值。反映服务器最慢处理能力。 【CPU占用率】1-CPU空闲率,表示CPU被使用情况,反映了系统资源利用情况
101-注册接口怎么做性能测试?
1、先写出脚本
2、然后,把脚本进行参数化(账户可以用随机生成方式,也可以事项准备大量账户)
3、然后,设计负载测试场景
4、执行负载测试,通过结果判断出最大可接受的并发用户数
5、然后,使用最大可接受并发用户数,设计性能测试场景
6、执行性能测试
7、对性能测试结果进行分析,判断是否达到预期性能目标,判断是否有性能瓶颈
8、满足性能目标,就可以编写性能测试报告,如果不满足就要进行问题定位与分析
102-在性能测试的过程中,如何评估压测瓶颈?
1、平均响应时间是否超过能接受的范围、
2、是否有连续报错、
3、tps的趋势是否出现下降、
4、服务器资源利用率是否超过接受范围
103-测试工具 LoadRunner 简介?
LoadRunner工具对应用程序进行压力测试,以隔离并标识潜在的客户端、网络和服务器瓶颈。通过 LoadRunner工具,可以在可控制的峰值负载条件下测试系统。要生成负载,LoadRunner工具 需要运行分布在网络中的数千个虚拟用户 (Vuser)。通过使用最少的硬件资源,这些 Vuser 提供一致的、可重复并可度量的负载,像实际用户一样使用您的应用程序。LoadRunner工具深入的报告和图可以提供评估应用程序性能所需的信息。
104-进程与线程的区别?
进程是资源分配最小单位,线程是程序执行的最小单位;每个进程内部会有N个线程,但至少要有1个线 程。
比如公司就是一个进程,公司的员工就是线程。 线程占用的资源要⽐进程少很多。 线程之间通信比进程更方便
105-性能测试的步骤有哪些?
分析性能需求、编写测试计划、创建测试脚本、运行测试脚本、分析性能结果、编写测试报告
106-性能测试中,十万个请求不同账号下怎么处理?
10万个不同用户的请求,相当于就是10万个用户并发。首先将这个接口调试做基准测试,通过之后,去数据库中造10万个用户数,然后对这个接口使用CSV做接口参数化处理,讲JMeter线程组调成10万个,然后执行并发。犹豫10万个用户数并发量过大,建议做分布式压测,减轻控制机压力。
107-压力测试怎么做,关注哪些?
首先 找产品沟通哪些接口需要压测,需要达到什么样的预期值(TPS和响应时间) 然后 编写测试计划,人员、时间周期、工具,接着去搭建性能测试环境(如果没有单独的性能测试环境,也可以用功能测试环境来压测),紧接着会对数据库,进行造数据。然后开始实战,我们用jmeter先保证接口能跑通、然后进行单接口压力测试、混合接口压力测试、稳定性测试 最后 进行性能结果分析,提交测试报告,以及等待开发性能调优,复测。
1、并发用户数:同一时间执行请求的人,用来模拟真实用户调用接口请求,造成服务器压力。 2、RT:响应时间(rt)从发起请求,到接口响应,到页面渲染 3、TPS:服务器每秒完成事务数。------ 事务数:服务器每秒处理能力的性能指标值 4、QPS:每秒查询接口数 5、RPS:每秒请求数,由用户发起的请求数
108-查看进程的命令ps,常用参数有哪些
ps 的参数非常多, 常用参数如下: -A 列出所有的进程 -w 显示加宽可以显示较多的资讯 -au 显示较详细的资讯 -aux 显示所有包含其他使用者的行程
109-一个进程的CPU消耗超过150%正常吗
是可能出现的,现在服务器一般都是多核,是会出现一个进程使用超过1个核的CPU
110-性能测试监控工具nmon安装及使用方法?
在使用nmon对linux服务器进行资源监控前,我们需要查看linux的版本,然后下载支持对应版本的nmon软件,然后,在linux服务器上解压软件包,即可使用。
nmon有三种运行模式,屏幕交互模式,数据收集模式和定时任务模式,日常性能测试时,监控服务器资源使用情况,常用数据收集模式,如./nmon_x86_64_centos7 -f -s3 -c10 就会每隔3秒收集一次,收集10次,将结果标准输出到一个机器名_年月日_时分的nmon文件中。
111-服务器的配置是怎样的?
最近几年我们性能测试用的服务器一般都是云服务器集群,不再是单机,这个配置有高有低,与生产环境服务器的硬件配置是一致的,但是,数量没有生产多。
112-一个标准的性能调优过程是是什么?
(1)确定基准环境、基准负载和基准性能指标;
(2)调整系统运行环境和实现方法,执行测试。(包括硬件环境的调优、Weblogic调优、Oracle调优);
(3)记录测试结果、进行分析。
113-性能测试工作的完整过程,目的,最关键的是什么
性能测试的概念---在正常,峰值以及异常负载条件下,测试系统的各项性能指标;通过自动化的测试工具模拟进行。 性能测试主要是测试软件运行中的各项指标是否符合需求;压力测试是性能测试的重点,压力测试是通过工具产生并运行并发事务来模拟软件系统的实际运行状态,从而获得各种性能指标。
性能测试的目的: 1) 评估系统的能力----测试中得到的负荷和响应时间数据可被用于验证所计划的模型的能力,并帮助作出决策。 2) 识别体系中的弱点----受控的负荷被增加到一个极端水平,并突破它,从而修复体系的瓶颈或薄弱的地方。 3) 系统调优---重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。检测软件中的问题,长时间的测试执行可导致程序发生由于内存泄漏引起的失败,揭示程序中的隐含问题或冲突。 4) 验证稳定性,可靠性---在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
最关键指标:
TPS 每秒事务数
RT 响应时间
114-怎么保障工具端的性能
在执行性能测试时,禁用所有监听器;
脚本中,能不写断言的,不写;
不写逻辑复杂的脚本;
能少用元件,就少用;不用beanshell元件;
不用定时器元件;
115-监控docker容器资源消耗的命令是什么
docker status docker status 容器名称或容器id
116-你有没有做过与性能测试相关的项目
我们的项目对性能要求不是特别高,但是我有做过一些简单的压力和结果分析。我们用的是JMeter这个工具,一般要求压测到300~500左右(这个数据根据项目而定)并发用户,然后分析测试报告是否正常,各项指标(比如响应时间,CPU,内存等)是否正常
117-如何用jmeter测并发?
最简单直接的一个并发就是线程组里加线程数就好了。
118-如何使用 Jmeter 做 HTTP 性能测试
(1)压测脚本准备:基本信息、参数化、关联、断言、聚合报告
(2)压测执行:依据需求确定压测场景,单交易并发测试、混合交易负载测试、稳定 性测试,线程组下设置并发数、压测时长或者迭代次数
(3)压测结果查看对比:聚合报告中查看响应时间、错误率、吞吐量等指标来分析性 能
119-性能测试指标有哪些?
并发用户数、平均响应时间、吞吐量、吞吐率、TPS、服务器资源利用率......
120-请问 做好性能测试工作的关键是什么?
包括以下几个方面:
1)评估系统的能力
2)识别体系中的瓶颈
3)系统调优
4)验证稳定性(resiliencE.可靠性(reliability)
121-如何实现200用户的并发?
这首先要看使用什么性能测试工具,不同的工具的做法不一样。
如果用的是jmeter,哪就改下【线程组】中的“线程数”, 然后,勾选循环次数“永远”复选框,再勾选,调度器的复选框,填写一个“持续运行时长”的时间数值。
122-性能测试中的思考时间应该怎么用
对于交互系统来说,用户在向服务器发送一个请求后,会等待一段时间后再发送下一个 请求。 在性能测试过程中,使用思考时间来描述这段时间。 一般思考时间是在一定时间范围内随机变化的,例如 1 至 3 秒之间随机变化。 在 LoadRunner 中主要通过 lr_think_time 函数+RTS 模拟随机思考时间, 在 jmeter 中通过高斯随机定时器来模拟随机思考时间。 思考时间的应用场景一般是构造测试数据接口、混合压测场景、稳定性压测场景
123-做没做性能测试
依据自己掌握程度来说,没学过就说没有,全程班学生可说: 有对xx(登录或项目中核心功能)进行过性能测试,用jmeter整理脚本,设置线程数为500,持续时间10分钟,然后加聚合报告;查看结果,错误率情况;输出测试报告,这样的一个过程
124-压力测试软件ab还是siege好用
压力测试如果用ab 和siege 都不太合适,因为他们都是针对的网络数据包,并不是实实在在的请求,结果会不准确,也不建议用。如果要做专业的压力测试,建议用loadrunner,如果是小批量的压力测试,可以用Jmeter
125-什么情况下要做关联,关联怎么做的?
关联,是某个接口的参数值,依赖前置的接口的动态值,那么,此时,这两个接口之间有关联关系
需要,先调前面的接口,然后从接口返回信息中,提取出预期的动态值,给一个自定义变量接收,然后,在后续接口中,引用自定义的变量名,作为接口中某个参数的传入值。
126-在给定的测试环境下进行性能测试,如何设计性能场景?
对于一个新需求的性能测试,我们一般需要先做负载测试场景,然后做性能测试场景。待多个接口都做完之后,再做业务的负载测试场景和性能测试场景,最后再设计混合场景。
127-性能测试用什么工具
jmeter
128-使用什么命令可以让jmeter在Linux后台执行
jmeter-server
jmeter.sh -n xxxxxxx &
129-性能测试怎么做的?
需求分析 > 搭建环境 > 编写脚本 > 执行测试 > 编写报告或定位分析问题
执行测试阶段,先做负载测试,然后再做性能测试
130-你们性能测试做的是前台还是后台?
我们主要做的是后台,通过调用接口来实现性能测试,前台的也做,只是相对比较少。
131-性能测试考察的测试指标主要有哪些?
**1、点击率(hit):**每秒的页面点击数。客户端每秒向服务端提交的请求数,在性能测试中,一般不测静态请求(如Js、css、图片文件等),静态请求走缓存,不需要服务器处理。所以hit通常是指动态请求。
**2、并发用户数:**在真实的用户操作中,用户的每个相邻操作之间都会有一定的间隔时间(称之为用户思考时间),所以并发用户分为绝对并发和相对并发。单就性能指标而言,系统的并发用户数是指系统可以同时承载的、正常使用系统功能的用户总数量。
**3、响应时间RT:**事务处理的响应时间。请求或者某个操作从发出的时间到收到服务器响应的时间的差值
**4、TPS/吞吐量:**每秒处理的事务数。系统在单位时间内处理客户端请求的数量
**5、QPS:**每秒查询率。对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,不考虑外界因素
132-性能测试loadrunner、jmeter以及locust各自的优缺点
loadrunner,是传统的性能测试软件的标杆,它可以使用线程或进程两种方式模拟并发用户数,他支持C语言、java语言、以及.net语言编写脚本,它是商业软件,免费版本,只支持50个并发用户数,超过了就需要付高额费用购买,并发用户数
jmeter,是现在企业中流行的性能测试工具,他用线程来模拟并发用户数,他可以不用任何程序语言编写脚本,也支持java、python、groovy、jyphon、js语言编写脚,它是免费开源的,理论上可以支持无限量并发用户数
locust,是python语言中的一个性能测试库,它使用协作程方式模拟并发用户数,它只能使用python语言编写脚本,没有语言基础,无法使用该库,它是免费开源的,理论上也可以支持无限量并发用户数
133-列举进行配置测试工作前和工作后所需的相关文档。
1.工作开始前所需的文档 配置测试进行前需要以下文档资料:测试计划;需要进行的测试列表 ;被测程序源码;配置测试软硬件设备清单;配置测试用例。
2.工作结束后递交的文档 配置测试结束后需要递交以下文档资料:配置测试报告;配置测试总结报告。
134-客户端性能测试的主要内容是什么?
并发性能测试:其过程是一个负载测试和压力测试的过程即逐渐增加负载直到系统的瓶颈或者不能能够接受的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
疲劳强度测试:是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程
大数据量测试:针对大数据量的独立数据量测试与综合数据量测试 速度测试:针对有速度要求的业务进行手工测速度
135-怎么根据线下环境评估线上环境的性能
首先线下必须要有专门的性能测试环境
线下环境单台机器配置和线上不能相差很大,可以通过单台的机器性能推算出多台机 器性能
如果线下机器配置很差,只能测试出程序有无性能问题,这样线下测试出来的数据对 线上没有太大参考意义
如果想获取比较准确的线上性能情况,建议最好做线上的性能测试
136-吞吐量和响应时间的关系。
吞吐量 吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标
响应时间RT(Response-time) 响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间
吞吐量图表显示的是Vuser每秒从服务器收到的以字节为单位的数据量。当我们比较它和事务响应时间,我们会发现,若吞吐量下降,响应时间也会下降。同样,高峰时期的吞吐量和最高的响应时间大约在同一个时间。
137-做性能测试时,服务器返回码为500
服务器返回500,这要看是在一开始就出现的,还是一段时间之后出现的,如果一开始就出现,那说明项目没有正常运行,如果是在运行一段时间之后出现的,说明,超过了系统最大处理能力,与数据库有关联的地方,可能有了问题。
138-简述压力测试与性能测试的联系与区别。
压力测试是用来保证产品发布后系统能否满足用户需求,关注的重点是系统整体;
性能测试可以发生在各个测试阶段,即使是在单元层,一个单独模块的性能也可以进行评估。
压力测试是通过确定一个系统的瓶颈,来获得系统能提供的最大服务级别的测试。
性能测试是检测系统在一定负荷下的表现,是正常能力的表现;而压力测试是极端情况下的系统能力的表现。
139-请问什么是性能测试、负载测试、压力测试?
性能测试是指用工具,找出或获得系统在不同工况下的性能指标值的测试
负载测试是通过逐步增加并发用户数,看系统性能的变化,并最终确定系统所能承受的最大负载量的区间
压力测试是在一定的性能压力下持续运行一个比较长的时间,看系统服务和各项资源使用情况,看系统的稳定性
140-性能测试常见的指标有哪些?
a) tps:每秒事务量,代表了系统的处理能力,tps 越高,性能越好
b) 响应时间:从发出请求到接受到系统响应数据所花费的时间,响应时间越短,性能 越好
c) 吞吐量:网络上行和下行流量的总和,吞吐量是网络瓶颈定位的重要指标
d) 错误率:在压测过程中系统出现错误的比例
e) 操作系统:CPU、内存、网络、磁盘
141-性能测试常用哪些工具
jmeter、loadruner、locust、ngrinder、wrk、ab
142-连接不上服务器?
首先,确认网络是否通的,先可以用ping服务器ip看一下,如果能ping通,说明网络是通的
然后,使用telnet命令,看服务器与服务是否正常。
能ping通服务器,但是telent不通服务,说明项目异常或没有启动;
能ping通服务器,也能telnet通服务,但是连不上服务,可能是网络丢包,看是否网络延迟或丢包,或服务是否正常
不能ping通服务器,但,telnet通服务,但又有连不上服务,可能是网络丢包,看是否网络延迟或丢包,或服务是否正常
不能ping通服务器,也telnet不通服务,说明项目异常,或没有启动。
143-介绍你熟悉的性能测试工具
1、JMeter,在企业中应用广泛,且能进行分布式性能测试,使用Java语言开发,开源
2、LoadRunner,一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题
3、Apache Benchmark,Apache 服务器内置的一个 http web 压测工具,非常简单易用;可以快速通过命令测试一个页面或API的性能
4、k6,一款使用 go 语言编写,支持用户编写测试脚本的测试套件。弥补了 ab 测试功能不足,以及 jemeter 不容易代码化的缺点
144-一般在哪个节点做性能测试?
性能测试,一般都是在性能测试环境中执行。当开发把接口开发完成,接口测试通过,就可以着手准备接口的性能测试。
145-性能测试,一般都关注哪些指标?
TPS:每秒事务数,代表了性能的好坏,TPS越高,性能越好
RT平均响应时间:请求的平均耗时,响应时间越短,性能越好 并发数:
同时向服务端发起请求的虚拟用户数,在不同的工具里可以用多个进程/线程来实现 错误率:失败的请求比例
146-例如100个用户同时登陆,你如何进行测试的
1、先在本地创建txt文件,录入100组用户名和密码(逗号分隔),将用户名和密码参数化 2、Jmeter中创建线程组,100个用户并发,1秒内执行,循环一次 3、创建http请求,填入登录接口参数信息 4、创建CSV data set config,引用本地txt文件 5、创建synchronizing timer 同步定时器,设置100个用户,1秒并发
147-简述性能测试的步骤。
性能测试准备,在这个阶段主要做需求分析,明确要性能测试的目标值以及编写测试模型,制定测试计划,了解产品的架构
搭建性能测试,环境性能测试需要独立搭建性能测试的环境,包括网络环境,应用服务器环境以及监控环境
性能脚本开发,根据不同的协议选择对应的工具编写脚本,并对脚本进行性能转化与调试验证
性能测试执行,根据设计的性能场景,运行性能测试,并通过性能监控进行初步性能分析
性能结果分析与调优,根据性能执行的结果以及监控图表数据,对性能的指标值以及图表进行数据分析,判断是否有性能瓶颈,然后再定位性能瓶颈与调优
最后,编写性能测试报告和结果的跟踪,因为性能分析与调优的问题,并不能短时间内解决,可能需要比较长的时间,所以需要编写测试报告以及对性能结果行后续跟踪
