发动态

没有新消息

更多内容

霍格沃兹测试开发 北京/河北科技大学
软件测试 | 性能测试关注哪些指标? 问题 在工作中,使用JMeter做压力测试时,需要关注其中的哪些指标? 性能测试关注哪些指标? 考察点 面试官想了解: 是否用过 JMeter 指标进行分析 技术点 涉及的技术点: JMeter 结果分析 回答 性能指标由 压测结果指标 和 服务器指标 两部分说明。 压测结果指标 主要是根据JMeter生成的压测报告而言,则需要关注:吞吐量、请求的响应时间以及请求的错误率。 吞吐量 每秒钟系统能够处理的请求数。 在系统压测过程中,会达到系统的一个最高值,此时如果继续加压,对应系统的吞吐量不会增高反而会下降。因为,虽然并发数在增加,但是系统已经超负荷工作,无法满足新的并发需求。 请求的响应时间 服务处理一个请求并获取它响应的时间。 获取请求的响应时间,应从请求的平均值、90%请求、99%请求等多个角度统计,而不仅仅是根据平均值来进行判断。 请求的错误率 压测并发脚本中出错的请求所占比例。 请求对错误率需要看具体是外部原因还是服务本身原因导致。外部原因比如网络超时等;服务本身由于逻辑或多线程处理问题导致。 服务器指标 服务器指标主要指的是服务器相关指标,比如:CPU、内存、网络、服务器负载 等等。 在进行性能测试时,不能只关注一方面的指标,需要压测结果指标 和 服务器指标两方面结合来判断出系统的问题所在,给出最终压测结果报告。

805阅读

4赞

评论

0 条评论

暂无评论,快来写下您的评论

推荐阅读

软件测试 | 压测-JMeter聚合报告包括哪些内容? 问题 在工作中,使用JMeter做过压力测试吗? 对 JMeter 聚合报告熟悉吗? 介绍一下 JMeter 聚合报告包括哪些内容? 考察点 面试官想了解: 是否用过JMeter 对JMeter组建是否熟悉 是否用过 JMeter 聚合报告 技术点 涉及的技术点: JMeter 报告组件 回答 聚合报告是在做性能压测经常会使用的一个监听器,对应该监听器中每个参数需要了解它具体代表的指标含义: 1 2690×462 27.8 KB Label 显示的是JMeter中压测脚本中请求的名称 #样本 代表的是请求数。具体数字标明这一次压测脚本运行时一共发出的请求个数。 比如,模拟10个用户,每个用户对应并发10次,则样本数为100 平均值 平均响应时间。默认情况下是单个 Request 的平均响应时间 中位数 就是 50% 并发的用户响应时间 90% 百分位 90% 用户的响应时间 最小值 最小响应时间 最大值 最大响应时间 异常% 也就是请求的错误率。计算公式为:错误请求数/请求总数 吞吐量 默认情况下表示每秒完成的请求数 接收KB/Sec 每秒从服务器端接收到的数据量 以上就是对应聚合报告中参数指标以及含义。 一般,在性能测试中需要重点关注的参数:样本请求数,平均响应时间,最小值,最大值,异常及吞吐量。

495阅读
6赞
2评论

可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。 一句话:增加了服务器对客户端请求的吞吐量(实际生产上我们用的比较少,如果并发请求量很大的情况下,我们会通过nginx把请求负载到集群服务的各个节点上来分摊请求压力,当然还可以通过消息队列来做请求的缓冲)。

1610阅读
0赞
0评论

两者的使用场景不同,异步请求用来解决并发请求对服务器造成的压力,从而提高对请求的吞吐量;而异步调用是用来做一些非主线流程且不需要实时计算和响应的任务,比如同步日志到kafka中做日志分析等。

831阅读
2赞
0评论

