【测试运维】性能测试经验文档总结第3篇:VuGen详解(已分享,附代码)

news2025/1/23 4:52:29

本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数...),性能测试工具选择。性能脚本:1. LoadRunner介绍,2. 脚本录制、运行、参数化,3. 关联、检查点、事务、集合点。性能场景:1. 场景分类、场景设计、场景运行策略,2. 资源监控、SLA、IP Wizard应用。性能分析:1. 摘要报告、事务图表、图表合并,2. 交叉结果、拐点分析、Web项目资源分析。

全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


共 5 章,25 子模块

性能测试工具-LoadRunner

学习目标

python 1. 理解基于VuGen的脚本录制 2. 掌握参数化的使用方法 3. 掌握关联的使用方法 4. 掌握检查点的使用方法 5. 掌握事务的使用方法 6. 掌握集合点的应用

VuGen操作

一、VuGen介绍

VuGen(Virtual User Generator)录制客户端和服务器之间的相关交互活动,它将自动生成相关模拟 实际情况的API(Application Programming Interface)函数。

python 提示: 1. LR录制脚本功能由于兼容性问题,非常不好使,所以我们平时在工作中也不建议使用录制的方式; 2. 由于兼容性问题和录制会产生多余的操作,因此一般都是手写脚本; 3. 为了更好的学习VuGen,我们基于LR11自带的订票系统为案例,练习使用VuGen。

案例1

python 需求:1. 录制机票网站的登录、退出脚本 使用: 1. 启动网站服务程序 2. 访问地址:http://127.0.0.1:1080/WebTours/ 3. 登录账户:用户名:jojo 密码:bean

【案例】-启动服务程序

创建脚本

python 位置:开始菜单 -> HP LoadRunner -> Samples -> Web -> Start Web Server 提示:WebTours项目默认使用1080端口,如果启动失败,看是否端口被占用或者是否有权限;

创建脚本

启动成功界面

二、案例1-实施步骤分析

python 1. 启动VuGen 2. 创建脚本 3. 选择录制协议 Web(HTTP/HTML)【重要】 4. 录制设置 5. 脚本录制 6. 运行脚本

2.1 启动VuGen

方式一:直接运行VuGen图标启动【推荐】

开始菜单 -> HP LoadRunner -> Applications -> Virtual User Generator VuGen启动

方式二:通过LoadRunner管理器启动

开始菜单 -> HP LoadRunner -> LoadRunner

VuGen启动02

VuGen启动03

点击:Create/Edit Scripts

2.2 创建脚本

创建脚本

python 1. 菜单栏(File) -> New 快捷键(Ctrl + N) 2. 常用工具栏 -> 第一个图标新建 3. Start Page:点击快捷创建脚本图标(new Script)【推荐】

2.3 选择协议

选择协议

python 1. New Single Protocol Script:单一协议 2. Popular Protocols:主流协议 3. Web(HTTP/HTML):HTTP协议【选择】

2.4 录制设置

录制选项

python 1. Application type:Internet Applications【选择】(Internet Applications:HTTP协议使用) 2. Program to record:选择浏览器 1). IE8:(提示:64位操作系统必须选择32位IE8!)【选择】 2). 火狐浏览器v24版本; 3. URL Address:http://127.0.0.1:1080/WebTours/(项目网址) 4. Working directory:工作目录(默认即可) 5. Record into Action:录制脚本存放的计划名 1). vuser_init:首先执行;迭代运行时候,只会运行一次 2). Action:可迭代运行、可新增【选择】 3). vuser_end:最后执行;迭代运行时候,只会运行一次 6. 点击OK -> 开始录制

2.5 脚本录制

WebTours

python 1. Recording...(xxx events):录制事件 2. 用户名:jojo 密码:bean 3. 点击Login 4. 点击Sign Off退出登录 5. 停止录制 6. 生成脚本

退出登录

WebTours

停止录制

WebTours

生成脚本

WebTours

2.6 运行(回放)脚本

验证录制脚本是否能正常运行

WebTours

python 1. 点击 Run 按钮 2. 快捷键:F5键

查看回放脚本的运行结果

WebTours

python 菜单(View) -> Test Results...

三、总结

python 1. 启动VuGen方式 2. 录制HTTP项目协议 3. 录制设置各选项含义 1). Application type 2). Program to record 3). URL Address 4). Working directory 5). Record into Action 4. 如何运行脚本 5. 如何查看运行脚本的结果

