入门性能测试(一)

news2025/4/8 13:32:26

一、JDK的下载和安装

1、jdk安装

官网位置:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

2、安装JDK

 

 

 

 

建议:安装路径,不要有汉字目录,不要有空格目录,不要有x86目录

3、配置环境变量

 

 

 

再次新建一个系统变量,输入变量名和变量值后,点击确定按钮

输入变量名:CLASSPATH

输入变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;  【英文输入法下的句号和分号】

在系统变量区域找到Path变量,双击打开

点击新建,添加:

%JAVA_HOME%\bin     

%JAVA_HOME%\jre\bin

4、验证

检测是否安装成功:windows图标+R,输入cmd,按回车键

输入java –version,javac,按回车键

================================================================================

二、Jmeter的下载和安装

1、官网下载Jmeter

官网位置:http://jmeter.apache.org/

2、解压

下载后无需安装,解压后即可使用

下图为解压后的目录

3、配置Jmeter的环境变量

电脑桌面 → 此电脑(鼠标右键选择“属性”) →  高级系统设置  → 高级(点击“环境变量”)

在系统变量下,点击“新建”

输入变量名:JMETER_HOME

输入变量值:下载后jmeter解压的路径 (此路径根据自己实际安装路径进行填写)

在系统变量区域找到CLASSPATH变量,双击打开后进行编辑,加上:

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

完整版:

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

注:如果没找到CLASSPATH,添加在PATH里也可以

在系统变量区域找到Path变量,双击打开

点击新建,添加:%JMETER_HOME%\bin

配置完成后,点击确定按钮

4、验证

验证是否配置正确、是否安装成功:

启动方法一:在Jmeter安装路径下,打开bin文件夹,找到jmeter.bat文件,鼠标右键以管理员身份运行,或者双击打开(也可以鼠标右键创建一个快捷方式发送到电脑桌面,这样启动jmeter会方便很多)

启动方法二:通过windows图标+R,cmd,输入jmeter,按回车键

此时会出现两个界面,一个是Jmeter的命令窗口(使用jmeter的时候此命令窗口不能关,缩小到电脑任务栏即可),另外一个

是Jmeter的图形操作界面

5、设置成显示中文

永久设置成中文方法:找到jmeter解压路径下的bin目录,打开jmeter.properties 文件,

去掉前面的#,修改成language=zh_CN,保存

以后启动jmeter.bat文件,就是中文界面啦

6、问题解决记录

问题:完成了Jmeter配置后,运行jmeter.bat文件时,控制台一闪而退

解决过程:

1、检查jmeter的环境变量,没看出啥问题

2、检查jdk,jdk没问题

3、重启电脑,问题没有解决

4、考虑换安装包重新安装,想了想,还是想把问题解决,嗯,接着死磕这个问题

5、替换别人的jmeter.bat文件,再次运行,还是不可以哇,惆怅

6、对解压后的jmeter文件夹,让管理员取得所有权限,到cmd里面E:\Jmeter\apache-jmeter-5.3\bin\jmeter.bat

还是不可以运行诶

7、编辑jmeter.bat文件,在文件末尾另起一行,加上pause,看错误信息

8、还是环境变量出了问题呗,检查JMETER_HOME,变量值路径没问题;检查CLASSPATH的配置内容,并对比网友

     的CLASSPATH的配置内容,发现我下载的这个 jmeter版本中没有logkit-2.0.jar的文件,去掉这个文件路径,保存环境

     变量,运行jmeter.bat文件,运行成功!

    以下为错误情况:

三、性能测试的概念

1、性能测试的概念

  • 使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程

2、性能测试的目的

  • 评估当前系统能力

例如:验收第三方提供的软件

  • 常见的性能需求(性能需求文档):
  1. WEB首页打开速度在5s一下,web登陆速度15s一下
  2. 邮箱服务支持50万个在线用户
  3. 计费话单成功率达到99.99以上
  4. 在100个并发用户的高峰期,邮箱的基本功能,处理能力至少达到0TPS
  5. 系统能在高于实际系统运行压力1倍的情况下,稳定运行12小时
  6. 这个系统能否支持200万的Virtual user(每天登陆系统的人次)
  7. 寻找性能瓶颈,优化性能
  8. 评估软件是否能满足未来需求

