[LoaderRunner] 关于LoaderRunner的基本使用

LoadRunner环境搭建

LoadRunner运行的环境参考以下文档:
Docs

介绍LoadRunner

LoadRunner是什么

LoadRunner是性能测试工具,对软件或者系统的性能进行评估

为什么使用LoadRunner

LoadRunner具有以下的优势:

LoadRunner相比于其他的测试工具,有非常强大的脚本录制功能

LoadRunner能够设计出非常丰富的测试场景

LoadRunner能够产出非常丰富的测试报告

LoadRunner三大组件之间的关系

 VUG:用来录制和编写脚本

Controller:用来设计脚本的运行场景

Analysis:产生性能测试报告

LoadRunner脚本录制

我们使用LoadRunner中自带的WebTours参与脚本录制:

 

双击

 按照以上操作打开WebTours

打开VUG,使用VUG创建新的文件

 

 在开始录制之后我们在WebTours网页上进行登录操作,登录之后结束录制即可

 结束之后运行脚本查看结果:(未报错)

Action中的代码如下:

Action()
{//开启事务1lr_start_transaction("Login");web_url("WebTours", "URL=http://192.168.52.1:1080/WebTours/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t3.inf", "Mode=HTML", LAST);web_submit_form("login.pl", "Snapshot=t4.inf", ITEMDATA, "Name=username", "Value=chentong", ENDITEM, "Name=password", "Value=123456", ENDITEM, LAST);//结束事务1lr_end_transaction("Login", LR_AUTO);return 0;
}

LoadRunner脚本加强

LoadRunner的脚本加强主要从以下四个方面进行考虑

事务:衡量性能的重要指标,通过观察每秒事务通过数来衡量系统性能
集合点:让所有的虚拟用户执行到集合点时暂停向下执行,等待全部虚拟用户执行到集合点之后一起执行下一个步骤(保证每一个虚拟用户同时执行下一步)
检查点:可以用来检测当前页面的元素是否存在以及存在个数(注册类型的检查点一般放在加载内容之前,注册类型的函数放在检查点之后可能会报错)
参数化:通过提供的数据源可以实现多组参数逐个执行

具体实现如下:

插入事务

事务:这里的事务指的是系统业务的操作集合

对应的函数:

事务的插入方式:

找出函数并进行插入

 在合适的位置鼠标右键进行快捷方式的插入

在脚本录制过程中进行事务的插入  

 

事务的插入需要注意几个点:

事务有开始必须有结束,必须成对出现

事务处理过程不能插入思考时间,如果加入了思考时间,事务的响应时间就不准确了

事务的开始名称和结束名称必须相同

插入集合点

集合点的目的:在LoadRunner中为了实现并发,通常采用集合点达到这个目的

如何插入集合点?
直接在你想插入集合点的位置利用函数插入即可

插入检查点

直接利用函数在合适的位置插入即可

参数化

 

另外还需要打开拓展日志才能看到用户登录的状态

Controller和Analysis

Controller

打开方式

一般情况下我们直接在VUG中打开Controller即可

 

设置测试场景

运行测试场景

 直接运行脚本即可

 观察对应的运行结果

我们观察到系统资源中没有任何数据,我们需要在计算机服务中进行部分设计

 将这两项运行

鼠标右键调整设置

对应的数据如下:

Analysis

 虚拟用户

通过观察虚拟用户,判断哪个时间段服务器负载最大 

每秒点击数

通过每秒点击数,判断服务器负载 

吞吐量

事务总结

平均事务响应时间

问题一:为什么吞吐量图和点击数图相似,但是吞吐量图要滞后一点?

因为吞吐量表示的是响应返回的资源数量,肯定是现有请求再有返回。
问题二:如果请求变多但是吞吐量没变化,原因是什么?

服务器响应太慢,来不及反应;
压力没有到服务器;
服务器设计一定的阈值(到达阈值以后,虽然也收到了请求,但是服务器不会做任何处理),保证了服务器不会因为并发量过大而出现宕机的情况;

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

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

相关文章

【高中数学之函数】四种幂函数图线(二次、三次、开方、开立方)

【图像】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>UNASSIGNED</title><style type"text/css">.c…

数字传输系统的演变与应用

引言 在现代通信网络中&#xff0c;数字传输系统扮演着至关重要的角色。本文将用简单易懂的语言&#xff0c;向初学者介绍PCM速率体制、SONET/SDH以及光网络&#xff0c;让大家更好地理解这些技术。 2.5.1 PCM速率体制 数字传输系统简介 在早期电话网络中&#xff0c;用户电话…

[个人感悟] 消息队列应该考察哪些问题?

前言 消息队列. 不论是Java内部提供的LinkedBlockingQueue, 还是当下主流的中间件RabbitMQ, Kafka, RockMQ. 其本质上都是一个削峰填谷的工具. 我们都知道, 请求和流量都有可能瞬间很高, 或者很低. 所以, 很多时候, 我们需要请求存储起来, 或者使用异步的方式, 来匀速的处理过…

【C++】类和对象(中)--下篇

个人主页~ 类和对象上 类和对象中-上篇 类和对象 五、赋值运算符重载1、运算符重载2、赋值运算符重载3、前置和后置重载 六、const成员七、日期类的实现Date.hDate.cpptest.cpptest1测试结果test2测试结果test3测试结果test4测试结果test5测试结果test6测试结果test7测试结果 八…