VuGen-扩展(录制、回放)

目标

python 1. 了解录制模式和脚本类型 2. 了解 Run-time Settings(运行时设置)

一、录制选项-扩展

WebTours

1.1 录制设置Options选项

WebTours

  1. HTML-based script: 所有请求放到一个函数内(这里所有请求是指,每步操作所产生的请求)

  2. URL-based script: 每个请求放到一个函数

提示:

python 1). 基于浏览器的应用程序推荐使用 HTML-based script 2). 不是基于浏览器的应用程序推荐使用 URL-based script 3). 基于浏览器的应用程序中使用了 HTTPS 安全协议,使用 URL-based script 方式录制

1.2 HTML Advanced选项

WebTours

```python 1. web_submit_form: 依赖上下文才能提交。 2. web_submit_data: 不依赖上下文,每个函数都指定了具体的 URL 地址,可以直接提交成功。【推荐】

提示:没有特殊的场景需求,推荐使用:web_submit_data ```

二、运行设置

Run-time Settings

(菜单-Vuser -> Run-time Settings) 快捷键:F4

2.1 Run-time Settings

python 1. Run Logic 脚本运行迭代次数 2. Think Time 运行时思考时间处理方式

1. RunLogic 迭代次数

WebTours

python 提示: 1. 迭代就是脚本要执行的次数 2. Init 与 End 由于只会运行一次,迭代次数设置不会生效

2. Think Time 思考时间

WebTours

python 提示: 1. Ignore think time 默认(忽略思考时间) 2. Replay think time (回放思考时间) 1). As recorded (录制多少秒,就等待多少秒) 2). MuItiply recorded think time by (录制时间的倍数) 3). Use random percentage of recorded think time ( Min(录制时间的最小百分比) Max(录制时间的最大百分比)) 4). Limit think time to(限制最高时间)

2.2 常用函数

python 1. lr_output_message() 2. lr_think_time()

1) 函数 lr_output_message()

python 输出到运行日志 如:lr_output_message("hello Action"); 参数:要输出的文本信息

2) lr_think_time()

python 思考时间 最大可能模仿用户真实操作 如:lr_think_time(4); 参数:停顿多少秒

练习

python 1. 输出Action被执行10次,使用迭代次数完成; 2. 输出Action1被执行暂停3秒后,输出Action2被执行;

练习脚本

python Action() { lr_output_message("Action1被执行"); lr_think_time(3); lr_output_message("Action2被执行"); return 0; }

2.3 扩展 编译

编译

python C语言属于高级语言,不能直接被计算机识别,需要进行编译成计算机可执行语言,在编译的时候如果脚本语法有错,会直接提示。 使用:点击编译图标或使用快捷键:Shift + F5

提示:

python 编译提示:No errors detected 代表通过;

VuGen-手动编写脚本

目标

python 1. 掌握C语言的注释方法 2. 掌握基于LR手动编辑脚本的方法

首先科普下C语言中的注释;

```python 1. //:单行注释 如://登录
2. //:多行注释 如:/多行 注释/

提示: 1). Ctrl + Alt + C 为单行注释快捷键; 2). Ctrl + Alt + U 为取消单行注释快捷键; ```

一、手动编写脚本
1.1 为什么要手写脚本
  1. 避免LR由于兼容性导致录制异常或失败;

  2. 手写脚本无冗余代码,更有利于脚本的增强(插入事务、参数化)和维护
1.2 手动编写脚本使用编写语言
  1. JAVA

  2. C语言【推荐】

提示:

python 1. LoadRunner中虽然默认是使用C语言录制/编写脚本,但我们无需专门去学C语言; 2. 只需注意下基础语法和掌握LR中常用的几个请求函数的用法就可以编写常用的脚本;

1.3 脚本请求 函数
  1. web_url()
  2. web_submit_data()
  3. web_custom_request()

提示:

python 1. web_url:GET请求使用 2. web_submit_data:GET、POST请求 3. web_custom_request:定制请求(GET\POST\PUT\DELETE)等,接口请求使用此函数

1.3.1 web_url() 函数【重点】

只能做GET请求;

语法:

python web_url("request name","URL=http://***",LAST); 1). request name:标记请求名称,比如:首页 2). URL=http://xxx:URL=为固定格式;http://xxx为GET请求地址 3). LAST结束标志;

