Jmeter性能测试

性能概念

100个人同时登陆接口,性能中的avgrt应该是多少是可被接受的?
1.5s APDEX用户满意度指数

**事务:**一个请求行为,并不一定只有一个接口,所以,一个事物可能有多个接口,增加事务控制器

Jmeter默认情况下,一个接口请求一次,任务一个事物Transaction,也可以通过事务控制器,挂载多个接口请求,合并成一个事务,是从发起到网络传输,再到收到响应。

性能测试

通过工具,模拟多用户发起请求,获取性能指标值+用工具来模拟多个人的方式很多+线程:使用进程的资源,Jmeter IR(默认用的是线程)
进程:资源拥有者,资源消耗会比较大
线程是进程下面运行的。

协程:Python+Locust

性能指标

  1. 平均相应时间:avgrt
    avgRt:所有入口流量的平均响应时间
  2. TPS(性能测试指标):服务器每秒处理的事务数
    衡量**服务器处理能力的最主要的指标
  3. 吞吐量:…网络…中的每秒通过的事务数
    (1)没有网络瓶颈:Tps数值=吞吐量数值(服务器处理多少,网络处理多少)
    (2)有网络瓶颈:Tps数值!=吞吐量数值
    吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。
    吞吐量单位:kbit,吞吐率:kbit/s,每秒通过多少kb数据。
  4. 服务器资源利用率:(1)CPU (2)内存 (3)IO利用率
  5. 并发用户数:
    (1)同一时间发起的请求、用户数
    +广义并收:同一时间发起(相同或不同)请求
    +狭义并发:同一时间发起相同请求
    (狭义并发+集合点:集合多个人在同一时间发起相同请求)

负载测试

逐步增加并发用户数,找出最大拐点区间。

拐点区间怎么判断:

  • 有没有报错
  • Tps下降
  • 响应时间变长(1.5s,单接口在500ms)

50Tps:服务器每秒处理50个事务

压力测试

在一定的性能压力下,持续运行一个比较长的时间(小时为单位),看系统服务及各资源利用情况稳定性。
一定量:访问,小于最大并发用户数 20%或80% masThreads
关键词:较大压力+较长时间

QPS :“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。同时也代表一种计算机编程语言,用于数据分析和报表产出。
HPS:每秒用户点击率,页面点击 (Jmeter里无hps)

可靠性测试:在给定的业务压力下,持续运行一段时间,查看系统是否稳定

容量测试

通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。 容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或 工作量。

测试用的环境:独立性能测试环境,不超过万。

性能测试流程

  1. 性能测试准备
  2. 搭建性能测试环境(服务器、服务版本、数据库)(数据量要准备好)
  3. 性能测试脚本开发
  4. 性能测试脚本执行
  5. 结果分析与调优
  6. 测试报告与结果跟练

服务器硬件瓶颈>网络瓶颈>服务器的瓶颈>应用瓶颈

Jmeter安装

  • 不需要配置Jmeter-home环境变量
    原因:如果配置电脑有且仅能运行一个Jmeter
  • 一台电脑理论上可以运行多个不同版本的Jmeter
    Jmeter闪退的原因:
  • 配置了环境变量
  • 没有安装jdk
  • 包少了文件

文件路径

  • Bin:启动 配置文件
  • lib:jar包 工具自身jar 以及第三方jar
  • docs:文档,用于Jmeter进行二次开发调用的api
  • prinatable-docs:离线帮助文档
  • extras:扩展 ACD 性能测试持续集成

Jmeter写脚本

先把项目启动
打开项目接口文档
接口文档:一般是开发
在这里插入图片描述
特别注意事项:
当你的接口请求参数韦JSON时,一定要写请求头,请求中一定要有Content-Type:application / json
如果没有这个信息,100%报错,不局限与Jmeter

衍生:http请求包括哪些部分?

  1. 请求行:请求方式,请求地址URL
  2. 请求头:- Content-Type
    - Cookie
    -User-Agent
  3. 空一行
  4. 请求头:参数:表单
    消息体数据:json,xml

