You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter录制Oracle Fusion脚本后二次登录遇checksum format error求助

Oracle Fusion二次SSO登录报checksum format error的排查与解决

可能的原因

  • 证书链导入不规范:合并的三级信任链顺序错误,或JKS文件中未正确标记所有证书为信任状态,导致JMeter无法验证二次登录请求的SSL证书,进而影响checksum生成或校验。
  • JMeter SSL配置未生效:修改的属性文件不对、路径错误或未重启JMeter,导致自定义TrustStore未被加载,SSL上下文与浏览器不一致。
  • checksum参数未正确关联:二次登录的checksum通常是动态生成的(基于会话ID、时间戳、证书信息等),若未从响应中正确提取或未模拟JS生成逻辑,会导致参数不匹配。
  • SSL协议/加密套件不匹配:浏览器使用的TLS版本(如TLS1.3)或加密套件与JMeter默认配置不同,导致握手失败或请求参数生成异常。

解决办法

重新规范导入证书链

  1. 用OpenSSL导出完整证书链,按服务器证书→中间CA→根CA的顺序合并为单个PEM文件。
  2. 使用keytool命令导入到JKS:
    keytool -importcert -file full_chain.pem -alias fusion_certs -keystore fusion_truststore.jks -storepass changeit
    
    导入过程中确认所有证书均被标记为信任。
  3. 验证JKS内容:
    keytool -list -v -keystore fusion_truststore.jks
    
    确保三个证书都存在,且类型为trustedCertEntry。

确保JMeter SSL配置生效

  1. 编辑JMeter安装目录下的system.properties文件,添加:
    javax.net.ssl.trustStore=/绝对路径/fusion_truststore.jks
    javax.net.ssl.trustStorePassword=changeit
    javax.net.ssl.trustStoreType=JKS
    
  2. 重启JMeter,添加Debug Sampler查看javax.net.ssl.trustStore属性,确认路径正确加载。

修复checksum参数关联

  1. 抓包对比浏览器二次登录请求与JMeter请求,定位checksum参数的来源:
    • 若来自首次登录响应的隐藏字段/Cookie,用正则表达式或CSS Selector提取后替换到二次请求。
    • 若为JS动态生成,分析JS中的算法(如HMAC-SHA256),用JSR223 Sampler提取必要参数(如sessionId、timestamp)模拟生成。
  2. 确保checksum参数在二次请求中完全匹配浏览器发送的值,无格式或大小写错误。

匹配浏览器SSL配置

  1. 在system.properties中添加协议配置:
    https.default.protocol=TLSv1.3
    https.socket.protocols=TLSv1.2,TLSv1.3
    
  2. 若需要,进一步指定加密套件(可从浏览器抓包获取),添加:
    https.cipherSuites=TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,...
    

检查会话Cookie

  • 确保JMeter的HTTP Cookie Manager未启用“Clear cookies each iteration”,保留首次登录的所有会话Cookie(如SSO token、session ID)。
  • 对比浏览器Cookie与JMeter Cookie Manager中的值,确保无遗漏或过期。

内容的提问来源于stack exchange,提问作者vallabh patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:07:17