灵活运用LR函数编写测试脚本
在软件测试领域,LoadRunner是一款强大的性能测试工具,它允许测试人员模拟大量用户并发执行脚本来测试系统的性能和稳定性。LR函数是LoadRunner中的核心组件,用于处理各种数据交互和控制逻辑。本篇文章将深入探讨如何灵活运用LR函数来编写测试脚本,特别是在处理动态数据关联和后续操作方面。 当服务器返回的动态数据需要被测试脚本使用时,我们需要使用关联函数(如`web_reg_save_param`)来捕获并存储这些数据。在上述案例中,作者遇到了一个特定场景:银行内部评级系统的一个页面,其中客户编号是动态生成的,且每次查询后会自动删除,这使得直接回放录制的脚本无法正常工作。为了解决这个问题,我们可以采取以下步骤: 1. 使用`web_reg_save_param`函数,设置`Ord=ALL`参数,以获取所有满足条件的动态数据。 2. 通过`for`循环和`if`判断,遍历关联数据,找到目标客户编号对应的位置。 3. 根据动态数据的规律(如:`Ord`值的计算方式),确定目标客户编号对应的关联数据值。 4. 利用`sprintf`函数格式化字符串,并使用`lr_save_string`函数将关联数据保存为LR参数,以便在后续操作中使用。 以下是部分实现代码示例,展示了如何运用`web_reg_save_param`捕获动态数据,然后通过`for`循环和`if`判断进行筛选,最后使用`sprintf`和`lr_save_string`处理数据: ```c // 省略的代码片段... // 保存动态数据为参数 web_reg_save_param("KeHuBianHao_SUM", "LB=<td>", "RB=<", "Ord=ALL", "RelFrameId=1", "Search=Body", "IgnoreRedirections=Yes", LAST); web_reg_save_param("TYPE_SUM", "LB=processinfolist/PROCESSINFO[@type='", "RB='", "Ord=ALL", "Search=Body", LAST); // 其他参数的保存... // 使用循环和判断找到目标数据 int i; for (i = 1; i <= n; i++) { char clientID[50]; sprintf(clientID, "%d", i); // 将行号转换为字符串 // 检查客户编号 char* found = strstr(lr_eval_string("{KeHuBianHao_SUM}"), clientID); if (found != NULL) { // 找到对应的数据并保存为LR参数 char associatedData[200]; sprintf(associatedData, "动态数据的计算公式"); // 替换为实际的计算公式 lr_save_string(associatedData, "TargetParam"); break; } } // 使用保存的参数执行下一步操作 web_submit_data("irs_workflow2.pr.prWFWorkList.do_2", "Action=http://182.119.171.149:9085/irs_workflow2.pr.prWFWorkList.do", "Method=POST", "TargetFrame=", "RecContentType=text/html", "Referer=http://182.119.171.149:9085/irs_workflow2.pr.prWFWorkList.do?clickCurrentMenuPath=评级->客户评级", "Snapshot=t9.inf", "Mode=HTML", ITEMDATA, ... ``` 在这个例子中,`lr_eval_string`用于在字符串中查找和替换已保存的参数。`sprintf`和`lr_save_string`则帮助我们将找到的关联数据转换为LR参数,确保在后续的脚本执行中能够正确引用。 灵活运用LR函数编写测试脚本是一项关键技能,它涉及到理解动态数据的关联、字符串操作、循环和判断等多方面的编程技巧。通过这样的方式,我们可以应对各种复杂的测试场景,确保测试脚本的稳定性和准确性。在实际工作中,不断学习和实践LoadRunner的各种函数,有助于提升测试效率,确保软件的质量和性能。
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- bdwptqmxgj11.zip
- onnxruntime-win-x86
- onnxruntime-win-x64-gpu-1.20.1.zip
- vs2019 c++20 语法规范 头文件 <ratio> 的源码阅读与注释,处理分数的存储,加减乘除,以及大小比较等运算
- 首次尝试使用 Win,DirectX C++ 中的形状渲染套件.zip
- 预乘混合模式是一种用途广泛的三合一混合模式 它已经存在很长时间了,但似乎每隔几年就会被重新发现 该项目包括使用预乘 alpha 的描述,示例和工具 .zip
- 项目描述 DirectX 引擎支持版本 9、10、11 库 Microsoft SDK 功能相机视图、照明、加载网格、动画、蒙皮、层次结构界面、动画控制器、网格容器、碰撞系统 .zip
- 项目 wiki 文档中使用的代码教程的源代码库.zip
- 面向对象的通用GUI框架.zip
- 基于Java语言的PlayerBase游戏角色设计源码