超级武器!深入LoadRunner性能测试流程及极速分析结果!

news2024/9/24 18:53:09

性能测试目的

  1. 什么是性能测试?

性能测试是通过性能的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

性能测试分类及术语

  1. 测试分类
  • 负载测试(Load Testing):

负载测试是指在一定的软件、硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承载的最大用户数、最大有效用户数,以及不同用户数下的系统响应时间及服务器的资源利用率。

  • 压力测试(Stress Testing):

压力测试是指在一定的软件、硬件及网络环境下,模拟大量的虚拟用户向服务器产生负载,是服务器资源处于极限状态下并长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。与负载测试获得峰值性能数据不同,压力测试强调在极端情况下系统的稳定性,此时处理能力已经不重要了。

  1. 专业术语
  • 场景(Scenario):

场景即测试场景。在LoadRunner的Controller部件中,可以设计与执行用例的场景,设置场景的步骤主要包括:在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器(Load Generator)、设置执行时间等。

  • 负载发生器(Load Generator):

用来产生压力的机器,受Controller控制,可以使用户脚本在不同的主机上执行。在性能测试工作中,通常由一个Controller控制多个Load Generator以对被测试系统进行加压。

  • 虚拟用户(Virtual User/Vuser):

对应于现实中的真实用户,使用LoadRunner模拟的用户称为虚拟用户。性能测试模拟多个用户操作可以理解为:这些虚拟用户在跑脚本,以模拟多个真正用户的行为。

  • 虚拟用户脚本(Vuser script):

通过Vuser Generator录制或开发的脚本。这些脚本用来模拟用户的行为。

  • 事务(Transaction):

测试人员可以将一个或多个操作步骤定义为一个事务,可以通俗的理解事务为"人为定义的一系列请求(请求可以是一个或者多个)"。在程序上,事务表现为被开始标记和结束标记圈定的一段代码区块。Loadrunner根据事务的开头和结尾标记,计算事务响应时间、成功/失败的事务数。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

LoadRunner三大组件

  1. Loadrunner安装

Loadrunner安装破解可以需要大家去自行解决,搜索可以解决任何问题!

  1. Loadrunner组成

  • VuGen(虚拟用户生成器):用于录制系统性能测试脚本或者手动创建编写性能测试脚本。
  • Controller (控制器):用于组织、驱动、管理和监控负载测试。
  • Analysis (分析器):用于查看、分析和比较性能结果。
  1. 性能测试工作流程

【制定测试计划】=>【创建测试脚本】=>【设计测试场景】=>【执行测试场景】

=>【分析测试结果】=>【系统性能调优】

  • 制定测试计划方案:确定测试要求,如并发用户数量、典型业务场景流程;测试计划等。
  • 创建Vuser脚本:使用Virtual User Generator录制、手动编写测试脚本。
  • 设计测试场景:使用LoadRunner Controller 设置测试场景。
  • 执行场景:使用LoadRunner Controller 驱动、管理并监控场景的运行。
  • 分析测试结果:使用LoadRunner Analysis 生成报告和图表并评估性能。

创建测试脚本

  1. 录制测试脚本

以CRMEB Pro测试为例

  1. 测试脚本调试

  1. 脚本参数化

  1. 关联变量

例如:"token":"
1JYPO_yuDuqlSa5Gd9gnUBm4ShhmEKYSCohcnc6sNNw"获取token值

  1. 检查点设置

设置场景运行脚本

  1. 运行测试场景

Controller控制台场景执行图,各部分图数展示:

分析测试结果

  1. 性能指标

TPS:Transaction per second 指应用系统每秒钟处理完成的交易数量,是估算应用系统性能的重要依据。一般而言,评价系统性能均以每秒完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。

HPS:Hit per second 每秒点击次数指一秒钟的时间内用户对web页面的链接、提交按钮等点击总和。HPS一般与 TPS成正比关系,是B/S系统中非常重要的性能指标之一。

事务响应时间:Transaction Response Time 指脚本中开始到结束的脚本测试过程中的响应时间。

资源利用率:资源利用率是指系统在负载运行期间,数据库服务器、应用服务器、web服务器的CPU、内存、硬盘、外置存储,网络带宽的使用率。

  1. 结果分析

通过执行场景得到结果的相关数据:TPS、响应时间、CPU、IO等。根据性能测试方案中提到的性能指标,确认结果是否符合要求。不符合则需要找到性能瓶颈并优化。

  • 配置项检查:中间件活跃线程数、JVM相关内存分配、数据库连接池等
  • 硬件资源:增加CPU、内存等硬件资源(资源不够情况下)以及增加服务器数量
  • SQL语句以及代码分析:通过分析SQL和代码,找出逻辑复杂执行效率低的SQL或代码并修改。
  • 系统架构分析:风险较大。(一般由架构师执行)

END今天的分享就到此结束了,点赞关注不迷路!

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

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

相关文章

竞赛选题 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 🔥 优…

Selenium实现多页面切换

当使用 Selenium 进行自动化测试或爬取数据时,有时需要处理多个页面之间的切换。以下是一些可能需要多页面切换的情况: 1、打开新窗口/页面: 在当前页面上点击链接、按钮或执行某些操作时,可能会打开一个新的窗口或页面。此时&a…

机器学习实战-第4章 基于概率论的分类方法: 朴素贝叶斯