3、什么是性能:

  • 时间:系统处理用户请求响应时间
  • 资源:系统运行过程中,系统资源的消耗情况

四、性能测试的策略

1、基准测试

  • 狭义上讲:就是单用户测试(单用户循环多次得到的数据)
  • 广义上讲:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试确定变化对性能的影响。4、

1.1、基准测试数据的用途

  • 基准测试不会单独存在
  • 为多用户并发测试和综合场景测试等提供参考依据
  • 为系统/环境配置。系统优化前后的性能提升/下降提供参考指标

2、负载测试

  • 概念:通过逐步增加系统负载,确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能承受的最大负载量的测试
  • 作用:系统最大负载量达到用户要求时,系统才能上线使用。

3、稳定性测试

  • 概念:在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周)并最终保证服务器能满足线上业务需求

4、压力测试

  • 概念:在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力
  • 测试场景:

                极限负载情况下的破坏性压力测试

                高负载下的长时间的稳定性压力测试

5、并发测试

  • 概念:并发测试(绝对并发):是指在极端的时间内,发送多个请求,来验证服务器对并发的处理能力

五、性能测试的指标(标准)

1、为什么要学习性能测试指标?

  • 对性能测试结果进行量化衡量

2、什么是响应时间

  • 指从客户端发送请求开始,到客户端接收到结果的总时间
  • 包括:服务器处理时间+网络传输时间

3、什么是并发用户数

  • 某一时刻同事向服务器发送请求的用户数

4、吞吐量(Throughput):

指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力
  • QPS(Query Per Second)每秒查询数:即控制服务器每秒处理的指定请求数量-
  • TPS(Transactions Per Second)每秒事务数:即控制服务器美妙处理事务请求的数量
事务:即业务,页面上的一次操作,可能对应一个请求/多个请求

5、点击数和错误率

  • 点击数:指客户端向服务端发送请求时,所有页面的页面资源元素(如:图片、链接、框架css、js等)的请求总数量
  • 注意:
  • 只有web项目才有此指标
  • 点击数不是页面上的一次点击
  • 错误率:指系统在负载情况下,是被业务的概率。
  • 错误率=(失败业务数/业务总数)*100%
  • 注意:
  • 大多系统都会要求错误率无限接近于0
  • 错误率是一个性能指标,不是功能上的随机bug

6、资源使用率

  • 资源使用率:是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据

六、性能测试的流程

七、Jmeter元件和组件的介绍

1、元件的基本介绍

  • 元件:多个类似功能组件的容器(类似于类)
  • 取样器——发送请求
  • 逻辑控制层——控制语句的执行顺序(类似于if)
  • 前置处理器——对请求参数进行预处理
  • 后置处理器——对响应结果进行提取
  • 断言——检查接口的返回结果是否与预期结果一致
  • 定时器——封装一段代码,供其他脚本调用
  • 配置元件——测试数据的初始化配置
  • 监听器——查看Jmeter脚本的运行结果
  • 组件:市县级独立的某个功能(类似于方法)

2、元件的作用域

  • 元件的作用域:是考测试计划的属性结构中元件的父子关系来确定的

提示:所有的组件都是以取样器为核心来运行的。组件添加的位置上不同,生效的取样器也不同

  • 作用域的原则:
  • 取样器:核心,不和其他元件相互作用,没有作用域
  • 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用
  • 其他元件:
  • 如果是某个取样器的子节点,则该元件只对其父节点起作用
  • 如果其父节点不是取样器,则其作用域是该元件父节点下的其它所有后代节点(包括子节点,子节点的子节点等)

3、元件的执行顺序

  • 同一个作用域下不同类型元件:
  • 配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序-->断言-->监听器
  • 同一个作用域下多个相同类型元件:
  • 按照测试计划中从上到下的顺序依次执行

八、JMeter使用示例

1、JMeter第一个案例