1.3.2 web_submit_data()函数【重点】

默认设置是POST请求;也可以做GET请求。

语法:

python web_submit_data(StepName, Action=http://xxx, <List of Attributes>, ITEMDATA,<List of data>, LAST); 1). StepName:标记请求名称, 比如:登录 2). Action=http://xxx:Action=为固定格式;http://xxx:为提交地址 3). List of Attributes:其他属性 如:"Method=POST" 4). List of data:其他参数 如:"username=jojo" 5). LAST:结束符

提示:

python 1. POST提交参数比较多,但我们不需用一个个记,使用插入函数方法,在函数对话框内输入即可; 2. 录制HTML页面时,Mode推荐使用HTML;

1.3.3 web_custom_request() 函数【掌握】

自定义请求方法(GET/POST/PUT/DELETE),用于实现接口测试。

语法:

python web_custom_request(RequestName, <List of Attributes>,LAST); 1). RequestName:请求名称 2). List of Attributes:属性列表,如:"Method=POST" 3). LAST:结束符

提示:

python 一般做接口压测时使用;

练习

python 手动编写 iWebShop 的登录脚本;

未完待续, 同学们请等待下一期

全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~

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

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

相关文章

【STM32】软件SPI读写W25Q64芯片

目录 W25Q64模块 W25Q64芯片简介 硬件电路 W25Q64框图 Flash操作注意事项 状态寄存器 ​编辑 指令集 INSTRUCTIONS​编辑 ​编辑 SPI读写W25Q64代码 硬件接线图 MySPI.c MySPI.h W25Q64 W25Q64.c W25Q64.h main.c 测试 SPI通信&#xff08;W25Q64芯片简介&am…

IT行业高含金量证书全解析:开启职业生涯新篇章

在快速发展的IT行业&#xff0c;持续学习和专业认证是提升个人竞争力的重要途径。全球范围内存在着众多的IT认证&#xff0c;它们不仅能够验证你的技术能力&#xff0c;还能在求职和职业晋升中起到关键作用。 本篇博客将深入探讨IT行业中部分高含金量的证书&#xff0c;包括中…

探索设计模式的魅力:掌握命令模式-解锁软件设计的‘遥控器’

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;并且坚持默默的做事。 引言&#xff1a;探索命令模式的奥秘 软件设计领域充满挑战与机遇&#xff0c;命令模式…

