灵活运用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币余额
- 我的收藏
- 我的下载
- 下载帮助