性能测试工具LoadRunner —— 性能测试流程及结果分析

性能测试目的

  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

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或代码并修改。
  • 系统架构分析:风险较大。(一般由架构师执行)

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)

机器学习笔记之最优化理论与方法——基于无约束优化问题的常用求解方法[上] 引言总体介绍回顾:线搜索下降算法收敛速度的衡量方式线性收敛范围高阶收敛范围 二次终止性朴素算法:坐标轴交替下降法最速下降法(梯度下降法)梯度下降法的特点 针对最速下降法缺…

不关闭Tamper Protection(篡改保护)下强制卸载Windows Defender和安全中心所有组件

个人博客: xzajyjs.cn 背景介绍 由于微软不再更新arm版本的win10系统,因此只能通过安装insider preview的镜像来使用。而能找到的win10 on arm最新版镜像在安装之后由于内核版本过期,无法打开Windows安全中心面板了,提示如下: 尝…

mysql技术文档--之与redo log(重做日志)庖丁解析-超级探索!!!

阿丹: 在刚开始写本文章的是还不太清楚要如何去细啃下这两个体系,在查阅资料的过程中。发现大厂阿里的庖丁解InnoDB系列,详细了的写了很多底层知识,于是基于这个这两个文章才有了阿丹的这篇文章。 整体认知: 在 MySQ…

分享一个python基于数据可视化的智慧社区服务平台源码

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、Node.js、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! &#x1…

AI项目六:WEB端部署YOLOv5

若该文为原创文章,转载请注明原文出处。 一、介绍 最近接触网页大屏,所以就想把YOLOV5部署到WEB端,通过了解,知道了两个方法: 1、基于Flask部署YOLOv5目标检测模型。 2、基于Streamlit部署YOLOv5目标检测。 代码在…

GPT 内部 — I : 了解文本生成

年轻的陀思妥耶夫斯基被介绍给生成AI,通过Midjourney创建 一、说明 我经常与不同领域的同事互动,我喜欢向几乎没有数据科学背景的人传达机器学习概念的挑战。在这里,我试图用简单的术语解释 GPT 是如何连接的,只是这次是书面形式。…

Windows安装Neo4j

图数据库概述 图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论(它以图为研究对象图论中的图是由若干给定的点及连接两点的线所构成的图形)为基础的, 图数据库主要用于存储更多的连接数据。 Neo…

Java集合(Collection、Iterator、Map、Collections)概述——Java第十三讲

前言 本讲我们将继续来讲解Java的其他重要知识点——Java集合。Java集合框架是Java编程语言中一个重要的部分,它提供了一套预定义的类和接口,供程序员使用数据结构来存储和操作一组对象。Java集合框架主要包括两种类型:一种是集合(Collection),存储一个元素列表,…

C++【C++学习笔记_Wang】

时间进度C是什么?多态什么是多态?生活中的多态C中的多态 赋值兼容赋值兼容规则实现安全转换 时间进度 Day101 ok Day804 ok Day805 ok C是什么? C大部分包含C语言。 C完全兼容C语言。 C在C语言的基础上添加:封装、继承、多态…

Could not find artifact com.mysql:mysql-connector-j:pom:unknown

在 <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope> </dependency> 添加版本号 这里用的是8.0.33版本&#xff0c;输入5.0的版本依然会报错 我自身用的是5.0…

kubernetes(K8S)笔记

文章目录 大佬博客简介K8SDocker VS DockerDockerK8S简介K8S配合docker相比较单纯使用docker 大佬博客 Kubernetes&#xff08;通常缩写为K8s&#xff09;是一个用于自动化容器化应用程序部署、管理和扩展的开源容器编排平台。它的构造非常复杂&#xff0c;由多个核心组件和附加…

领域驱动设计:事件风暴构建领域模型

文章目录 事件风暴需要准备些什么&#xff1f;如何用事件风暴构建领域模型&#xff1f; 事件风暴是一项团队活动&#xff0c;领域专家与项目团队通过头脑风暴的形式&#xff0c;罗列出领域中所有的领域事件&#xff0c;整合之后形成最终的领域事件集合&#xff0c;然后对每一个…

【PowerQuery】Excel 一分钟以内刷新PowerQuery数据

当需要进行刷新的周期如果小于一分钟,采用数据自动刷新就无法实现自动刷新的目标。那就没有办法了吗?当然不是,这里就是使用VBA来实现自动刷新。这里实现VBA刷新的第一步就是将当前的Excel 保存为带有宏的Excel 文件,如果不带宏则无法运行带有宏代码的Excel文件,保存过程如…

数据结构与算法(一)数组的相关概念和底层java实现

一、前言 从今天开始&#xff0c;笔者也开始从0学习数据结构和算法&#xff0c;但是因为这次学习比较捉急&#xff0c;所以记录的内容并不会过于详细&#xff0c;会从基础和底层代码实现以及力扣相关题目去写相关的文章&#xff0c;对于详细的概念并不会过多讲解 二、数组基础…

分析udev自动创建设备结点的过程

当系统内核发现系统中添加了某个新的设备时&#xff0c;在内核空间中会对该驱动进行注册&#xff0c;并获取该驱动设备的信息&#xff0c;然后创建一个设备类&#xff08;向上提交目录信息&#xff09;&#xff0c;并申请struct class对象并且初始化&#xff0c;然后创建一个设…

SpringCloud:Feign实现微服务之间相互请求

文章目录 &#x1f389;欢迎来到Java学习路线专栏~SpringCloud&#xff1a;Feign实现微服务之间相互请求 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系列文章专栏&#xff1a;Java学习路线&#x1f4dc;其他专栏&#xf…

2023大数据面试总结

文章目录 Flink&#xff08;SQL相关后面专题补充&#xff09;1. 把状态后端从FileSystem改为RocksDB后&#xff0c;Flink任务状态存储会发生哪些变化&#xff1f;2. Flink SQL API State TTL 的过期机制是 onCreateAndUpdate 还是 onReadAndWrite&#xff1f;3. watermark 到底…

使用IntelliJ IDEA本地启动调试Flink流计算工程的2个异常解决

记录&#xff1a;471 场景&#xff1a;使用IntelliJ IDEA本地启动调试Flink流计算时&#xff0c;报错一&#xff1a;加载DataStream报错java.lang.ClassNotFoundException。报错二&#xff1a;No ExecutorFactory found to execute the application。 版本&#xff1a;JDK 1.…

【Java基础篇 | 类和对象】--- 聊聊什么是内部类

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 前言 当一个事物的内部&…

Shell编程之定时任务

什么是定时任务 顾名思义&#xff0c;定时任务指的就是在指定/特定的时间进行工作&#xff0c;例如备份/归档数据、清理临时文件等。 在 Linux 中&#xff0c;可以使用 cron 定时器来定期执行任务。cron 是一个在后台运行的守护进程&#xff0c;用于根据指定的时间表自动执行任…