基于SAP SRM(Fiori前端)的LoadRunner多步骤测试求助
SAP SRM Fiori LoadRunner测试问题解决方案
一、Excel文档修改脚本实现
针对SAP-Web协议无法直接操作本地文件的问题,可通过LoadRunner嵌入VBScript调用Excel对象模型完成修改:
- 确保测试机已安装Microsoft Office,具备Excel组件支持
- 在下载Excel并保存到本地后,插入以下VBScript片段修改指定数据:
Dim objExcel, objWorkbook Set objExcel = CreateObject("Excel.Application") objExcel.Visible = False ' 后台运行,不显示Excel窗口 Set objWorkbook = objExcel.Workbooks.Open("C:\test\invoice_template.xlsx") ' 修改目标单元格,示例为Sheet1的B3单元格 objWorkbook.Sheets("Sheet1").Range("B3").Value = "更新后的发票金额" objWorkbook.Save ' 保存修改 objWorkbook.Close objExcel.Quit Set objWorkbook = Nothing Set objExcel = Nothing
- 若测试机无法安装Office,可改用OpenXML SDK编写VBScript操作Excel(需提前部署SDK组件)
二、多步骤耗时统计方案
除LoadRunner原生事务外,提供两种精准计时方式:
1. 自定义事务包裹关键步骤
用lr_start_transaction和lr_end_transaction直接标记需要测量的阶段:
// 测量Excel上传+保存耗时 lr_start_transaction("Excel_Upload_And_Save"); // 此处插入上传Excel及触发保存的请求代码 web_submit_data("Upload_Excel", "Action=https://your-srm-url/upload", "Method=POST", "EncType=multipart/form-data", ITEMDATA, "Name=file", "Value=C:\test\invoice_template.xlsx", "File=Yes", ENDITEM, LAST); lr_end_transaction("Excel_Upload_And_Save", LR_AUTO);
2. 时间戳差值计算
通过lr_get_current_time获取毫秒级时间戳,手动计算步骤耗时:
long start_time, end_time; // 测量异步值计算流程耗时 start_time = lr_get_current_time(); // 触发异步计算的请求 web_custom_request("Trigger_Async_Calc", "URL=https://your-srm-url/async-calc", "Method=POST", LAST); // 循环等待Fiori通知出现 web_reg_find("Text=异步计算已完成", "SaveCount=calc_complete", LAST); do { web_custom_request("Check_Notification", "URL=https://your-srm-url/notification-poll", "Method=GET", LAST); lr_think_time(1); // 每1秒轮询一次 } while (atoi(lr_eval_string("{calc_complete}")) == 0); end_time = lr_get_current_time(); lr_output_message("异步值计算耗时:%d 毫秒", end_time - start_time);
三、Ajax TruClient协议失败的替代处理
若TruClient录制SPA架构的Fiori页面失败,可通过以下方式优化SAP-Web协议脚本:
- 录制前开启LoadRunner的「录制所有Ajax请求」选项(录制设置→高级→勾选)
- 通过浏览器F12抓包,补充Fiori页面的OData异步请求,用
web_custom_request手动添加到脚本中 - 针对Fiori通知组件,抓包找到其轮询接口,在脚本中循环调用直到返回完成状态,替代屏幕元素判断
内容的提问来源于stack exchange,提问作者Nike
相关产品推荐
相关产品推荐