朴素贝叶斯 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。本章首先介绍贝叶斯分类算法的基础——贝叶斯定理。最后,我们通过实例来讨论贝叶斯分类的中最简单的一种: 朴素贝叶斯分类。 贝叶斯理论 & 条件概率 贝叶斯理论 …

反转链表系列问题

反转链表系列问题 作者:Grey 原文地址: 博客园:反转链表系列问题 CSDN:反转链表系列问题 反转单链表 题目描述见:LeetCode 206. Reverse Linked List 思路如下 对于任何一个节点 cur 来说,记录一个…

每日一题(LeetCode)----链表--两数相加

每日一题(LeetCode)----链表–两数相加 1.题目(2. 两数相加) 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返…

java飞翔的鸟

一.准备工作 首先创建一个新的Java项目命名为“飞翔的鸟”,并在src中创建一个包命名为“com.qiku.bird",在这个包内分别创建4个类命名为“Bird”、“BirdGame”、“Column”、“Ground”,并向需要的图片素材导入到包内。 二.代码呈现 p…

Unity中Shader的Standard材质解析(一)

文章目录 前言一、在Unity中,按一下步骤准备1、在资源管理面板创建一个 Standard Surface Shader2、因为Standard Surface Shader有很多缺点,所以我们把他转化为顶点片元着色器3、整理只保留主平行光的Shader效果4、精简后的最终代码 前言 在Unity中&am…

Linux:文件系统初步理解

文章目录 文件的初步理解C语言中对文件的接口系统调用的接口位图的理解open调用接口 文件和进程的关系进程和文件的低耦合 如何理解一切皆文件? 本篇总结的是关于Linux中文件的各种知识 文件的初步理解 在前面的文章中有两个观点,1. 文件 内容 属性&…

MySQL数据库约束你真的懂吗?

✏️✏️✏️今天给各位带来的是关于数据库约束方面的知识 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! 动动你们发财的小手,点点关…

浅谈 JVM GC 收集器--系列(一)

又到一年大促时刻,今天我们一起探讨下JVM垃圾回收的问题,写代码的时候想一想如何减少FullGC问题的出现,因为一旦出现频繁FullGC,短时间内没有太好的解决办法,很有可能重启后服务接着FullGC,导致服务可用率降…

Vue3 + Vite + TSX + vue3-ace-editor 踩坑

前言 由于 ace-editor 官网并没有提供各个前端框架Vue,React,Angular的直接使用的适配版本, 所以本次使用的vue3-ace-editor 是个人开源者维护的版本,原生是支持 SFC 模版用的,由于我这里习惯使用 JSX 或 TSX的方式&a…

NSGA-III求解微电网多目标优化调度(MATLAB)

一、NSGA-III简介 NSGA-III算法由Kalyanmoy Deb和Himanshu Jain于 2014年提出。 参考文献:Deb K , Jain H . An Evolutionary Many-Objective Optimization Algorithm Using Reference Point-Based Nondominated Sorting Approach, Part I: Solving Problems With …

Keil Vision5—新建工程project

注意:创建的工程目录必须是纯英文目录 目录 1.开始配置 2.为该路径下新建个文件夹 3.选择器件 4.工程配置 4.右击魔术棒,设置参数 ​编辑 (1)target配置 (2)output配置 (3)c…

Springboot集成swagger之knife4j

knife4j的最终效果&#xff1a; 支持直观的入参介绍、在线调试及离线各种API文档下载。 1 引入pom <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</ver…

unity3d人物移动一段距离漂移/卡住/卡在最后一帧,站立状态没有动画

在idle1.fbx中动画机选择循环播放&#xff0c;人物静止时播放休闲动画&#xff0c;移动时不停播放run动画

OpenStack云计算平台-认证服务

目录 一、认证服务概览 二、安装和配置 1、先决条件 2、安全并配置组件 3、 配置 Apache HTTP 服务器 4、完成安装 三、创建服务实体和API端点 1、先决条件 2、创建服务实体和API端点 四、创建域、项目、用户和角色 五、验证操作 六、创建 OpenStack 客户端环境脚本…

【理解ARM架构】操作寄存器实现UART | 段的概念 | IDE背后的命令

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《理解ARM架构》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f360;操作寄存器实现UART&#x1f35f;UART原理&#x1f35f;编程 &#x1f360;…

数据结构(超详细讲解!!)第二十四节 二叉树(下)

1.遍历二叉树 在二叉树的一些应用中&#xff0c;常常要求在树中查找具有某种特征的结点&#xff0c;或者对树中全部结点逐一进行某种处理。这就引入了遍历二叉树的问题&#xff0c;即如何按某条搜索路径访问树中的每一个结点&#xff0c;使得每一个结点仅且仅被访问一次。 …

Vue3 响应式数据 reactive使用

ref 与 reactive 是 vue3 提供给我们用于创建响应式数据的两个方法。 reactive 常用于创建引用数据&#xff0c;例如&#xff1a;object、array 等。 reactive 则是通过 proxy 来实现的响应式数据&#xff0c;并配合 reflect 操作的源对象。 reactive 创建引用数据&#xff1…

外汇天眼:外汇市场中的点差是什么? 又该怎么计算呢?

今天为大家揭开外汇点差的神秘面纱&#xff0c;了解这一外汇交易的核心概念。 定义 外汇点差&#xff0c;简单来说&#xff0c;就是外汇市场上买卖双方报价的差异。 每一笔交易由买卖报价中高低不同的部分构成&#xff0c;高出的部分是买方的盈利&#xff0c;低出的部分则是卖…