Jmeter性能测试面试题个人见解

article/2025/9/29 3:19:09

一、请说明你用Jmeter做性能测试的整体过程

不管用什么工具做性能测试,流程都 是一样的,仅是编写脚本的工具不同

主要分为五个阶段

1、性能需求调研

进行需求调研与分析,输出性能测试需求表和性能测试计划。需求的来源分为几种:

1)产品经理或客户方直接提出,类似单位时间内的访问量达到多少、业务响应时间不超过多少、业务成功率不低于多少、硬件资源消耗应该在一个合理的范围内等,性能指标,给出如下的性能要求:

2)根据用户操作行为大数据来分析

  • 用户用户频繁使用,且存在大量用户频繁使用的业务流程;比如说一个电影管理平台,排片、售票,卖品出入库、销售等业务的使用就很频繁。

  • 交易占比高,日常占比在80%以上甚至更高的业务流程;比如说一个物流系统,则收货发货的业务流程就是占比最高的。

  • 特殊交易日或峰值交易占比80%以上甚至更高的业务流程;例如购物网站平时的负载集中在晚上,但是双11,618等特殊日子,访问量和交易量会有集中爆发期。

  • 性能较差且做过调整的业务流程;比如说如果一个批量下单的模块,曾经因为性能问题调整过多次的,那它仍然可能会继续出问题。

  • 一些特定的业务场景;比如说报表导出数据量很大,又很频繁操作的功能。

3)参考其他同行类似项目的数据。

2、性能测试准备

1)制定测试方案、编写性能测试用例。

2)使用Jmeter编写性能压测的脚本,先从单接口场景调试好脚本,然后设计对应的性能测试场景,先写在性能测试方案里。

3)准备性能测试数据,比如说如果要测试10万个用户登录的场景,则需要事先准备10个有效的用户信息,可以通过跑注册脚本、直接上生产库上获取等方式,准备好CSV或txt等格式的数据。

3、用例执行

参照性能测试方案和性能测试用例里的场景设计,执行测试用例,记录性能测试结果,做好性能测试的监控,对测试结果进行分析,输出性能测试的执行日志。

4、编写测试报告

编写性能测试报告,包含测试背景、目标、方法、压测指标本次测试结口、场景用例、测试结果,出现的缺陷和问题,结果分析和性能测试的结论,输出性能测试分析报告。例如下图是一个影票销售系统的卖品业务的性能测试结果,需要包含各个性能指标和最终结论。

大型项目的性能测试往往是由多个项目组协同测试,各自报告所负责业务的测试结果,可以在线上共同协作文档上同时提交自己的测试报告。

5、测试总结

对本次压测过程进行总结和复盘。比如说压测过程中是否遇到什么阻碍,如何解决的,测试服务器与生产服务器是否有差异,测试结果的参考实用性如何,是否还有什么风险,对以后的性能测试是否还有建议等。

二、做性能测试时如何减少JMeter的资源需求

做性能测试,使用的工具本身也会消耗一定的系统资源,为了尽量减少对测试结果的影响,在用Jmeter做性能测试时,需要做一些措施

1、使用非GUI模式进行测试,例如jmeter -n -t test.jmx -l test.jtl

2、使用尽可能少的监听器,最好不要在负载测试期间使用“查看结果树”或“在表中查看结果”监听器(调试脚本的时候用,调试完停用,如果压测过程中出错,可以重新打开查看结果树,但是勾选“仅错误日志”)

3、测试计划的“函数测试模式”不要勾选上,它是“只有当你需要记录每个请求从服务器取得的数据文件时才需要选择函数测试模式”,如果勾选了就会占用很多资源。

4、只做必要的断言,做接口自动化时会各个用例都写上断言,但是性能测试最好只在很有必要的地方做断言。

三、请你随意讲几个Jmeter聚合报告里的参数分别代表什么?

Jmeter脚本添加聚合报告监听器,执行性能测试后生成聚合报告,主要生成“响应时间”、“吞吐量”、“错误率”、“带宽”等数据,这些也正是代表所测试服务器性能的数据。

A、基本信息

1、Label:请求的名称,就是脚本中Sampler的名称。

  2、#Samples(样本):总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10 =100次。

B、响应时间