json格式:{“key”:“value”,“key”:1}

8080是端口,是Tomcat默认端口。
http协议的默认端口:80
https协议默认端口:443

  1. 当请求体韦json,一定要有请求头Content-Type:application / json
  2. json格式有问题
  3. 协议:当协议为http时,可以不写;如果是https,必须写
  4. 服务器或IP:不能带有/
  5. 路径:不要带域名或Ip,和端口
    路径开头带/
    不要有空格,带有空格请求URL % 20 urlencoded编码
    URL 资源地址
    URL:带domain
  6. 编码内容:utf-8

请求内容出现乱码处理方法

  1. 内容编号:utf-8请求头:charset:utf-8
  2. 请求值为参数类型:勾选参数“编码”
    编码:urlenconded编码
    在参数值韦(非字符【汉字、特殊符号】需要勾选编码
    建议:参数值,不管什么类型都建议勾选。

响应内容出现乱码处理方法
需要修改Jmeter.properties中sampler,result,encoding
不是简单的设置为utf-8,gbk,big5

同一个接口,用postman请求,响应是正常,用Jmeter请求响应。

中文乱码原因:Jmeter编码是根据操作系统编码。

参数:消息体数据选择
当我们的请求接口文档中,请求体韦json格式,那么我们就选择用消息体数据来写json,soap=http+xml

**自动重定向:**不会显示中间重定向过程,无法从过程中提前信息。

跟随重定向:会自动显示重定向过程,能从过程中提前需要的信息,用于接口请求。

使用keepAlive:保持连接,长连接。

脚本增强

写脚本注意事项

  • 协议:http、https
  • 域名 IP:不能有 /
  • 请求方法:看清接口文档
  • 路径:不要把域名和IP放一起
    路径中,前后空格要看清,% 20的urlenconded编码

请求体编码控制

  1. 内容编码 utf-8
  2. 消息头
  3. 参数,勾选编码urlenconded

响应乱码
乱码原因:GUI的编码

请求体:参数 from-data application / x-www-from-urlenconded

消息体数据: json、xml
一定要添加请求头:Content-Type:application / json

写脚本方法扩展

  1. 添加线程组
  2. 测试计划-》非测试元件-》http代理服务
    IP是本机IP,port可以修改,默认是8888
    目标控制器,一定要修改,修改为测试计划,线程组
    添加过滤器
  3. 启动代理服务器时,就会出现一个证书的弹窗
    如果抓取https信息,就必须使用证书。
  4. 本地浏览器使用代理服务器

脚本功能增强

关联:前面接口的响应信息,有动态值,作为后续接口的参数。
变量:用户定义变量,用户参数

  1. 用户定义变量
    位置:配置元件,测试计划
    全局变量
    作用域:作用于整个测试计划(跨线程组也可用)
  2. 用户参数
    位置:前置处理器
    局部变量
    作用域:作用域当前线程组或当前的取样器

定义用户变量:var_user:1888888
引用变量:${var_user}

Jmeter的函数方法:
1888888${_Random(1000,9999)} 字符串的连接
使用用户自定义变量,设置5循环,register+login:1次
register_success 5次 login_success

使用用户自定义变量,设置5循环,register+login:5次
register_success 0次 login_success

迭代:一个线程组下所有的接口,全部执行完1次,才第一个迭代

用户参数:每次迭代更新一次。

函数:方法
双下划线开头
函数名称,严格区分大小写
重要的函数:
在这里插入图片描述

函数

用户定义变量 VS 用户参数

  1. 用户定义变量
    全局变量:可以跨线程组
    在启动时,获取一次值,在运行中,不会动态获取值。
  2. 用户参数
    局部变量:不能直接跨线程组
    在启动时,获取一次值,在运行过程中还会动态获取值。

作为功能测试、自动化测试、非性能测试时,可以把接口写一个线程组下面。在做性能测试时,可能会因为不同的需求,把接口写到不同的线程组中。

属性

属性:以properties结尾的文件,都是Jmeter的属性配置文件。

Jmeter工具属性

  1. 静态属性:写在properties文件中属性信息,都是静态属性。
  2. 动态属性:运行过程中,动态定义属性。
    动态属性:在运行过程中产生的,关闭Jmeter就自动释放了。

系统属性:os.jdk===这个系统属性信息,是不可变。

顺序:

  • Jmeter中,多个启用线程组,默认是并行执行,在性能测试中,我们不会勾选测试计划中独立运行每个线程组。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程从基础讲起,全课程以实战为主,每个知识点通过实际案例演练讲解理论+实践结合,更容易理解,适合小白,低门槛,快速上手。 课程同时涵盖web端和移动端app测试,同时还加入了抓包工具的使用; 1) 第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,通过Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程中间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器、后置处理器之正则表达式提取器提取响应内容实践、读取本地JSON格式文件实例、正则表达式操作符、正则表达式工具之Regextester,系统全面学习正则表达式,突破JMETER 知识难点,响应断言、JMETER分布式、分布式原理、搭建JMETER 分布式、WebService协议接口测试。 每一个知识点采用理论加案例的方式,吃透每一个知识点,为性能测试实践奠定基础。 2) 第二阶段为性能测试实践篇1、通过JMETER 实践爬虫技术,爬取第三方平台全网页地址、批量爬取国外网站壁纸10W+图片并保存到本地;2、详细介绍Fiddler 抓包工具,Fiddler 抓包工具原理、Fiddler 抓取PC 端和移动端包信息、JMETER+Fiddler 结合使用对PC 端项目进行性能测试项目实践,提升PC 端性能测试能力;3、JMETER+Fiddler  结合使用对app 项目进行性能测试项目实践,提升app项目性能测试能力4、性能测试常见的业务指标和技术指标、响应时间、TPS、HPS等知识进行讲解5、通过JMETER 对移动端项目进行性能测试实战; 
