商城性能测试LoadRunner快速上手教学

news2025/2/27 14:23:45

软件介绍

  • Virtual User Generator ,记录用户流程并创建一个自动化性能测试脚本
  • Controller,单一控制点,轻松、有效地控制所有Vuser,执行期间监控场景性能
  • Analysis,生成性能测试报告,以图表形式呈现。

由于教程篇幅较大,尽可能地照顾大部分学习情况,更多还是要大家多读官方文档,多去上手测试学习。

如果你还没有安装软件,或者是用的LoadRunner 12这样的老版本,我在阿里云盘分享了LoadRunner 2023的安装包。

前置要求

  1. 需要简单了解LoadRunner软件功能有哪些
  2. 了解HTTP网络工作方式
  3. 拥有C语言基础
  4. 软件测试术语

本次教学应该会花费20-30分钟,生成测试报告也要接近半个小时

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。
 

选用被测系统

这里选用华测教育在线商城

关于接口文档,在他们培训机构资料领取里面,同时我也放在了上面链接里面。

VuGen的推荐配置

录制设定

由于是模拟用户真实行为,所以录制应当是基于HTML

脚本只要有包含的URL请求就好了,Web用户的界面动作并不重要。

日志设定

也许你有参数化,但是如果次次手动打印到output太麻烦了

 

当然,你还可以将服务器返回的数据打印,但是没必要,snapshot快照就能很清楚查看。

现在不管是关联的,还是预先设定好的参数,都可以很清晰看到值。

录制脚本

初始动作 - 登录

打开VuGen软件

默认创建

 

新建后,有3个行为(Action),代表的启动脚本、运行时脚本、结束脚本。

那就开始录制吧

 

进入到了商城首页,我们需要先进行登录,以模拟场景下用户第一次的动作

 

账号密码
lisi123456
huace_testerhuace_tester

提示登录成功后,就可以将vuser_init切换至Action

事务 - 添加购物车

这里就点进小米4手机,作为要加入购物车的商品。

 

进入详细商品页面之后。

加入购物车之前,先点击开始事务(Start Transcation),这里命名为add_car

 然后成功加入购物车后,一定不要忘记结束事务

结束动作 - 退出登录

接下来就是模拟用户的退出系统操作,切换成录制vuser_end脚本

 

然后点击系统的左上角退出登录

 可以结束录制脚本了

修改脚本

回放脚本 - 程序介绍

修改脚本之前,简单的聊一下录制后的脚本(程序)

可以看到Action都是标准的C语言程序。 不过,并不支持C99语法,要正常写的话,得是C89语法,也就是ANSI C

 

C语言基础很好的同学,可以一眼就能理解脚本程序了。

可以说,函数名就是脚本Action名称,vuser_initvuser_end对应着启动和结束的钩子函数。执行一个脚本,就相当于调用了这个函数。

进入Actionsvuser_init程序来看一下调用了哪些函数

  • web_set_sockets_option,用于设置与网络通信和套接字操作相关的选项
  • web_add_auto_header自动请求头加入信息,这个自动的意思是“后续的请求,都会有这个请求头信息”。
  • web_url,实际上是发送HTTP请求,可以简单理解“模拟浏览器请求一个新的页面(HTML文件),并同时包含了其他静态文件的请求(cssjspng文件等等)”。
  • web_revert_auto_header,对应结束自动请求头加入信息
  • web_add_header下一个请求,会加入此请求头信息
  • lr_think_time,思考时间函数,也就是程序睡眠时间,等同于Windows库中的sleep函数
  • web_submit_data,模拟用户的表单提交操作,也就是HTMLform标签事件。

F5,或者是点击下面的按钮,先进性回放脚本

 

回放脚本的意思,等同于执行脚本

在底部的output中,可以看到添加购物车事务,正常执行并结束

然后看一下快照Snapshot

 

然后此时,鼠标点击函数的地方,就可以看见整个网络请求。 比如我这里演示的是,vuser_init.c脚本中的登录POST请求。

 

检查点 - 登录成功