假如当请求一个包含 10 张图片的 HTML Web 页面,与挨个连接相比,用持久连接可以让请求更快结束。 而管线化技术则比持久连接还要快。请求数越多,时间差就越明显。客户端需要请求这十个资源。以前的做法是,在同一个TCP连接里面,先发送A请求,然后等待服务器做出回应,收到后再发出B请求,以此类推,而管道机制则是允许浏览器同时发出这十个请求,但是服务器还是按照顺序,先回应A请求,完成后再回应B请求。 于是在使用持久连接的情况下,某个连接上消息的传递类似于 请求1->响应1->请求2->响应2->请求3->响应3 管线化方式发送变成了类似这样: 请求1->请求2->请求3->响应1->响应2->响应3

1359阅读
3赞
0评论

软件测试 | 如何开展性能测试?性能测试的流程是什么样子? 一个公司在业务初期可能不太重视对应的性能要求,当用户量上来,并发数增多对应服务器扩容无法按倍数扩容时,领导可能会强推要求进行产品的性能测试。 应该如何开展进行性能测试呢?首先要知道对应的流程及其规范,从大的方向了解再具体细说每个小的阶段。在这里给大家把性能测试的流程大概分为以下几个阶段,分别是【需求调研】→【测试准备】→【测试执行】→【测试报告】。 需求调研阶段 首先,来看一下对应的需求调研阶段。一个产品会有多条业务线及其复杂的后端调用的交互。所以,在做性能测试之前,需要把对应的业务进行明确,并且分析该业务需求。最好能画出对应的业务流程图及后端的调用链路图,这样在测试准备阶段大大节省我们编写压测脚本的时间。 在需求调研阶段还需要确定对应的性能测试范围,有可能当前的业务有多个请求调用,但是在性能测试时肯定是对某几种场景或链路进行特定的压测。根据压测业务需求来确定对应的压测请求。 在需求分析阶段需要明确当前项目的压测需求,对应的链路调用模型及定制压测计划。 在压测计划文档中需要明确列出该项目的测试范围、投入的人力、持续的时间及对应的工作内容等等。 需求调研是由性能测试工程师负责,对应的该业务的产品、研发、DBA及运维工程师配合完成。 需要了解该需求的系统线上环境的性能需求,比如:服务器信息「线上环境硬件、参数配置、部署方式、关联系统部署等」、业务流程模型、业务技术架构模型等。 根据需求调研的信息,将性能需求转换为具体的性能需求指标值; 根据测试环境与线上环境的差异分析,将线上环境条件下的性能需求指标值转换为测试环境条件下的性能需求指标值; 经过以上分析后汇总为压测指标,写入压测计划中。 测试准备 测试准备阶段,是压测中重要的阶段。在准备压测开始之前,需要把压测环境准备好、压测过程中所需要使用到的压测数据准备好,以及对应的压测过程中需要用到的测试数据也准备好。准备好后,就可以根据对应的场景进行压测脚本的开发。 准备测试环境,包括被压测的服务器与负载机两部分。服务器是被测系统的运行平台,负载机是用来产生负载的机器,运行压测脚本。 准备测试数据,根据数据模型来准备被测系统相关的业务数据,其中包括保证业务能正常调用的基础数据及运行压测相关业务需要使用到的前置数据,比如订单,订单在出库之前需要有相对应的订单数据及库存数据,这些也是业务数据。 开发脚本,可以录制脚本也可以直接编写性能脚本,在开发脚本时,如果业务需要调用第三方此时需要开发对应的挡板程序,如果业务需要相关的加解密需要开发对应功能插件。 测试执行 测试执行主要是根据压测脚本获取服务器处理能力的相关指标,并发现对应性能测试缺陷。测试执行阶段需要使用各类监控工具,等执行结束后进行压测结果的统一收集。收集到的结果进行对应的数据分析,分析指标后判断当前压测是否通过,一般根据响应时间、吞吐量、事务成功率、硬件指标、稳定性、内存有无泄漏、其他(数据库、中间件、缓存、JVM)等等进行衡量性能指标。 如果符合对应指标则进行压测报告的编写,如果不符合对应指标需要相关系统进行调优,调优完成后再次进行脚本执行测试,收集指标进行再次确认。 测试报告 测试报告是性能测试的重要交付件,是对测试结果进行报告,主要包括常见的性能指标的说明及在压测过程中发现的问题等等。