基于Java+SpringMvc+Vue技术智慧校园系统设计与实现--60页及以上论文参考

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

8、Redis 的线程模型、I/O 模型和多线程

Redis 的线程模型、I/O 模型和多线程 1. Redis 的线程模型 Redis 以其高效的单线程模型著称&#xff0c;从设计之初&#xff0c;Redis 就选择了单线程模式&#xff0c;这在很大程度上简化了其内部实现和维护。单线程模式避免了多线程编程中常见的竞争条件和锁机制问题&#x…

Linux Bridge - Part 2

概览 在前一篇文章中&#xff0c;我描述了Linux 网桥&#xff08;bridge&#xff09;的配置&#xff0c;并展示了一个实验&#xff0c;其中使用Wireshark来分析流量。在本文中&#xff0c;我将讨论当创建一个网桥时会发生什么&#xff0c;以及Linux 网桥&#xff08;bridge&am…

C++初学者指南-4.诊断---valgrind

C初学者指南-4.诊断—Valgrind Valgrind&#xff08;内存错误检测工具&#xff09; 检测常见运行时错误 读/写释放的内存或不正确的堆栈区域使用未初始化的值不正确的内存释放&#xff0c;如双重释放滥用内存分配函数内存泄漏–非故意的内存消耗通常与程序逻辑缺陷有关&#xf…

Java版Flink使用指南——将消息写入到RabbitMQ的队列中

大纲 新建工程新增依赖 编码自动产生数据写入RabbitMQ 测试 在 《Java版Flink使用指南——从RabbitMQ中队列中接入消息流》一文中&#xff0c;我们介绍了如何使用Java在Flink中读取RabbitMQ中的数据&#xff0c;并将其写入日志中。本文将通过代码产生一些数据&#xff0c;然后…

Vine: 一种全新定义 Vue 函数式组件的解决方案

7月6日的 vue confg 大会上 ShenQingchuan 大佬介绍了他的 Vue Vine 项目&#xff0c; 一种全新定义 Vue 函数式组件的解决方案。 和 React 的函数式组件有异曲同工之妙&#xff0c;写起来直接起飞了。 让我们来快速体验一下 vine&#xff0c; 看看到底给我们带来了哪些惊喜吧…

分别通过LS和RML进行模型参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 最小二乘法(LS)参数辨识 4.2 递归最大似然估计(RML)参数辨识 5.完整程序 1.程序功能描述 分别通过LS和RML进行模型参数辨识matlab仿真&#xff0c;仿真输出参数辨识的误差&#xff0c…

网络基础:BGP协议

BGP&#xff08;边界网关协议&#xff0c;Border Gateway Protocol&#xff09;是一种用于在不同自治系统&#xff08;Autonomous Systems&#xff0c;AS&#xff09;之间交换路由信息的路径向量协议。BGP是互联网的核心路由协议之一&#xff0c;负责管理和维护互联网范围内的路…

MySQL安全加固及等保测评

登录后复制 Mysql基础命令 create USER new_userlocalhost IDENTIFIED BY password; //创建用户 alter user root% identified with mysql_native_password by ********; //修改密码 rename user root% to root192.168.1.1; //重命名 flush privileges; …

Java面试题--JVM大厂篇之深入解析G1 GC——革新Java垃圾回收机制

目录 引言: 正文&#xff1a; 一、G1 GC的区域划分及其作用 1. 伊甸园区&#xff08;Eden Region&#xff09; 2. 幸存者区&#xff08;Survivor Region&#xff09; 3. 老年代区&#xff08;Old Generation Region&#xff09; 二、区域划分的优势: 三、图片解析: 结…

昇思25天学习打卡营第20天|LSTM+CRF序列标注

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) LSTMCRF序列标注 概述 序列标注指给定输入序列&#xff0c;给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取&#xff0c;包括分词(Word Segmentation)、词性标…

Python | Leetcode Python题解之第220题存在重复元素III

题目&#xff1a; 题解&#xff1a; class Solution(object):def containsNearbyAlmostDuplicate(self, nums, k, t):from sortedcontainers import SortedSetst SortedSet()left, right 0, 0res 0while right < len(nums):if right - left > k:st.remove(nums[left]…

D - Go Stone Puzzle(abc361)

分析&#xff1a;因为n很小&#xff0c;可以逐一搜索&#xff0c;用一个队列将每种情况列出来&#xff0c;用bfs寻找从s到t的最短路径 #include <bits/stdc.h> using namespace std; int n; string s, t; map<string, int> dis; void bfs() { dis[s] 0; …

RocketMQ NettyRemotingServer、NettyRemotingClient 实例化、初始化、启动源码解析

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任后端开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&#…

【5G VoNR】VoNR流程简述

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

go-redis源码解析:如何实现sentinel高可用

go-redis里&#xff0c;sentinel只用来获取master和从节点的ip地址&#xff0c;在获取master和replica节点ip时&#xff0c;如果sentinel不可用&#xff0c;那么会换其他的sentinel重试&#xff0c;并将可用的sentinel换到第一个 1. 用于获取master节点 先通过读锁获取c.senti…