LoadRunner学习:RuntimeSetting、参数化、关联、(unfinished

在这里插入图片描述

LoadRunner RuntimeSetting

运行时设置
在Vuser中设置Run-time Settings
在这里插入图片描述

  • RunLogic:运行逻辑,决定了脚本真正执行逻辑, Init和End部分代码只能执行一次。决定脚本真正执行逻辑的意思是,在Run中的代码和Number of Iteration决定了真正运行的代码和迭代次数。在properities中可以选择Run中Action是顺序执行还是随机执行(如果随机执行可以自行配置每个Action中的概率。
    在这里插入图片描述
    讲讲insert block 块技术,可以单独控制每个块的迭代次数。下述示例图中即为Block1中Action1执行2次,Block0中Action2执行1次,整个Run再执行2次
    在这里插入图片描述
  • Pacing(步长):迭代间规则
    默认:as soon as…: 每次迭代无间隔时间
    After…:上次迭代结束后,再下次迭代开始之前,会有个等待时间
    at…从上次迭代开始到本次迭代开始的时间

为什么需要设置pacing?⭐️

评价一个系统的性能,需要从两个视角去看待:客户端视角和服务器视角即用户视角和系统视角。
有下述性能需求:“要去系统的事务处理能力达到100个/秒”
当LoadRunner模拟客户端向服务器发出请求,必须等待服务器对这个请求做出响应,并且收到响应之后,才会重新发出新的请求,而服务器对请求的处理是需要一个时间的,
即对每个虚拟用户来说,它对服务器发出请求的频率将依赖于服务器对这个请求的处理时间,而处理时间是不可控的。如果我们想要在测试过程中维持一个稳定的每秒请求数RPS,只有一个方法,就是通过增加并发用户数的数量来达到这个目的。

而在测试中,通常会对场景设置一个持续运行时间(多次迭代),通过多个事务的取样平均值来保证测试结果的准确性,即测试场景是以迭代的方式进行的。

如果不设置pacing,那么对于每个虚拟用户来说,每一个发到服务器的请求得到响应之后,就马上发送下一次请求。而LR中当客户将请求发出去之后,就开始计算响应时间,一直到收到响应。
这时,如果服务器处于忙碌状态,那么心情求就会驻留在服务器的线程中,并没有对服务器端产生真正的负载,这样这个计时就会变长,失去真正意义。

为了解决这个问题,我们可以在每两个请求之间插入一个间隔时间,降低单个用户启动请求的速度。间歇会减少请求在线程中驻留的时间,从而提供更符合现实的响应时间。

虽然性能测试通常从客户端活动的角度定义,但是应该以服务器为中心的视角看待。因此需要强调做性能测试的时候要保证一个独立、干净的测试环境,以及一个稳定的网络。要评价软件系统真正的性能,所以必须排除其他一切因素对系统性能造成的影响。

  • think time:思考时间,模拟用户的等待时间

在这里插入图片描述
假设每个做完整个操作需要5s,做完之后停顿5s,思考如果要达到每分钟有6000个在线用户,共10台服务器,需要多少个虚拟用户?
-----> 一个用户操作加等待需要10s,即一个用户一分钟可以迭代6次,一次迭代对应两次web_url()请求,即一分钟12次请求
那么6000/12 = 500; 500/10 = 50个用户。

  • 日志
  • 附加参数:自定义一些参数,再在脚本中传值
    如下为设置和使用示例:
    在这里插入图片描述

在这里插入图片描述

  • 线程模式/进程模式
  • 模拟网速

参数化与其他脚本增强技术

  • 参数化:实现不同用户的不同请求,逻辑相同,数据不同的操作。
  • 关联:用来解决请求之间的依赖
  • 事务:用来度量操作的响应时间以及最终TPS
  • 检查点:用来判断脚本是否成功
  • 思考时间:模拟用户延迟,调节负载压力
  • 集合点:模拟用户并发,是用来实现严格的并发

select next row:

  • 顺序取值
  • 随机取值
  • 唯一取值

update:

  • 每次迭代:
  • 每次出现:
  • 仅一次:

在这里插入图片描述

关联技术

解决请求之间的依赖。
在测试工具中,关联就是把某些写死的数据编程来自服务器的、动态的、每次不一样的数据 动态保存下来,然后在调用的地方调用即可
需要做关联处理的特征:

  • 关联数据一定是来源于服务器的响应
  • 关联数据一定要在后面的请求中被用到
  • 关联数据一定是动态变化的

在LR中,关联的方式分为自动和手动两种

  • 自动:
    • 录制关联(没用
    • 回放管理:理论上同样是对比法(慎用 成功率低
  • 手动:根据关联产生的原因,关联数据特征,以及业务熟悉程度来完成先存侯勇的操作
    • 对比法
    • 追溯法:依据关联的特征、数据特征逆向完成

手动关联的步骤:
1 找出出错的请求:
2 设置关联

todotodo


手动编写脚本 占坑
场景与结果分析 占坑

jmeter复习 占坑

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

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

相关文章

灵魂指针,教给(三)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看,已成习惯 创作不易,多多支持! 目录 一、 字符指针变量 二、数组指针变量 2.1 数组指针变量是什么 2.2 数组指针变量如何初始化 三、二维数组传参本质 四、函数…

Redis + Caffeine = 王炸!!

在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。 随着不断的发展,这一架构也产生了改进,在…

Selenium控制已运行的Edge和Chrome浏览器(详细启动步骤和bug记录)

文章目录 前期准备1. 浏览器开启远程控制指令(1)Edge(2)Chrome 2. 执行python代码(1)先启动浏览器后执行代码(2)通过代码启动浏览器 3. 爬取效果3. 完整代码共享3.1 包含Excel部分的…

【数据结构】初识二叉搜索树(Binary Search Tree)

文章目录 1. 二叉搜索树的概念2. 二叉搜索树的操作1.1 二叉搜索树的查找1.2 二叉搜索树的插入1.3 二叉搜索树的删除 1. 二叉搜索树的概念 二叉搜索树又称二叉排序树,它可能是一棵空树,也可能是具有以下性质的二叉树: 若它的左子树不为空&am…

力扣L5----- 58. 最后一个单词的长度(2024年3月11日)

1.题目 2.知识点 注1: lastIndexOf()它用于查找指定字符或子字符串在当前字符串中最后一次出现的位置。它的作用是从字符串的末尾向前搜索指定字符或子字符串,并返回其最后一次出现的位置的索引。 (1)例如,在字符串 …

Rust入门:C++和Rust动态库(dll)的相互调用

无论是C调用Rust动态库还是Rust调用C动态库,其操作基本都是一样地简单,基本和C调用C的动态库没什么区别,只需要列出所需要导入的函数,并链接到相应的lib文件即可。 这里,在windows中,我们以dll动态库为例说…

OpenCV学习笔记(一)——Anaconda下载和OpenCV的下载

OpenCV是图象识别中有巨大的应用场景,本篇文章以Python为基础。当初学OpenCV的时候,推使用在Anaconda编写代码,原因比较方便,下面我们对于Anaconda的下载过程进行演示。 Anaconda的下载 首先打开官网www.anaconda.com/download找…

数据结构---C语言栈队列

知识点: 栈: 只允许在一端进行插入或删除操作的线性表,先进后出LIFO 类似一摞书,按顺序拿,先放的书只能最后拿; 顺序栈:栈的顺序存储 typedef struct{Elemtype data[50];int top; }SqStack; SqS…

设计模式-行为型模式-模版方法模式

模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。[DP] 模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。 //首…

【Leetcode每日一题】 位运算 - 面试题 01.01. 判定字符是否唯一(难度⭐)(33)

1.题目解析 题目链接:面试题 01.01. 判定字符是否唯一 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 核心在于判断题目所给字符串是否存在相同字母,存在返回false即可,不存在返回true即可。 …

Caffeine缓存

本地缓存基于本地环境的内存,访问速度非常快,对于一些变更频率低、实时性要求低的数据,可以放在本地缓存中,提升访问速度 使用本地缓存能够减少和Redis类的远程缓存间的数据交互,减少网络 I/O 开销,降低这…

08 聚合函数

聚合函数 我们上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类,叫做聚合(或聚集、分组)函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。 1.聚合函数介绍 什么是聚合函…

for、while、do...while循环的使用

本篇文章只记录for、while、do...while循环的使用&#xff0c;由于java循环较为简单&#xff0c;所以直接上代码。 1、for循环 需求&#xff1a;循环遍历求和 1-100。 public class Demo {public static void main(String[] args) {int sum 0;for (int i 1; i < 100; i…

YOLOv5目标检测学习(4):YOLOV5源码的文件结构解析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言①py、cpp、java后缀的文件②md、txt、yml后缀的文件③yaml后缀的文件 一、.github文件夹1.1 workflows文件夹&#xff1a;该文件夹通常包含GitHub Actions 的工…

RHEL9 DNF/YUM仓库管理软件包

DNF/YUM仓库管理软件包 一个基于RPM包的软件包管理器能够从指定的服务器自动下载RPM包并且安装&#xff0c;自动处理依赖性关系&#xff0c;并且一次性安装所有依赖的软件包C/S模式 Server服务端提供RPM软件包与数据库文件repodataClient客户端使用dnf仓库 常用组合 组合参…

解决Klipper下位机ID获取失败问题

使用硬件&#xff1a; 上位机&#xff1a;必趣派&#xff0c;版本CB1_Debian11_Klipper_kernel5.16_20230303 下位机&#xff1a;八爪鱼STM32F407 问题&#xff1a;上位机获取下位机ID失败。 解决&#xff1a;咨询DIY群友&#xff0c;也对这个问题不太了解。我调试过程中&…

Python 导入Excel三维坐标数据 生成三维曲面地形图(面) 4-1、线条平滑曲面(原始图形)

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata fro…

【vivado】 clock wizard 时钟IP

一、前言 MMCM和PLL是在FPGA设计中不可避免需要使用到的时钟资源&#xff0c;对于其功能及使用方法的理解是正确进行FPGA设计的前提。 二、Xilinx 时钟 IP配置 vivado中使用时钟向导(Clocking Wizard)配置时钟IP核&#xff0c;其框图如下&#xff1a; clk_in 输入时钟&#…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的的商品标签识别系统(Python+PySide6界面+训练代码)

摘要&#xff1a;开发商品标签识别系统在提升零售业运营效率和顾客购物体验中发挥着关键作用。本篇博客详细阐述了如何应用深度学习技术构建此类系统&#xff0c;并提供了完整的代码实现。该系统基于高效的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5进行了性能对比&…

*Javaweb -- MyBatis*

一:介绍: 1.MyBatis是一个优秀的 ①持久层 ②框架,用于简化JDBC的开发! ①:JAVAEE有三层的结构:表现层, 业务层, 持久层. 表现层代表的是页面的展示,业务层则指的是对于相关逻辑的处理, 而持久层, 指的则是对于数据进行持久化,保存在数据库当中. 持久层具体的来说就是负责…