《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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
2月前
|
Java 测试技术 Maven
JAVA单元测试概念与实战
单元测试是软件开发中的一个测试方法,用于验证软件代码中最小的、独立的单元是否按照预期工作。在Java中,这通常指的是单个的方法或者一个类的个别功能。单元测试的目的是隔离代码的每个部分,并确保各个部分是正确的。
51 4
|
3月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
|
4月前
|
测试技术 Shell
shell脚本写的班级管理系统测试用例
shell脚本写的班级管理系统测试用例
57 1
|
5月前
|
Shell 测试技术 Linux
通过shell脚本进行linux服务器的CPU和内存压测
通过shell脚本进行linux服务器的CPU和内存压测
158 0
|
4月前
|
JSON 测试技术 API
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
76 3
|
3月前
|
监控 数据可视化 Java
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
51 1
|
4月前
|
机器学习/深度学习 人工智能 算法
软件测试/人工智能|人工智能与自动化测试结合实战-探索人工智能在测试领域中的应用
软件测试/人工智能|人工智能与自动化测试结合实战-探索人工智能在测试领域中的应用
141 0
|
10天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
4月前
|
人工智能 自然语言处理 测试技术
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
80 0
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
|
1月前
|
数据采集 数据处理 开发工具
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本