需求:使用JMeter访问百度首页接口,并查看请求和响应信息

  • 步骤
  • 启动JMeter
  • 在“测试计划”下添加“线程组”
  • 在“线程组”下添加“HTTP请求”取样器
  • 填写“HTTP请求”的相关请求数据
  • 在“线程组”下添加“查看观察树”监听器
  • 点击“启动”按钮运行,并查看结果

2、线程组

概念:控制JMeter用于执行测试的一组用户
  • 线程组的分类:
  • Setup线程组:预测试操作,左右监本之前执行
  • 普通线程组:执行测试用例,可以有1个或多个(并行/串行)
  • Teardown线程组:测试后操作,所有脚本之后执行

3、JMeter参数化

3.1 什么是参数化?

把测试数据组织起来,用不同的测试数据调用相同的测试方法。

3.2 四种参数化有何不同?如何选择适当的方法?

  • 用户定义的变量:作用:定义全局变量。局限性:每次取值(无论是否是相同的用户)都是固定值
  • 用户参数:作用:保证不同的用户针对同一组参数,可以取到不同的值。局限性:同一个用户再多次循环时,取到相同的值。
  • CSV数据文件设置:作用:保证不同的用户及同一用户多次循环时,都可以取到不同的值。局限性:需要手动进行测试数据的设置。
  • 函数:作用:保证不同的用户及多次循环时,都可以取到不同的值,不需要提前设置。局限性:输入数据有特殊的业务要求的时无法使用。(如:登陆时的用户名密码)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

附下载 | 354个数据开发利用机构名单来了

数字中国建设正在驶入发展快车道。2023年2月,中共中央、国务院印发的《数字中国建设整体布局规划》提出,到2025年,基本形成横向打通、纵向贯通、协调有力的一体化推进格局,数字中国建设取得重要进展。到2035年,数字化发…

一个未初始化的局部变量引起的BUG(二)-PC13引脚异常

现象: STM32F030C8中PC13引脚异常,配置为GPIO输出,有时编译后出现异常,表现如下: 1、不能输出高电平。 2、烧回原来正确的版本固件,也不能输出高电。 3、过一段时间后,能恢复。 4、同样的代码&…

征文 | CSDN创作纪念日

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 征文 | CSDN创作纪念日 机缘 CSDN专业的IT社区,致力于为IT从业人员提供最新、最全面的技术资讯、最专业的技术交流平台。作为一个IT从业者,我最…

DG4Pros结合M3D,1:500地籍免像控实践详解

前言 免像控技术正在迈向成熟,逐渐从理论走向了实际应用。本期,我们详细讨论DG4 Pros相机配合北京中测智绘科技有限公司的Mirauge 3D软件在1:500地籍精度的免像控作业中的可行性及具体项目流程。 DG4 Pros倾斜摄影相机 实验背景 无人机航空摄影测量是…

Facebook群组营销:建立社群,促进互动与品牌增长

除了常见的Facebook广告和页面推广,Facebook群组也成为了一种强大的营销工具。本文将探讨Facebook群组营销的潜力以及如何建立社群、促进互动并实现品牌增长。 1.Facebook群组:一个强大的社群平台 理解Facebook群组的概念:Facebook群组是一个…

【数据分析之道-Matplotlib(五)】Matplotlib柱状图

文章目录 专栏导读1、matplotlib柱状图基本语法1.1bar()函数绘制垂直柱状图基本语法1.2barh()函数绘制垂直柱状图基本语法 2、使用 bar() 来创建一个简单的柱形图3、垂直方向的柱形图可以使用 barh() 方法来设置4、设置柱形图颜色4.1使用单个颜色值4.2使用颜色列表 5、设置柱形…

【Unity】 HTFramework框架(四十四)【进阶篇】指令系统

更新日期:2023年5月29日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 指令系统简单使用定义InstructionAgent编辑指令代码执行指令代码 指令代码语法基本语法指令关键字注释支持的值类型标识符命名规范 进阶使用运行时检视面…

【MySQL】MySQL的事务原理和实现?

