8性能测试

性能测试  jmeter  (大量用户)
效率分为   时间 (处理请求)  资源(占用cpu  内存  磁盘)

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


性能测试的目的是什么?
1评估当前系统能力
- 例如: 验收第三方提供的软件
2.寻找性能瓶颈,优化性能
评估软件是否能够满足未来的需要


基准测试 单用户              平均(基准线)
负载测试  (如电梯最大承载量) 增加负载  看最大负载
稳定性测试   平常用户量  长时间测试(一天到一周)  看出问题不
关系       绿色 资源                 紫色   处理能力      最后面处理能力不行了                 蓝色  响应时间       最后面响应时间升高不行了
压力测试(分为极限负载系统崩溃 破坏性压力测试    和    长时间高负载  稳定性压力测试)   用户量超过预期   系统会咋样     有啥隐患   系统恢复能力 
并发测试  极端时间 发送多个请求如双十一  抢红包秒杀

性能测试指标
响应时间
并发数   同一时间  很多个人(具体)在请求!
吞吐量QPS  每秒最多处理多少个请求       
点击数(请求数)
错误率   在负载情况下    (和正确率相对)
资源利用率  (可用/总的) 

根据经验,资源指标通常要求:(1) CPU不高于75%-85%(2)内存不高于80%(3)磁盘IO不高于96号(4)网络不高于80%

性能测试流程
需求  计划   用例   执行   分析   总结

-------------------------------------------------------------------------------------------
主流性能测试工具  loadrunner   jmeter
jmter安装    安装jdk    安装jmter  

jdk文件目录  bin目录     bat启动文件       properties配置文件   
                      docs目录   jmter  api文档
                       lib     依赖的jar包(第三方包)

设置汉化、

各个元件的意思 取样器   逻辑控制器  前置  后置   配置元件  监听器
元件的作用域   作用域原则!!!!!!

   取样器无作用域   逻辑控制器对儿子取样器和逻辑控制器起作用
   其他    父亲是取样器    只对父亲生效                  否则  对这个父亲的其他子子孙孙都生效


元件的执行顺序!!!!

配置   前  取样  后    断言     监听   有多个 就从上到下

---------------------------------------------------------

jmeter参数化(重点)
本质:使用参数的方式来替代脚本中的固定的测试数据


jmeter组成部分
--------------------------------------------
  jmeter 参数化  
            定义变量  路径/S  文件定义   数据库   函数 
         csv  counter
某支付系统,需要用1000个不同的用户登录,并使用添加不同的测试金额数据访问支付接口?
登录用csv的数据     支付用counter函数传不同金额

---------------------------------------------------------
jmeter断言   返回和预期结果是否一样
(响应断言  json断言   时间断言)
---------------------------------------------------------
jmeter关联
方法有  正则表达式提取器(提取任意格式的响应数据)   xpath提取器(html)    json提取器

jmeter属性(跨线程组之间数据传递)   类似于全局变量  setproperty  property
线程组1: 请求获取天气的接口,!
http://www.weather.com.cn/data/sk/101010100.html
获取返回结果中的城市名称“北京”
线程组2: 请求: https://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数  debug sampler 独立运行先程序
----------------------------------------------------
jmeter录制脚本(用的很少)
什么时候需要使用JMeter录制脚本?
在没有接口文档的旧项目当中,通过录制http接口请求的方式,来快速编写接口测试脚本。
--------------------------------------------------------
jmeter直连数据库   数据库断言(重要)
直连数据库的使用场景
用作请求的参数化
清理垃圾数据
用作结果的断言

例如:登录时需要的用户名,可以从
数据库中查询获取
例如:添加购物车下订单,检查接口返回的订单号,是否与数据库中生成的订单号一致
准备测试数据

配置:添加mysql的jar包   jdbc connection configuration      jdbc request

----------------------------------------------------------------------------------------------------------------
jmeter逻辑控制器

if (只有if  没有else)  循环  forEach、
使用用户定义的变量定义一个变量name
name的值可以是baidu'或itcast2、根据name的变量值实现对应网站的访问


思考: 线程组属性可以控制循环次数,那么循环控制器有什么用?
控制的作用域不同: 线程组控制是线程组下的所有请求,循环控制器控制逻辑控制器下的所有请求
如果线程组循环次数为M,循环控制器循环次数为N:循环控制器下的HTTP请求运行: M*N次
。线程组下的其他HTTP请求运行: M次