执行一个操作所需要的时间,包括从发出请求开始到最后收到响应所需要的时间。响应时间的计算要考虑到用户的数目,用户数目越多,响应时间必须越快。

  3、Average(平均值):默认情况下是单个Request的平均响应时间,当使用了Transaction Controller(事务控制器) 时,也可以用Transaction的时间,来显示平均响应时间 ,单位是毫秒。

  4、Median(中位数):50%用户的响应时间小于该值。

  5、90% Line(90% 百分位):90%用户的响应时间小于该值。

  6、95% Line(95% 百分位):95%用户的响应时间小于该值。

  7、99% Line(99% 百分位):99%用户的响应时间小于该值。

  8、Min(最小值):最小的响应时间。

  9、Maximum(最大值):最大的响应时间。

以上值都可作参考,实际工作中最关注的是90%的值,比如说如果这个值是100,即是90%的用户响应时间都小于100ms。这个值越小表示接口响应越快,性能越好。

C、吞吐量

  10、Throughput(吞吐量):默认情况下表示每秒完成的请求数(Request per Second)。

TPS这个值越大,说明服务器的处理能力越强

D、错误率

  11、Error%(异常%):错误率=错误请求的数量/请求的总数。

测试结果异常指标,,错误率越低越好,为0表示没有异常请求。对于一般业务来说错误率要在万分之一以下(按实际需求为准)

 E、带宽

从服务 器端接收返回数据所占用网络带宽,值越小,占用带宽越小,性能越好,如果该值非常大,就要考虑优化。

12、Received KB/sec (接收数据):每秒从服务器端接收到的数据量。

13、Sent KB/sec(发送):每秒发送到服务器端的数据量。

 四、你们公司做性能测试时是用单机压测还是分布式压测?可以说说它们的区别吗?

以前项目小的时候我用过普通模式,即单机压测的方式进行测试,后面测试大型项目的时候基本都是使用分布式模式进行压测。

1、区别

普通(单机)压测:采用单台机器对目标服务器产生的压力,因为受限于CPU、内存、网络、IO等因素的影响,通常只能模拟几十到几百用户的并发访问。不符合大型项目的实际情况

分布式压测是利用多台机器同时向目标服务器产生压力,可以模拟几万到上亿级别用户的并发访问。

2、Jmeter分布式压测原理

总控机器的节点master(运行JMeterGUI的系统),其他产生压力的机器(多台)叫slave(运行Jmeter-sever系统),master会把压测脚本发送到 slave上面 执行的时候,slave上只需要把jmeter-server打开就可以了,不用启动jmeter 。结束后,server会把压测数据回传给master,然后master汇总输出报告

注意:

1)master和各个slave机器必须使用同一局域网,尽可能减少网络带宽的影响。

2)使用非GUI模式,避免不必要的cpu、内存损耗。


http://chatgpt.dhexx.cn/article/uVU8cA7d.shtml

相关文章

Jmeter 性能测试入门 ——性能插件介绍

目录 一、前言 1、首先,JMeter提供了三个基本的线程组,分别为: 2、其他线程组可以通过集成插件的方式使用,包括: 二、集成插件下载安装 1、下载地址:jmeter-plugins.org 2、安装:下载后文件为plugins…

jmeter性能测试常用插件简介

jmeter性能测试常用插件简介 jmeter作为一个开源的接口性能测试工具,相对于商业性软件loadrunner来说,优点是更加灵活方便,操作简单。但相对来说,专业性和对性能参数的分析相对比较薄弱。但是通过第三方插件,就能将一些…

jmeter性能测试步骤

🏆作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪,专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于,Java基础教程系列…

超详细!Jmeter性能测试(一)

*Jmeter 性能测试(一) 首先开发会给你一个接口文档、我们这边是做支付方面的,所以我们要求给下单支付接口做下压测。 由于我们这边接口都是有加密参数的,所以都是直接在JAVA工程包里直接跑的,因为这次是做压测&#x…

JMeter 性能测试实例

JMeter 性能测试实例 1. 实验目的 熟悉 Badboy JMeter 的自动化测试流程 2. 实验内容 2.1 使用 Badboy 录制脚本 2.2 使用 JMeter 进行性能测试 2.3 分析测试结果 3. 实验步骤 3.1 下载图 1 所示的文件并解压 图 1. 本实验需要的相关文件 3.2 双击运行 strawberry-pe…

jmeter性能测试步骤入门

目录 一、Jmeter简介 二、Jmeter实现性能测试 三、总结 一、Jmeter简介 1 概述 jmeter是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 …