508阅读
6赞
1评论

100万用户在高峰期的时候,每秒请求有5000个请求左右,将这5000请求写入MQ里面,系统A每秒最多只能处理2000请求,因为MySQL每秒只能处理2000个请求。系统A从MQ中慢慢拉取请求,每秒就拉取2000个请求,不要超过自己每秒能处理的请求数量即可。MQ,每秒5000个请求进来,结果只有2000个请求出去,所以在秒杀期间(将近一小时)可能会有几十万或者几百万的请求积压在MQ中。

1306阅读
1赞
1评论

《软件测试/性能测试面试题分享》 1、做性能测试,你需要关注哪些指标? 1. 从用户角度出发响应时间 2. 站在管理员的角度考虑需要关注的性能点 响应时间 服务器资源使况是否合理 应用服务器和数据库资源使用是否合理 系统能否实现扩展 系统最多支持多少用户访问、系统最大业务处理量是多少 系统性能可能存在的瓶颈在哪里 更换那些设备可以提高性能 系统能否支持7×24小时的业务访问 3. 站在开发(设计)人员角度去考虑 架构设计是否合理 数据库设计是否合理 代码是否存在性能方面的问题 系统中是否有不合理的内存使用方式 系统中是否存在不合理的线程同步方式 系统中是否存在不合理的资源竞争 4.站在测试工程师角度考虑 连接超时 崩溃 系统交互 弱网下的运行情况 CPU使用问题 2、java语言的服务性能测试的时候,用什么命令打印线程栈信息? jstack 3、性能测试指标包括哪些 最大并发用户数,HPS(点击率)、事务响应时间、每秒事务数、每秒点击量、吞吐量、CPU使用率、物理内存使用、网络流量使用等。 前端需主要关注的点是: 响应时间:用户从客户端发出请求,并得到响应,以及展示出来的整个过程的时间。 加载速度:通俗的理解为页面内容显示的快慢。 流量:所消耗的网络流量。 后端需主要关注的是: 响应时间:接口从请求到响应、返回的时间。 并发用户数:同一时间点请求服务器的用户数,支持的最大并发数。 内存占用:也就是内存开销。 吞吐量(TPS):Transaction Per Second, 每秒事务数。在没有遇到性能瓶颈时:TPS=并发用户数*事务数/响应时间。 错误率:失败的事务数/事务总数。 资源使用率:CPU占用率、内存使用率、磁盘I/O、网络I/O。 从性能测试分析度量的度角来看,主要可以从如下几个大的维度来收集考察性能指标: 系统性能指标、资源性能指标、稳定性指标 4、如果一个需求没有明确的性能指标,要如何开始进行性能测试? 先输出业务数据,如pv、pu、时间段等,计算出大概的值,然后不断加压测到峰值 5、介绍JMeter聚合报告包括哪些内容 请求名、线程数、响应时间(50 95 99 最小 最大)错误率、吞吐量 6、如果有一个页面特别卡顿,设想一下可能的原因 后台:接口返回数据慢,查询性能等各种问题 前端:使用chrome工具调试,判断js执行久或是其他问题 网络问题 7、说一说项目中的实际测试内容 根据自己项目中的经验实话实说,有没有经验很容易露馅 8、介绍一下JMeter进行性能测试的过程 9、介绍一下JMeter和LoadRunner的区别

277阅读
3赞
0评论

将请求拦截在系统上游,降低下游压力:秒杀系统特点是并发量极大,但实际秒杀成功的请求数量却很少,所以如果不在前端拦截很可能造成数据库读写锁冲突,最终请求超时。

864阅读
4赞
0评论