《LoadRunner性能测试巧匠训练营》——2.5 脚本增强实战

简介:

本节书摘来自华章计算机《LoadRunner性能测试巧匠训练营》一书中的第2章,第2.5节,作者:赵 强 邹伟伟 任健勇 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 脚本增强实战

通过上面的学习,小白对基本的操作已经很熟悉了,接下来他将继续学习如何增强脚本功能。
2.5.1 检查点实战
继续以WebTours为例,如何判断besttest用户是否登录成功呢?这时候检查点函数就派上用场了。这里有两个检查点函数,分别是文本检查点和图片检查点。

  1. 文本检查点
    小白虽然刚刚接触LoadRunner,但多年养成的良好学习习惯已经让他的学习效率比别人高了。小白直接在函数帮助手册中查看web_reg_find并学习这个函数。原来这个函数用于在HTML页面检查是否有用户指定的文本。

接着小白就动手在脚本里增加这个函数,小白想既然是检查用户名,那么肯定是在登录完成后才能查找到,所以就把代码清单2-2中的内容加到了提交登录请求后。
代码清单2-2 文本检查点
//文本检查点,检查besttest

web_reg_find("Text=besttest", LAST );

完成后,运行脚本,本来觉得一切都没问题,但却报错了,如图2-14所示。


<a href=https://yqfile.alicdn.com/6a31d703b19ccaaed77b4db2d7c11660adbe8e30.png
" >

于是,小白再次查看函数帮助手册,看看是不是漏掉了什么重要信息。果然,示例中的文本检查点是在提交请求之前加的,为什么要这样呢?小白再次查找相关资料了解到,原来新版的LoadRunner中凡是带有reg的函数,都是注册函数,这个函数的特点是要放到实际提交请求操作之前。小白赶紧修改文本检查点函数的位置,将其放到了提交登录请求之前。
再次回放后,终于成功且日志没有报错,如图2-15所示。


<a href=https://yqfile.alicdn.com/62f8cde364724e317c5ff13328a8401b5907da3b.png
" >
  1. 图片检查点
    通过查看函数帮助手册,小白了解到图片检查点函数web_image_check是针对设定的图片属性进行检查,一般图片属性有alt、src等。

    图片检查点函数中的属性可以是alt,也可以是src,有的图片没有alt属性,但所有图片都有src属性,所以建议一般选取src属性指定图片的相对路径即可,可以通过右击网页选择查看页面源代码获得。



    小白把该函数加到登录之后,检查登录成功后的“退出”按钮图片,如代码清单2-3所示。
    代码清单2-3 图片检查点
       //图片检查点,检查退出按钮图片
    web_image_check("signoff",//图片名称,随意命名
      "Src=/WebTours/images/signoff.gif",//图片的src属性
      LAST);
    

    添加完成后,单击“回放”按钮,日志里并没有任何报错,不过细心的小白还是发现了这样一句话,如图2-16所示。


    b15526f7500f2ff4214b66a7938ad3f1001fd996

    根据提示,小白查看Run-time Settings设置中的Preferences,发现了一个关于检查点的设置选项,如图2-17所示。


    4696b77a38cb19622d5f086c566b9bced3f768c2

    于是,小白把图2-17中的Enable Image and text check勾选上,再次回放脚本并查看日志,显示成功,如图2-18所示。


    f85da9b765aed532c242877a69c20b669ac105bd
    检查点功能选项默认是关闭的,一般不建议使用,因为它会消耗一些资源。脚本调试期间可以使用,但场景运行期间建议关闭。
    

    通过这次动手,小白总结出两点。第一,文本检查点函数需要注意位置;第二,图片检查点需要开启Run-time Settings里的设置。小白也深知,这些问题的发现都是通过看日志得出的,原来调试脚本看日志这么重要。

    1. 检查点扩展
      在查看函数帮助手册时还发现检查点函数的另一种用法也是比较常用的。以登录后检查用户名为例来说明。
    web_reg_find("Text=besttest",
    "SaveCount=besttest_count",
    LAST );    //其中Text代表要检查的用户名是besttest,SaveCount代表把检查到的次数保存在
                //besttest_count中
    

    2.5.2 参数化实战
    小白在想“如果想模拟不同用户登录系统LoadRunner能实现吗?”其实是可以实现的,利用参数化即可。LoadRunner中的参数化有两种,一种是俗称文件形式的参数化,一种是数据库形式的参数化。
    一般参数化的应用场景有如下几种。
    1)真实的模拟用户操作。
    2)系统不允许同一个用户频繁地进行相同操作。
    3)系统对数据的唯一性有要求。
    设置参数化的一般步骤为:分析需要参数化的数据→设计数据分配方式→查找替换对象。

    1. 文件参数化
      为了练习,小白准备把用户名进行参数化,参数化的值分别为besttest、besttestxiaoqiang、besttestandashu,它们的密码统一为123123。练习步骤如下。

    1)依次单击菜单中的Insert→New Parameter命令,弹出如图2-19所示的参数化对话框,单击new按钮,并重命名为username。
    2)依次单击图2-19中的Create Table→Edit with Notepad,在弹出的文本中输入参数化的值,每个值占据一行,最后保留一个空行,然后保存关闭即可,如图2-20所示。


    9219c5b45edf3065bff2dce8f6ee1b90b1ec8bb5

    3)回到脚本中,找到要参数化的用户名,双击选中,单击鼠标右键,选择Use Existing Parameter→username,如图2-21所示。


    fcf0f4ff9fa06c23e8e1fe22b28c9194e56646da

    4)最终完成参数化后,参数username被{}包围,这是在LoadRunner中的规则,如图2-22所示。


    5846f11853a19de0cdf7929930e43ce00f768b31

    5)单击菜单Vuser→Run-time Settings→RunLogic,设置迭代次数为3,这样才能验证参数化是否正确,如图2-23所示。


    !<a href=https://yqfile.alicdn.com/afa54b286dfbf857afccf80cb598bf53c55edd97.png
    " >

    6)运行并验证,经过3次迭代运行后,脚本没有问题,都可以正常登录。
    到这里,小白并没有满足,他想如果用户名与密码要一一对应,该怎么参数化呢方法如下。
    用户名的参数化方法与上面的步骤一样。密码的参数化稍有不同,步骤如下。
    1)新建参数pwd,并选择File为username.dat,如图2-24所示。


    <a href=https://yqfile.alicdn.com/2fceeb12579af522a7ea805cddf503b06f3bace7.png
    " >

    2)单击图2-24中的Add Column按钮,弹出如图2-25所示的对话框,单击OK按钮。
    3)单击图2-24中的Edit with Notepad按钮,输入与用户名对应的密码,如图2-26所示。

     <div style="text-align: center">

    c05ab572ebc380c42adc7fefc47b389344376118

