测试老鸟经验总结,Jmeter性能测试-重要指标与性能结果分析(超细)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

11

Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告

如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。

1、Lable:每个Jmeter的element(例如Http Request)都有一个Name属性,这里显示就是Name属性的值

2、Samples:表示这次测试一共发出了多少次请求,如果模拟10用户,每个用户迭代10次,那么这里显示100

3、Average:平均响应时间–默认情况下是单个Request的平均时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间

4、Median:50%用户响应时间
5、90%Line:90%用户的响应时间
6、Min:最小响应时间
7、Max:最大响应时间
8、Error%:本次测试出现错误的请求的数量/请求总数

9、Troughput:吞吐量—默认情况下表示每秒完成的请求数量(Request per second),当使用了Transaction Controller时,也可以表示类似Loadruner的Transaction per second数

10、KB/Sec:每秒从服务器端接收的数量,相当于Loadrunner的Throughput/Sec

描述性统计与性能结果分析

疑惑点:90%响应时间是什么意思?这个值在进行性能分析时有什么作用?

为什么要有90%用户响应时间?
因为在评估一次测试的结果时,仅仅有平均事务响应时间是不够的。为什么这么说?

你可以试着想想,是否平均事务响应时间满足了性能需求就表示系统的性能已经满足了绝大多数用户的要求?

假如有两组测试结果,响应时间分别是 {1,3,5,10,16} 和 {5,6,7,8,9},它们的平均值都是7,你认为哪次测试的结果更理想?

假如有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?

12

在上面这个表中包含了几个不同的列,其含义如下:

CmdID:测试时被请求的页面
NUM:响应成功的请求数量
MEAN:所有成功的请求的响应时间的平均值
STD DEV:标准差
MIN: 响应时间的最小值
50 th(60/70/80/90/95 th):如果把响应时间从小到大顺序排序,那么50%的请求的响应时间在这个范围之内。后面的60/70/80/90/95 th 也是同样的含义
MAX:响应时间的最大值

性能测试小结

1、90%用户响应时间在 LoadRunner中是可以设置的,你可以改为80%或95%;

2、对于这个表,LoadRunner中是没有直接提供的,你可以把LR中的原始数据导出到Excel中,并使用Excel中的PERCENTILE 函数很简单的算出不同百分比用户请求的响应时间分布情况;

3、(重点)从上面的表中来看,对于Home Page来说,平均事务响应时间(MEAN)只同70%用户响应时间相一致。

也就是说假如我们确定Home Page的响应时间应该在5秒内,那么从平均事务响应时间来看是满足的,但是实际上有10-20%的用户请求的响应时间是大于这个值的;

对于Page 1也是一样,假如我们确定对于Page 1 的请求应该在3秒内得到响应,虽然平均事务响应时间是满足要求的,但是实际上有20-30%的用户请求的响应时间是超过了我们的要求的;

4、你可以在95 th之后继续添加96/ 97/ 98/ 99/ 99.9/ 99.99 th,并利用Excel的图表功能画一条曲线,来更加清晰表现出系统响应时间的分布情况。

这时候你也许会发现,那个最大值的出现几率只不过是千分之一甚至万分之一,而且99%的用户请求的响应时间都是在性能需求所定义的范围之内的;

5、 如果你想使用这种方法来评估系统的性能,一个推荐的做法是尽可能让你的测试场景运行的时间长一些,因为当你获得的测试数据越多,这个响应时间的分布曲线就越接近真实情况;

6、在确定性能需求时,你可以用平均事务响应时间来衡量系统的性能,也可以用90%或95%用户响应时间来作为度量标准,它们并不冲突。

实际上,在定义某些系统的性能需求时,一定范围内的请求失败也是可以被接受的;

7、上面提到的这些内容其实是与工具无关的,只要你可以得到原始的响应时间记录,无论是使用LoadRunner还是JMeter或者OpenSTA,你都可以用这些方法和思路来评估你的系统的性能。

聚合报告中的,吞吐量=完成的transaction数/完成这些transaction数所需要的时间;

平均响应时间=所有响应时间的总和/完成的transaction数;
失败率=失败的个数/transaction数总的来说,对于jmeter的结果分析,主要就是对jtl文件中原始数据的整理。