MyBatis--08--分页插件PageHelper

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.分页插件PageHelper1.1 mysql中 limit 关键字含义1.2 PageHelper 官网https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md](ht…

C++学习Day05之函数调用运算符重载

目录 一、程序及输出二、分析与总结 一、程序及输出 #include<iostream> using namespace std; #include <string>class MyPrint { public:void operator()(string text){cout << text"运算符重载" << endl;} };void MyPrint2(string str) …

海外媒体发稿:8个提升影响力的日韩地区媒体发稿推广策略-华媒舍

在今天的数字化时代&#xff0c;媒体发稿推广成为企业和个人增加影响力的重要方式。特别是在日韩地区&#xff0c;这个拥有庞大媒体市场和活跃社交媒体用户的地区&#xff0c;正确的推广策略将对影响力的提升起到关键作用。我们将介绍8个提升影响力的日韩地区媒体发稿推广策略。…

C++智能指针的知识!

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 大家好呀&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习一下智能指针。 文章目录 1.智能指针的概念 2.智能指针的思想 3.智能指针的作用 3.1 自动内存管理 3.2 共享所有权 3.3 避免悬挂指针…

Linux第58步_备份busybox生成rootfs根文件系统

备份busybox生成rootfs根文件系统 打开终端 输入“ls回车” 输入“cd linux/回车” 输入“ls回车”&#xff0c;产看“linux”目录下的文件和文件夹 输入“cd nfs/回车”&#xff0c;切换到“nfs”目录 输入“ls回车”&#xff0c;产看“nfs”目录下的文件和文件夹 输入…

软件实例分享,台球厅收费系统电脑桌球店计时软件及灯控线路图教程

软件实例分享&#xff0c;台球厅收费系统电脑桌球店计时软件及灯控线路图教程 一、前言 以下软件程序教程以 佳易王桌球室计时计费软件V17.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、每个桌子对应的有 开台时间&#xff0c;所用的时…

为什么将二维码分解成文字? 二维码在线转文字的方法

将二维码分解成文字的主要目的是为了方便人们获取二维码中的信息便于使用。二维码是一种由黑白方块组成的图案&#xff0c;可以存储大量的数据&#xff0c;如网址、联系方式、产品信息等。然而&#xff0c;对于一些特定的场景或个人需求&#xff0c;无法直接扫描二维码。因此&a…

Java数字孪生智慧工地数据大屏APP项目源码

目录 智慧工地云平台核心功能 1.劳务管理 2.视频监控 3.安全教育 4.进度管理 5.环境监测 6.塔吊监控 7.升降机监控 8.工地广播 9.深基坑高支模 10.AI识别 11.安全质量 智慧工地建设的价值和意义 危大工程管理 智慧工地聚焦施工现场一线生产活动&#xff0c;利用物…

线性回归-使用ClickHouse机器学习函数

本文字数&#xff1a;5923&#xff1b;估计阅读时间&#xff1a;15 分钟 作者&#xff1a;Ensemble 审校&#xff1a;庄晓东&#xff08;魏庄&#xff09; 本文在公众号【ClickHouseInc】首发 这原本是转发的ensemble analytics的文章。 【https://ensembleanalytics.io/blog/l…

全网Bento和3D?点评2024年UX/UI设计趋势

2024年已经到来&#xff0c;对于UX/UI设计领域来说&#xff0c;这可能是过去若干年来UI / UX趋势最统一、最确定的一年。在接下来的文章中&#xff0c;笔者将在点评各个设计趋势的同时&#xff0c;分析现象背后的原因&#xff0c;并给新入行的设计师一些成长的建议。 什么是UI和…

CVE-2022-24652 漏洞复现

CVE-2022-24652 开题 后台管理是thinkphp的&#xff0c;但是工具没检测出漏洞。 登陆后界面如下&#xff0c;上传头像功能值得引起注意 这其实就是CVE-2022-24652&#xff0c;危险类型文件的不加限制上传&#xff0c;是文件上传漏洞。漏洞路由/user/upload/upload 参考文章&a…

《Java 简易速速上手小册》第1章:Java 编程基础(2024 最新版)

文章目录 1.1 Java 概述 - 不只是咖啡1.1.1 基础知识1.1.2 重点案例&#xff1a;网上银行应用1.1.3 拓展案例 1&#xff1a;电子商务平台1.1.4 拓展案例 2&#xff1a;物联网&#xff08;IoT&#xff09;系统 1.2 Java 开发环境设置 - 魔法开始的地方1.2.1 基础知识1.2.2 重点案…

【JavaEE】IP协议

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

腾讯云OSS文件上传功能

腾讯云COS介绍 腾讯云COS&#xff08;Cloud Object Storage&#xff09;是一种基于对象的存储服务&#xff0c;用于存储和管理海量的非结构化数据&#xff0c;如图片、音视频文件、备份数据等。它具有以下特点和优势&#xff1a; 高可靠性&#xff1a;采用分布式存储架构&…

MCU看门狗

目录 一、独立看门狗(IWDG) 1、IWDG 主要作用 2、IWDG 主要特性 3、编程控制 4、注意地方 二、窗口看门狗(WWDG) 1、窗口看门狗作用&#xff1a; 2、窗口看门狗产生复位信号有两个条件&#xff1a; 3、WWDG 框图 4、WWDG 将要复位的时间 5、编程控制 一、独立看门…

揭秘京东商品背后的秘密:一键获取详细数据,打造全新购物体验

京东商品详情原数据API接口技术详解 一、概述 京东商品详情原数据API接口是京东开放平台提供的一套用于获取商品详细信息的接口。通过调用该接口&#xff0c;第三方开发者可以获取包括商品描述、价格、图片、评价等详细信息&#xff0c;进而在自己的应用或网站中展示给用户&a…

【STM32 物联网】AT指令与TCP,发送与接收数据

文章目录 前言一、连接TCP服务器1.1 配置Wifi模式1.2 连接路由器1.3 查询ESP8266设备IP地址1.4 连接TCP服务器 二、向服务器接收数据和发送数据2.1 发送数据2.2 接收数据 总结 前言 随着物联网&#xff08;IoT&#xff09;技术的迅速发展&#xff0c;越来越多的设备和系统开始…