forEach与正则表达式一起使用
访问传智播客首页http://www.itcast.cn,
获取首页中的地址信息,并全部保存下来
2、要依次取出地址关键字,并在百度搜索,
例如: https://www.baidu.com/s?wd=地t
----------------------------------------------------------------------------------------------------------------
jmeter定时器

同步定时器(并发)
如何模拟1w人同时进行电商网站中的抢购活动/秒杀活动?
synchronizing  timer  模拟100个人  线程数100    并发分别设置20/30  看聚合报告

常数吞吐量定时器(稳定性)
作用: 让JMeter按指定的吞吐量执行,以每分钟为单位
constant throughput   timer
模拟用户真实的业务场景要求: 20 QPS
如果线程数设置为1,则目标吞吐量设置为 20 * 60 = 1200如果线程数设置为2,则目标吞吐量设置为 20 * 60/2   600


固定定时器
(1)IHRM系统登录错误3次后,锁定1分钟,等待1分钟后重新输入正确的用户名密码登录成功
-----------------------------------------------------------------------------------------------------------------------
jmeter 分布式
在使用JMeter进行性能测试时
如果项目需要支持一万用户并发
但是单台电脑只能支持一千个用户并发该怎么处理?
JMeter分布式测试
  JMeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。
  执行时,控制机会把脚本发送到每台代理机上
  代理机拿到脚本后就开始执行,代理机执行时不需要启动JMeter界面,可以理解它是通过命令行模式执行的。
  执行完成后,代理机会把结果回传给控制机,控制机会收集所有代理机的信息并汇总。
-----------------------------------------------------------------------------------------------------------------------
jmeter聚合报告
作用:收集性能测试结束后,系统的各项性能指标。如:响应时间、并发数、吞吐量、错误率等

还可以生成html报告
-----------------------------------------------------------------------------------------------------------------------
jmeter并发数计算方法
稳定性测试时需要模拟用户真实负载量,真实负载量是多少?
压力测试时需要模拟高负载验证系统的容错能力,高负载有多高?


并发  二八原则   运营数据(稳定性)   峰值(早晚  压力测试)
-----------------------------------------------------------------------------------------------------------------------
jmeter性能监控

第三方插件下载  
可以阶梯加压
perfmon服务器资源监控
------------------------------------------------------------------------------------------------------


实战
设置请求默认值 协议 域名 端口 编码格式
http信息头   content-type
响应断言200
json断言成功


加入购物车提取token    json提取器
1脚本的编写
2构造环境  构造测试用户数据   准备sql语句(用pycharm):主要导入用户数据  导入商品数据
3  登录脚本 - 监控性能指标

---------------
性能调优分析:硬件         中cpu使用:用户使用的us(应用程序)     系统使用sy(操作系统)   空闲id
CPU高时,需要确认是用户CPU高还是系统CPU高。如果是用户CPU高,需要进一步分析对应的应用程序的执行效率是否有问题如果是系统CPU高,需要进一步观察其他的资源 (内存、)是否存在问题
mem(memory内存)  vmstat  虚拟vm status(  swap交换  si  import    so  output   交换写入  交换写出)

磁盘IO   iostat -x 1 1  磁盘的读写速度input  ouput     


网络带宽和宽带   1000M(bit)的宽带      /8   等于125M的带宽(Byte)   技术中用带宽来描述速率

  


 

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

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

相关文章

【infiniband】ibdump抓包

ibdump用于捕获和转储InfiniBand网络的流量。 这种工具通常用于调试和分析InfiniBand网络问题,包括性能瓶颈和配置错误。ibdump工具在Mellanox InfiniBand环境中较为常用,现由NVIDIA提供支持。 使用ibdump的基本步骤 请注意,您需要在安装了…

详解接口测试

目录 什么是接口? 接口协议的类型 接口测试是什么 HTTP接口的测试用例设计 HTTP接口的测试方法 什么是接口? 在面向对象编程中,接口是一个抽象的概念,用于定义类应该具有的方法和属性。一个类可以实现一个或多个接口&#xf…

【Jmeter】Jmeter基础8-Jmeter元件介绍之断言

断言主要用于对服务器响应的数据做验证。Jmeter提供了多个断言元件,其中最常用的是响应断言。 2.8.1、响应断言 作用:对Jmeter取样器返回值进行断言。参数说明: 测试字段 响应文本:从服务器返回的响应文本,Response B…

大数据云计算之OpenStack

大数据云计算之OpenStack 1.什么是OpenStack,其作用是什么?OpenStack主要的组成模块有哪些?各自的主要作用是什么? OpenStack是一个开源的云计算平台,旨在为企业和服务提供商提供私有云和公有云的建设和管理解决方案…

