LoadRunner录制Oracle EBS加密二进制请求脚本回放失败问题排查
LoadRunner测试Oracle EBS脚本异常修复方案
问题背景
- 测试环境:VuGen 24.1,Oracle Form 12.0.14.12020000.22
- 业务流程:登录EBS后点击values选项下载FRMservlet.jnlp,打开该文件进入Java Web Launcher页面,需选择下拉框值并在下一页面输入唯一条目
- 录制方式:采用Web HTTP/HTML + Oracle NCA多协议模式
核心问题
录制后Java Web Launcher页面的所有请求体均为二进制/加密格式,无法进行脚本增强;回放时已关联jsessionidforms,未出现HTTP错误,但日志中出现ifError:7/500,怀疑响应体加密导致VuGen无法解密,生成的二进制代码引发回放异常,尝试在线解密工具未解决问题。
修复步骤
校准Oracle NCA协议配置
- 录制前在VuGen协议设置里,确保Oracle NCA的「Oracle Forms」选项启用,手动匹配Oracle Form版本(12.0.14),避免协议解析不兼容。
- 将录制设置的「Data Format」切换为「Oracle NCA」,取代默认的HTTP二进制解析,让VuGen能识别Oracle Forms的加密通信格式。
调整录制模式,精准捕获Oracle NCA流量
- 尝试单独用Oracle NCA协议录制,部分EBS场景中Java Web Launcher的交互完全依赖Oracle NCA,HTTP仅负责初始jnlp下载,多协议组合可能干扰流量解析。
- 录制时开启「Extended Log」里的「Parameter Substitution」和「Data Returned by Server」,回放时查看详细日志,确认加密请求是否被解析为Oracle NCA操作指令(比如
nca_set_field、nca_select_list_item),而非单纯的二进制流。
处理加密请求的参数化与关联
- 检查EBS是否开启Forms加密(如SSL/TLS或Oracle自有加密机制),若是则在VuGen的Oracle NCA配置中添加对应加密密钥,或启用SSL解析(如果用HTTPS)。
- 针对下拉框选择和唯一条目输入,录制时手动触发操作后,查看VuGen生成的Oracle NCA函数。如果没生成这类函数,说明录制时协议没捕获到Oracle Forms交互,需调整录制代理设置。
解决回放
ifError:7/500错误- 该错误对应Oracle Forms内部错误,大概率是请求体加密上下文不匹配(比如会话密钥、表单状态)。除了jsessionidforms,还要检查是否关联了
forms_session_id等其他Oracle NCA会话参数。 - 回放时禁用HTTP协议的「Simulate Sequential Download」选项,确保Oracle NCA请求按正确顺序发送,避免会话状态混乱。
- 该错误对应Oracle Forms内部错误,大概率是请求体加密上下文不匹配(比如会话密钥、表单状态)。除了jsessionidforms,还要检查是否关联了
相关请求示例
web_custom_request ( "URL=../forms/lservlet;JsessionIDForms={C_JsessionIDForms}", "Method=POST", "Resource=0", "RecContentType=application/octet-stream", "Referer=", "Snapshot=t108.inf", "Mode=HTTP", "EncType=application/octet-stream", "BodyBinary=GDay\\xEF\\xBF\\xBD", )
内容的提问来源于stack exchange,提问作者Srinivas
相关产品推荐
相关产品推荐