相关文章
|
3月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
4月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
4月前
|
测试技术 Linux
VPS一键测试脚本,无痕体验+自动导出,服务器测试更轻松
NodeQuality 是一款整合 Yabs、IPQuality、NetQuality 等主流 VPS 测试脚本的全能工具,支持一键测试硬件性能、IP属性、网络质量,并新增分享与导出功能。其“无痕测试”设计不安装依赖、不留残留,兼容性强;测试结果自动排版、截图并生成分享链接,极大提升效率。适合需要全面、快速、干净测试 VPS 的用户,是运维和测评的高效利器。
357 3
|
5月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
5月前
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
3月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
5月前
|
人工智能 缓存 测试技术
Playwright进阶指南 (6) | 自动化测试实战
2025企业级测试解决方案全面解析:从单元测试到千级并发,构建高可用测试体系。结合Playwright智能工具,解决传统测试维护成本高、环境依赖强、执行效率低等痛点,提升测试成功率,内容从测试架构设计、电商系统实战框架、高级测试策略、Docker化部署、CI/CD集成及AI测试应用,助力测试工程师掌握前沿技术,打造高效稳定的测试流程。
Playwright进阶指南 (6) | 自动化测试实战
|
4月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
593 11
|
4月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
147 0
|
9月前
|
监控 测试技术 数据库连接
RunnerGo API 性能测试实战:从问题到解决的全链路剖析
API性能测试是保障软件系统稳定性与用户体验的关键环节。本文详细探讨了使用RunnerGo全栈测试平台进行API性能测试的全流程,涵盖测试计划创建、场景设计、执行分析及优化改进。通过电商平台促销活动的实际案例,展示了如何设置测试目标、选择压测模式并分析结果。针对发现的性能瓶颈,提出了代码优化、数据库调优、服务器资源配置和缓存策略等解决方案。最终,系统性能显著提升,满足高并发需求。持续关注与优化API性能,对系统稳定运行至关重要。

热门文章

最新文章