USB设备共享服务USB Redirector如何安装并结合内网穿透实现远程共享和访问USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序,它提供了共享和访问本地或互联网上的U…

排序算法(详解)

排序在日常生活中十分重要,购物平台上商品的排序,各国高校等级的排序......可以说,现代生活中已经离不开排序了;因此学好排序算法至关重要,本篇文章就来讲讲常见的排序算法 排序的种类非常多,按照种类划分&…

【常见的芯片及代表性产品】

常见的芯片种类 常见的芯片种类很多,涵盖了各种应用领域,从计算机和通信设备到嵌入式系统和消费电子产品。以下是一些常见的芯片类型: 中央处理单元(CPU): 代表产品:Intel Core系列、AMD Ryzen…

Linux: pwd命令查看当前工作目录

pwd 是 Linux 和其他类 Unix 操作系统中的一个命令,用于显示当前工作目录的绝对路径。 语法 pwd 描述 pwd 是 "print working directory" 的缩写,它用于打印当前工作目录的完整路径。这对于确定当前目录位置非常有用,特别是在嵌…

分割均衡字符串 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 均衡串定义:字符串只包含两种字符,且两种字符的个数相同。 给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。 约定字符串中只…

汇川SV660P伺服MODBUS通信设置回原

汇川伺服MODBUS-RTU通信的详细设置可以查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/134942690https://rxxw-control.blog.csdn.net/article/details/134942690首先我们介绍最简单的回原方式,就是以当前位置为原点回原,此时伺服电机不动作,绝对…

Layui实现自定义的table列悬停事件并气泡提示信息

1、概要 使用layui组件实现table的指定列悬停时提示信息&#xff0c;因为layui组件中没有鼠标悬停事件支持&#xff0c;所以需要结合js原生事件来实现这个功能&#xff0c;并结合layui的tips和列的templte属性气泡提示实现效果。 2、效果图 3、代码案例 <!DOCTYPE html&g…

智能优化算法应用:基于乌鸦算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于乌鸦算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于乌鸦算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.乌鸦算法4.实验参数设定5.算法结果6.参考文献7.MA…

vue2-安装elementUI时警告

警告内容&#xff1a;npm WARN deprecated core-js2.6.12: core-js<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up …

大数据性能测试方案-V1.0

XXX大数据平台 性能测试方案 [V1-1.0] 拟 制 人: 审 核 人: 批 准 人: [xxxx年xx月xx日]

微软免费开发隧道(内网穿透)服务

软件下载 Windows x64&#xff1a;https://aka.ms/TunnelsCliDownload/win-x64 macOS (arm64)&#xff1a;https://aka.ms/TunnelsCliDownload/osx-arm64-zip macOS (x64)&#xff1a;https://aka.ms/TunnelsCliDownload/osx-x64-zip Linux x64&#xff1a;https://aka.ms/…

漏电保护芯片——可直接驱动SCR,输出脉宽模式可选择。适用于交流110V~220V(50~60Hz)供电系统

D4140 D4145 D4147 D54123等芯片适用于交流110V~220V(50~60Hz)供电系统&#xff0c;用于检测AC型剩余漏电信号&#xff0c;可直接驱动SCR&#xff08;可控硅&#xff09;&#xff0c;当有漏电信号时&#xff0c;OS输出高电平延时脉冲&#xff0c;输出脉宽模式可选择。

ElasticSearch之cat templates API

命令样例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/templates?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下&#xff1a; name i…

shiro概述(二)基础组件

一、Realm&#xff1a; 1、介绍&#xff1a;在Shiro中&#xff0c;Realm是一个非常灵活和强大的安全组件&#xff0c;它能够与各种数据源进行集成&#xff0c;满足各种安全需求。通过实现自定义的Realm&#xff0c;可以轻松地定制身份验证、授权和加密逻辑&#xff0c;实现更加…

docker安装RabbitMQ3.8.34

&#x1f60a; 作者&#xff1a; 瓶盖子io &#x1f496; 主页&#xff1a; 瓶盖子io-CSDN博客 a.拉取rabbitmq镜像 docker pull rabbitmq:3.8.34-management b.根据镜像创建容器 在yml配置文件中port是5672 访问是ip:15672 docker run --name rabbitmq -d -p 5672:5672 -…

JavaScript如果实现一段文字的高亮显示

JavaScript实现将一段文字检索高亮显示,效果如下: 实现方法:调用highlight函数 highlight("JavaScript如果实现一段文字的高亮显示", "高亮")实战代码实现: function highlight(value, search)