JMeter 是一款开源的性能测试工具,用于测量应用程序在不负载条件下的性能和稳定性。你可以使用 JMeter 来模拟多种负载情况,例如并发用户数、请求频率等,以评估系统在压力下的表现。 要进行 JMeter 性能测试,你可以按照以下步骤进行操作: 1. 下载和安装 JMeter:你可以从 Apache JMeter 官方网站下载并安装 JMeter。 2. 创建测试计划:在 JMeter 中,你需要创建一个测试计划来定义测试的目标和配置。可以通过右键点击 Test Plan,选择“Add”菜单添加线程组(Thread Group)和其他元素,如 Samplers(采样器)、Listeners(监听器)等。 3. 配置线程组:线程组定义了模拟用户的行为和负载情况。你可以设置线程数、启动延迟、循环次数等参数。可以通过右键点击线程组,选择“Add”菜单添加配置元件,如 HTTP Request(HTTP 请求)、FTP Request(FTP 请求)等。 4. 添加采样器:采样器用于发送请求并记录响应时间和结果。你可以使用 HTTP Request 采样器来模拟发送 HTTP 请求。配置采样器时,需要设置目标 URL、请求方法、参数等。 5. 添加监听器:监听器用于收集和展示测试结果。你可以使用 View Results Tree 监听器来查看每个请求的响应结果和相关信息。可以通过右键点击线程组,选择“Add”菜单添加监听器。 6. 配置其他元件:除了采样器和监听器,你还可以添加其他元件来模拟更多的测试场景,如定时器、断言等。 7. 启动测试:配置完成后,你可以点击工具栏上的“启动”按钮来运行测试。JMeter 将模拟用户行为并记录性能指标。 8. 分析结果:测试结束后,你可以使用监听器或导出结果文件来分析测试结果。JMeter 提供了多种监听器和报告生成选项,以便你查看和分析性能数据。 以上是一般的 JMeter 性能测试流程,你可以根据具体的测试需求和场景进行配置和调整。希望对你有所帮助!如果有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值