当前位置: 首页 > news >正文

手把手教你编写LoadRunner脚本

编写 LoadRunner 脚本需要熟悉脚本语言、业务场景、参数化技术、断言和事务等基础知识。

在实际编写时,可以根据具体测试需求,结合实际情况进行合理的配置和调整。

基本步骤

创建脚本

在 LoadRunner 的 Controller 模块中,创建一个新的测试脚本,您可以选择录制脚本或手动编写脚本。

添加业务场景

在脚本中添加业务场景,如登录、购物车、下单、支付等,模拟用户行为。

​​​​​​参数化

在脚本中使用参数化技术,将一些动态值(如用户名、密码、订单号等)替换成参数,以便在运行时方便修改。

添加断言

在脚本中添加断言,检查每个业务场景执行后的返回结果,确保程序的正确性。

添加事务

在脚本中添加事务,用来度量每个业务场景的响应时间和吞吐量。

调试脚本

使用 LoadRunner 的 Debug 模式调试脚本,检查是否存在逻辑错误或脚本语法错误,以保证脚本的正确性。

配置 Vuser 数量

根据需要模拟的用户数量,配置 Vuser 数量,并设置 Vuser 的独立运行配置。

运行和分析脚本

使用 LoadRunner 的 Controller 模块,启动测试过程,等待测试完成后,使用

LoadRunner 的 Analysis 模块进行结果分析和报告生成。

脚本编写

Action()
{char *username, *password;lr_start_transaction("login");// 参数化用户名和密码username = lr_eval_string("{pUsername}");password = lr_eval_string("{pPassword}");// 打开主页web_url("homepage","URL=http://www.example.com/","Resource=0","RecContentType=text/html","Mode=HTML",LAST);// 单击登录链接web_link("login_link","Text=Login","Snapshot=t1.inf",LAST);// 提交凭证web_submit_form("login_form","Snapshot=t2.inf",ITEMDATA,"User ID={pUsername}","Password={pPassword}","Submit=Login",LAST);// 添加日志语句和断言lr_output_message("Logged in with username='%s' and password='%s'", username, password);lr_end_transaction("login", LR_AUTO);// 处理错误if (strstr(lr_eval_string("{ResponseURL}"), "error")) {lr_fail_trans_with_error("Login failed: incorrect username or password");}return 0;
}

需要使用虚拟用户模拟多个用户同时进行登录操作。

使用参数化来模拟不同的用户名和密码组合,以便在每个迭代中测试不同的凭证。

通过添加日志语句、断言和错误处理来确保正常的用户流程并记录每个操作的响应时间。

总结

该脚本使用 {pUsername} 和 {pPassword} 参数来模拟不同的凭证,并使用 lr_eval_string() 函数从参数文件中获取这些值。在每次迭代中,这些参数会自动更新,以便测试不同的凭证。

该脚本还使用 lr_output_message() 函数添加日志语句,记录每次登录的用户名和密码,以及 lr_fail_trans_with_error() 函数来处理错误情况,例如登录失败。

最后,该脚本还包括事务开头和结尾的 lr_start_transaction() 和 lr_end_transaction() 函数,以记录每个事务的响应时间。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

http://www.lryc.cn/news/240488.html

相关文章:

  • 2311rust,到74版本更新
  • Web项目从Tomcat迁移到TongWeb
  • Polygon Miden VM架构总览
  • ultralytics yolov8 实例分割 训练自有数据集
  • linux之进程地址空间
  • Cloud微服务
  • BLIP-2:冻结现有视觉模型和大语言模型的预训练模型
  • PyQt(学习笔记)
  • 策略模式应用(内窥镜项目播放不同种类的视频)
  • 【操作系统】Bochs安装和配置
  • 【Vue】Node.js的下载安装与配置
  • C语言从入门到实战——数组和指针的强化练习题
  • 经典滑动窗口试题(一)
  • 【paddlepaddle】
  • String 、StringBuffer 和 StringBuilder 的区别?
  • 【DevOps】Git 图文详解(六):Git 利器 - 分支
  • 万界星空科技QMS质量管理系统介绍
  • C练习题_14
  • 解决方案 | 政策与技术加持,法大大电子劳动合同让人事管理更省心
  • Linux基础命令5
  • springboot(ssm中医学习服务管理系统 医学生在线学习平台Java(codeLW)
  • springboot宠物领养系统-计算机毕设 附源码 44261
  • 性能测试必备知识-使用MySQL存储过程构造大量数据:实例解析
  • 最新绿豆APP源码苹果CMS影视插件版本/原生JAVA源码+反编译开源+免授权
  • SPSS多元对应分析
  • Rust语言特性探秘:宏的魔力
  • 2023最全的Web自动化测试介绍
  • Unity 控制物体透明度变化
  • django及DRF流程源码分析
  • Ajax入门-Express框架介绍和基本使用