8、TestPlan :是整个Jmeter测试执行的容器
9、ThreadGroup :模拟请求,定义线程数、Ramp-Up Period、循环次数。
10、Step1 :循环控制器 ,控制Sample的执行次数。

11、怎样计算Ramp-up period时间?
Ramp-up period是指每个请求发生的总时间间隔,单位是秒。
如果Number of Threads设置为5,而Ramp-up period是10,那么每个请求之间的间隔就是10/5,也就是2秒。
Ramp-up period设置为0,就是同时并发请求。

12、为什么Aggregate Report结果中的Total值不是真正的总和?
JMeter给结果中total的定义是并不完全指总和,为了方便使用,它的值表现了所在列的代表值,比如min值,它的total就是所在列的最小值。

13、在运行结果中为何有rate为N/A的情况出现?
可能因为JMeter自身问题造成,再次运行可以得到正确结果。

14、在使用JMeter测试时,是完全模拟用户操作么?造成的结果也和用户操作完全相同么?

是的。JMeter完全模拟用户操作,所以操作记录会全部写入DB.在运行失败时,可能会产生错误数据,这就取决于脚本检查是否严谨,否则错误数据也会进入DB,给程序运行带来很多麻烦。

小心缓存(类似查询接口压测,先问问有没有做缓存);
瓶颈处持续压测,测试系统稳定性;
线上真实的一模一样的环境配置;
缓存洞穿,持续压测/去缓存压测/有缓存压测;

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

奋斗是一种态度,成功是一种选择。不论遇到多大困难,不抛弃、不放弃,坚持追求梦想的信念。每一次努力都是改变命运的机会,相信自己的力量,勇往直前!

生命不息,奋斗不止。燃烧心中的激情,追寻内心的渴望。困难只是暂时的,坚持是永恒的力量。拥抱挑战,超越极限,只要敢于去追逐,成功必将属于你!

不要因为失败而停下脚步,而是因为脚步而改变未来。勇敢面对挑战,坚持自己的梦想,相信自己的实力。每一次努力都是收获的种子,不断奋斗。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/88207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CTF-web】修改请求头(XFF)

题目链接:https://ctf.bugku.com/challenges/detail/id/79.html 随意输入后可以看到需要本地管理员登录,得知这是一道需要修改XFF头的题。 XFF即X-Forwarded-For,该请求标头是一个事实上的用于标识通过代理服务器连接到 web 服务器的客户端的…

【Apollo】Apollo-ros版本架构学习与源码分析

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Apollo-ros版本架构学习与源码分析。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&a…

途乐证券-新股行情持续火爆,哪些因素影响首日表现?

全面注册制以来,参加打新的投资者数量全体呈现下降。打新收益下降,破发频出的布景下,投资者打新策略从逢新必打逐步向优选个股改变。 经过很多历史数据,从商场定价、参加者热度以及机构重视度维度揭秘了上市后股价体现优秀的个股具…

时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测)

时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测) 目录 时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测)效果一览基本描述模型结构程序设计参考资料效果一览

记录一下关于word存放代码出现的问题

如下图所示,从 Word 中复制代码并粘贴到其他地方,例如文本编辑器或代码编辑器中,有时会出现额外的连字符或破折号。这是因为 Word 使用了特定的字符编码和格式,而这些字符在代码中可能不被支持或解析为特殊字符。   可见有时从…

拓扑布局和建立小型网络

练习 2.6.1:拓扑布局和建立小型网络 地址表 本实验不包括地址表。 拓扑图 学习目标 正确识别网络中使用的电缆物理连接点对点交换网络验证每个网络的基本连通性 简介: 许多网络问题都可以在网络的物理层解决。因此,必须清楚了解网络连接…

13-把矩阵看作是对系统的描述

探索矩阵乘法:更深刻的理解与应用视角 🧩🔍 引言 📖 在我们进一步探讨矩阵乘法之前,让我们从不同的角度来理解什么是矩阵,以及如何将矩阵视为一个系统。我们之前已经介绍了矩阵的基本概念和运算&#xff…