这里需要用到函数创建工具,在LoadRunner里叫步骤工具箱(Steps Toolbox

 然后要使用一个注册类型的函数,web_reg_find可以查找下一个动作函数中,是否符合对应的匹配值(文本)。

再次回放脚本,可以发现已经找到了这个值,如果不成功的话

 

关联参数化 - 登录账号

这里我们的任务是,随机抽取一个账号密码进行登录

首先必须要有一个外部参数的引入,也就是类似账号密码表格的文件

文件路径可以自己起个名字保存。 ’选择下一次‘ 一定要是 Ramdom(随机),才符合任务要求。(这里其实不只是下一次随机,第一次也会随机)

为什么不用File类型?因为在LoadRunner中,File类型只能读取行中一列数据,而账户密码是与之相对应的行数据,如果需要随机账户密码登录,就必须让行完整。

这样,拿到的参数值,为 账号,密码 形式,接下来就是分割字符串,要用到string.h库的strtok

#include <string.h>
vuser_init()  
{
    char * tableResultString = lr_eval_string("{account}");  
    // 分割符  
    const char * delim = ",";  
    // 账号  
    char * account = strtok(tableResultString,delim);  
    // 密码      
    char * pwd = strtok(NULL,delim);  
    // 注册关联参数  
    lr_save_string(account, "acc");  
    lr_save_string(pwd, "pwd");  
    // --- 输出变量的值  
    lr_log_message("account变量 %s",account);  
    lr_log_message("pwd变量 %s",pwd);  
    // --- 输出关联参数的值  
    lr_log_message("关联参数的账号为 %s",lr_eval_string("{acc}"));  
    lr_log_message("关联参数的密码为 %s",lr_eval_string("{pwd}"));

	...
	return 0;
}

 

lr_eval_string的意思是,将LoadRunner可以执行的参数,转换成C语言的字符串。 lr_save_string的意思是,将C语言字符串值,保存到LoadRunner参数。 lr_log_message则是在LoadRunner的输出中打印信息。

 

可以看到,实现了随机抽取用户。

接着就是,在网络提交的时候,使用这个值。

找到唯一POST请求,在请求体字符串中,参数值替换成{参数名}形式。

外部参数化 - 不同商品加入购物车

来看看录制的时候,网络请求和Web页面有哪些关系

 这是小米4的,那其他的呢?

可以看到,2、3、4、5对应着苹果、三星、华为、魅族手机。

这个数字,就是商品id,现在我们的任务是:将商品id为1-10的,按每次迭代顺序添加到购物车

打开参数列表,开始创建一个外部参数吧,参数类型为File

参数值手动录入进去,或者是用工具生成。

 然后,将代码中所有的网络请求,引用商品id为1的字段,换成LoadRunner参数goods

有一个便携的办法,那就是通过action脚本中,搜索全部id/1的地方。因为这里只引用了商品id。

 

这样我们就完成了本任务,但是会发现output,只引用了goods = 1,因为本脚本只运行一次,后面我们需要加入迭代次数。

集合点 - 加入购物车

本任务:为加入购物车业务设置一个集合点

 

在设计中,或者是右击脚本,可以找到 插入(Insert) - 集合点(Rendezvous),然后命名为add_car_r

集合点不应该被包含事务里面,否则集合点等待时间,会被算在事务时间

这样就完成了,集合点的目的是,某个业务功能的压力测试,也就是一群用户做相同功能。

回放脚本

迭代次数

这一次任务,将把1-10商品ID都用到,那么需要加入迭代次数

进入 运行时设定(Runtime Settings) - 运行逻辑(Run Logic) - 迭代次数(Number of iterations) 这里设置为15吧,意味着run生命周期Action(脚本)重复15次。

然后开始点击回放

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础 

  全套资料获取方式:点击下方小卡片自行领取即可

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

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

相关文章

一键添加色彩变幻效果,视频剪辑从未如此简单!

在视频制作过程中&#xff0c;给视频添加特效是必不可少的环节。而其中&#xff0c;色彩变幻效果作为一种常用的特效&#xff0c;能够为视频增添独特的氛围和视觉冲击力。然而&#xff0c;对于许多初学者来说&#xff0c;如何批量给视频添加色彩变幻效果特效功能却是一个难题。…

从0到1了解metasploit上线原理

在渗透的过程中拿到权限后通常会进行上线cs/msf的操作&#xff0c;我们了解上线的原理后&#xff0c;无论是对编写远控&#xff0c;还是绕过杀软帮助都很大。 前言 在渗透的过程中拿到权限后通常会进行上线cs/msf的操作&#xff0c;我们了解上线的原理后&#xff0c;无论是编…

不容错过的2023年度线框图工具Top 8

线框图工具可以快速呈现设计师的灵感。在任何项目的开始阶段&#xff0c;选择一个方便的线框图工具都是最好的选择。如今&#xff0c;线框图工具的出现并不夸张。各种工具都很容易获得&#xff0c;但选择太多确实很容易给设计师的选择带来困难。 买东西都讲性价比&#xff0c;…

最新 IntelliJ IDEA 旗舰版和社区版下载安装教程(图解)

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

一台服务器安装两个mysql、重置数据库用于测试使用

文章目录 一、切数据库数据存储文件夹已经存在数据库数据文件夹新建数据库数据文件夹 二、安装第二个mysql安装新数据库初始化数据库数据启动数据库关闭数据库 三、mysqld_multi单机多实例部署参考文档 一、切数据库数据存储文件夹 这个方法可以让你不用安装新的数据库&#x…

信号灯集,消息队列

信号灯集 1、概念 信号灯(semaphore)&#xff0c;也叫信号量。它是不同进程间或一个给定进程内部不同线程间同步的机制&#xff1b;System V的信号灯是一个或者多个信号灯的一个集合。其中的每一个都是单独的计数信号灯。而Posix信号灯指的是单个计数信号灯。 通过信号灯集实现…

双网卡下,如何指定网卡进行通讯

背景 LabVIEW进行网络TCP网络通讯&#xff0c;通过WIFI进行数据传输。刚好工作站有两个网口&#xff0c;一个连接外网&#xff0c;一个连接无线路由器&#xff0c;然后数据节点可以连接到无线路由。但时LabVIEW默认运行的时候&#xff0c;显示的ip地址是外网的&#xff0c;那这…

主播直播美颜SDK:提升颜值的秘诀

当下&#xff0c;主播们往往依赖于主播直播美颜SDK&#xff0c;这个技术工具为他们提供了一个让自己看起来更好看的机会。本文将深入探讨主播直播美颜SDK的工作原理、应用和影响&#xff0c;揭示提升颜值的秘诀。 一、主播直播美颜SDK是什么&#xff1f; 主播直播美颜SDK是一…

【unity3D】Dropdown组件 — 如何使用下拉菜单

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的Dropdown组件 Dropdown组件 基础知识详细介绍 基础知识 介绍&#xff1a;Unity的Dropdown组件是一种UI控件&#xff0c;用于在下…

【数据安全好书推荐】学习数据安全不知道看哪本?这篇文章助你赢在起跑线上!文末送书5本

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 ⛳️ 写在前面参与规则引入《数据要素安全流通》《Python数据挖掘&#xff1a;入门、进阶与实用案例分析》《数据保…

log4j 日志的简单使用

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 前言 System.out.println("这是我的测…

P1169 [ZJOI2007] 棋盘制作

Portal. 悬线法。 悬线法&#xff0c;主要用来解决最大子矩形问题&#xff0c;由王知昆在 IOI2003 国家集训队论文中提出。 所谓“最大子矩形问题”&#xff0c;就是在一个给定的矩形网格中有一些障碍点&#xff0c;要找出网格内部不包含任何障碍点&#xff0c;且边界与坐标…

大型企业如何通过低代码平台提高开发效率和降低成本?

云计算、大数据、人工智能、物联网风口之下&#xff0c;企业数字化转型如同被按下了快进键。为快速攻破转型路上的技术关&#xff0c;企业纷纷把目光投向了低代码开发平台&#xff0c;希望可以用最短的时间&#xff0c;开发出最适合企业发展的应用。 集团企业需要什么样的数字化…

高等数学啃书汇总重难点(十)重积分

方法性的一章&#xff0c;看着唬人&#xff0c;实际上定积分学得熟练&#xff0c;就可以很轻松的掌握这一章的内容&#xff0c;重点在于计算各种坐标下的二重或三重积分~ 1.几何意义 2.定义 3.性质 4.直角坐标计算二重积分 5.极坐标计算二重积分 6.三重积分 7.重积分的应用

Mac-Java开发环境安装(JDK和Maven)

JDK安装 1、访问oracle官网&#xff0c;下载jdk 点击下载链接&#xff1a;https://www.oracle.com/java/technologies/downloads/#java11-mac 选择Mac版本&#xff0c;下载dmg 打勾点击下载&#xff0c;跳转登陆&#xff0c;没有就注册&#xff0c;输入账号密码即可下载成功…

面试高频题:你如何知道HashMap正在进行扩容操作?

亲爱的小伙伴们&#xff0c;大家好&#xff01;我是小米&#xff0c;一个热爱技术分享的小编。今天&#xff0c;我们将一起来探讨一个程序员们在日常工作中常常遇到的问题——如何知道HashMap正在扩容。 HashMap&#xff0c;作为Java中最常用的数据结构之一&#xff0c;经常在…

“眶”护光明,爱尔眼科眼眶病专家团在方寸之间寻找光明密码

2023年8月&#xff0c;右眼罹患I型神经纤维瘤病的患儿孩子小豪(化名)在父亲熊勇的带领下&#xff0c;由爱尔眼科四川眼科医院孙丰源教授主刀&#xff0c;成功接受眼眶肿瘤切除术&#xff0c;保住了眼球和视力&#xff0c;这是生病10年来专家团队为其实施的第3次治疗。 据了解&a…

易知微智慧医疗:用科技守护健康

智慧医疗系统在国内处于一个快速发展的阶段&#xff0c;先进的医疗设备加上先进的计算机技术和网络科技&#xff0c;正在为医疗行业的转型升级提供支持。智慧医疗不仅可以提高医疗机构的效率和安全性&#xff0c;还可以让患者享受更高水平的服务和医疗体验。 目前&#xff0c;智…

功能测试用例,需要详细到什么程度?

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

C++类和对象中:运算符重载+const成员函数+日期类的完善

C类和对象中:运算符重载const成员函数日期类的完善 一.为什么C会有运算符重载这个语法呢?1.需求说明2.实现1.不规范的解决方案1.代码实现2.缺陷 3.具体的解决方案:运算符重载 二.运算符重载的语法形式1.语法形式2.private私有成员的解决方案1.封装出get函数,能够在类外读取对应…