文章目录 MySQL事务的底层实现原理一、事务的目的可靠性和并发处理 二、实现事务功能的三个技术2.1 redo log 与 undo log介绍2.1.1 redo log2.1.2undo log 2.2 mysql锁技术2.2.1 mysql锁技术 2.3 MVCC基础 三、事务的实现3.1 原子性的实现3.1.1 undo log 的生成3.1.2 根据undo…

机器视觉陶瓷板智能检测设备在工业质检中的应用

随着工业自动化的不断发展,机器视觉技术在质量控制领域中的应用越来越广泛。在陶瓷制品生产中,机器视觉技术可以帮助企业实现陶瓷板的智能检测,减少人工操作的错误率,提高生产效率和产品质量。本文将介绍机器视觉陶瓷板智能检测设…

4种不改变格式将PDF转Word文档的方法

Microsoft Word 使用户能够按照自己的喜好创建和编辑文档。当用户发现一些PDF资源有助于补充他们的文书工作时,他们可能希望将PDF插入到Word文档中,特别是插入多页PDF文件,以进行编辑或其他目的。将 PDF 插入 Word 文档非常容易,只…

视频剪辑必备,7免费个视频素材库,马住。

请收藏好这6个免费可商用的视频素材网站,以后再也不用为找素材而烦恼了,这些就够了! 菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 可以称之为最大素材库,在这里你可以找到设计、办公、图片、视频、音频等各种素材。…

【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

随着机器人技术的不断发展,我们可以在许多简单重复,危险的岗位上看到机器人的身影,移动机器人凭借其在复杂环境下工作,具有自行感知、自行规划、自我决策功能的能力,它可以在不同的环境中移动并执行任务,在…

泉州银行:面向业务场景的赋能型数据中台

关 注gzh"大数据食铁兽",了解更多银行大数据案例 案例简介 作为支持数字经济发展和高质量发展的一份子,数字化转型成为泉州银行当前的重要任务。为加强业务场景数据赋能,数据资产共享流通,我行以“数聚、数用、数智”为…

认识Servlet---2

hi,大家好,今天我们继续来认识Servlet 1.更方便的部署方式 2.访问出错的问题分析 3.Servlet的API之HttpServlet 🍨🍨🍨🍨 🍭1.更方便的部署方式 在上一期的讲解中,我们已经完整的创建项目并且编写代码并且得到了验…

Linux之进程地址空间

文章目录 前言一、是什么1.例子2.感性的理解虚拟地址空间3.现象的具体解释4.写时拷贝 二、为什么三、怎么办总结 前言 内存区域划分: 在学习C/C时我们都有接触过内存区域划分这个概念,也知道它表示的是程序加载到内存中不同的数据所分布的不同的区域&a…

阿里云服务器数据盘是什么?系统盘和数据盘区别

阿里云服务器系统盘和数据盘有什么区别?系统盘类似Windows电脑的C盘,数据盘相当于其他盘符,数据盘可以有多个而系统盘只能有一个,数据盘可有可无而云服务器系统盘是必须要有的。阿里云服务器网来详细说下阿里云服务器数据盘和系统…

电子企业MES管理系统解决方案

随着信息技术的飞速发展,电子企业面临着日益复杂的数据管理、生产流程和业务决策等问题。如何应对这些问题并提高企业生产效率已成为电子企业的当务之急。本文旨在探讨电子企业MES管理系统的解决方案,以应对电子企业面临的挑战。 在制定电子企业MES管理…

苹果笔不用原装可以吗?推荐性价比最高的平替苹果笔

苹果Pencil的价格令人难以入手,单支就要接近千元,我实在想不通,这款电容笔怎么会以969元的价格出售?尽管苹果的Pencil性能非常不错,但是我认为它的价值还是不值这个价钱。当前国产的平板电容笔正不断完善中&#xff0c…

华为OD机试之羊、狼、农夫过河(Java源码)

羊、狼、农夫过河 题目描述 羊、狼、农夫都在岸边,当羊的数量小于狼的数量时,狼会攻击羊,农夫则会损失羊。农夫有一艘容量固定的船,能够承载固定数量的动物。 要求求出不损失羊情况下将全部羊和狼运到对岸需要的最小次数。只计算…

Zookeeper集群 + Fafka集群

Zookeeper 概述 Zookeeper 定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心…