【QT】 QSS样式表设计一文了解

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享QT界面设计中的QSS样式技术,主要从**、**和**方面展开,希望对各位小伙伴有所帮助!学会了QSS样式设计,就可以开动你的审美&#…

Zookeeper集群 + Kafka集群

文章目录 Zookeeper集群 Kafka集群一.Zookeeper 概述1.Zookeeper 定义2.Zookeeper 工作机制2.1 Zookeeper 工作机制图示 3.Zookeeper 特点4.Zookeeper 数据结构5.Zookeeper 应用场景5.1 统一命名服务5.2 统一配置管理5.3 统一集群管理5.4 服务器动态上下线5.5 软负载均衡 6.Zo…

JMeter启动时常见的错误

很多小伙伴在学工具这一块时,安装也是很吃力的一个问题,之前记得有说过怎么安装jmeter这个工具。那么你要启动jmeter的时候,一些粉丝就会碰到如下几个问题。 1.解压下载好的jmeter安装,Windows 平台,双击 jmeter/bin …

35岁职业危机?不存在!体能断崖?不担心

概述 90年,硕士毕业,干了快8年的Java开发工作。现年33岁,再过2年就要35岁。 工作这些年,断断续续也看过不少35岁找不到工作,转行,降薪入职的传闻、案例。 35岁,甚至30岁之后,体能…

使用gewe框架进行微信群组管理(一)

友情链接:geweapi.com 点击访问即可。 管理员操作 小提示: 添加、删除、转让多个wxid时仅限于添加/删除管理员,1添加 2删除 3转让 请求URL: http://域名地址/api/group/admin 请求方式: POST 请求头&#xff1a…

Expo项目 使用Native base UI库

装包: yarn add native-base expo install react-native-svg12.1.1 Index.js: import React from react import { View, Text } from react-native import useList from ./useList import { NativeBaseProvider, Button, Box } from native-base import styles f…

Python中搭建IP代理池的妙招

在Python的爬虫世界里,你是否也想搭建一个功能强大的IP代理池,让你的爬虫无忧无虑地畅游各大网站?今天,我就来教你使用Scrapy框架搭建IP代理池,让你的爬虫更加智能、高效!跟着我一步一步来,轻松…

NGINX负载均衡及LVS-DR负载均衡集群

目录 LVS-DR原理搭建过程nginx 负载均衡 LVS-DR原理 原理: 1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP&#xff…

Android JNI实现锅炉压力显示系统详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 第一步创建GuoLu.c文件 // // Created by DELL on 2023/8/13. // #include <stdio.h…

vue3使用pinia和pinia-plugin-persist做持久化存储

插件和版本 1、安装依赖 npm i pinia // 安装 pinia npm i pinia-plugin-persist // 安装持久化存储插件2、main.js引入 import App from ./App.vue const app createApp(App)//pinia import { createPinia } from pinia import piniaPersist from pinia-plugin-persist //持…

2023深圳杯A题完整代码模型

已更新深圳杯A题全部版本&#xff0c;文末获取&#xff01; 摘要 现代社会&#xff0c;随着生活方式的变化和工作压力的增大&#xff0c;慢性非传染性疾病日益成为威胁公众健康的主要问题。心脑血管疾病、糖尿病、恶性肿瘤及慢性阻塞性肺病等慢性病的发病率呈现出上升趋势。为…

缓存 基础

在项目里面缓存是怎么用的? 项目中缓存是如何使用的&#xff1f;为什么要用缓存&#xff1f;缓存使用不当会造成什么后果? 这个问题&#xff0c;互联网公司必问&#xff0c;要是一个人连缓存都不太清楚&#xff0c;那确实比较尴尬。 只要问到缓存&#xff0c;上来第一个问题…

六种不同的CRM系统类型分别有哪些特点?

企业想要管理销售&#xff0c;可以选择CRM系统&#xff1b;企业想要优化业务流程&#xff0c;可以选择CRM系统&#xff1b;企业想要提高收入&#xff0c;可以选择CRM系统。下面来说说&#xff0c;CRM是什么&#xff1f;六种常见CRM系统类型对比。 什么是CRM&#xff1f; CRM是…