jmeter 性能测试结果分析

一、性能测试的概念&意义 1、概念 通过技术的手段模拟大量用户同时访问被测应用,观察、记录和分析系统的各项性能指标的过程。 2、目的 评估系统的性能瓶颈,预测系统的最大用户负载能力 3、意义 能够有效评估系统的性能指标,用于系统…

JMETER性能测试

jmeter 为性能测试提供了一下特色: jmeter 可以对测试静态资源(例如 js、html 等)以及动态资源(例如 php、jsp、ajax 等等)进行性能测试 jmeter 可以挖掘出系统最大能处理的并发用户数 jmeter 提供了一系列各种形式的…

超详细!Jmeter性能测试

前言 性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据。 测试流程: 需求分析→环境搭建→测试计划→脚…

(一)JMeter性能测试,完整入门篇:性能测试操作步骤

原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具&#xff0…

jmeter性能测试步骤实战教程

1. Jmeter是什么? 2. Jmeter安装 2.1 JDK安装 由于Jmeter是基于java开发,首先需要下载安装JDK (目前JMeter只支持到Java 8,尚不支持 Java 9) 1. 官网下载地址: http://www.oracle.com/technetwork/java/…

如何用jmeter工具进行性能测试

前言 今天我们来说说jmeter如何进行性能测试,我们都知道jmeter工具除了可以进行接口功能测试外,还可以进行性能测试。当项目趋于稳定,根据性能需求就可以着手准备性能测试了,今天就说一说jmeter如何进行性能测试,jmet…

【软件测试】Jmeter性能测试(性能测试,Jmeter使用与结果分析)

文章目录 前言一、性能测试1. 什么是性能测试?2. 性能测试的重要性3. 性能指标——QPS和TPS①QPS②TPS 二、压测工具Jmeter1. 什么是Jmeter?2. Jmeter主要元件3. 下载安装 三、一个简单的测试案例①新建一个线程组②新建一个HTTP请求③添加HTTP信息头&am…

全网最牛,JMeter性能测试步骤与结果分析(压力 / 负载测试)详全,精品太干了

目录:导读 一、前言二、负载、压力、可靠性(非常重要)三、压力测试实战四、负载测试实战五、资源监控1、Windows自带的资源监工具2、Jmeter里面的第三方监理插件3、Linux资源监控 一、前言 1、负载:模拟业务操作对服务器造成压力…

【Java】比较器 Comparator Comparable

一、背景 我们在使用 Collections.sort() 对链表进行排序(或者使用 Arrays.sort() 对数组进行排序)时,常常需要根据不同情况自定义排序规则。比如:当我们存储学生对象时,我们需要按照学生年龄进行排序,这时…

Java 解惑:Comparable 和 Comparator 的区别

读完本文你将了解到: Comparable 自然排序Comparator 定制排序总结 Java 中为我们提供了两种比较机制:Comparable 和 Comparator,他们之间有什么区别呢?今天来了解一下。 Comparable 自然排序 Comparable 在 java.lang 包下&am…

【Java】Comparable和Comparator接口

活动地址:CSDN21天学习挑战赛 ✨博客主页: XIN-XIANG荣 ✨系列专栏:【Java SE】 ✨一句短话: 难在坚持,贵在坚持,成在坚持! 文章目录 一. Comparable接口1. Comparable简介2. 为什么要实现Comparable接口3. Comparable的实际应用 Comparator接口1. Comparator简介2.…

一篇告诉你Comparator.comparing的使用

Comparator.comparing用处 很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理,使用java8新特性 //返回 对象集合以类属性一升序排序 list.stream().sorted(Comparator.comparing(类::属性一));//返回 对象集合以类属性一降序排序 注意两种写法…

详解Comparable和Comparator

目录 Comparable接口 Comparator接口 Comparable接口 Comparable接口在源码中的声明&#xff1a; public interface Comparable<T> {public int compareTo(T o); } 可以看到&#xff0c;只要一个compareTo方法&#xff0c;也就是说&#xff0c;实现Comparable接口的类…

Java Comparator的使用

这是啥&#xff1f; Comparator是个接口&#xff0c;是一个比较器&#xff0c;常用内部类的方式实现&#xff0c;常用于实现某个类的比较规则 怎么用&#xff1f; 场景&#xff1a;假如有一个字符串集合list&#xff0c;一共有10个元素&#xff0c;乱序的。现有排序规则orde…