学术研究爱好者 2023-08-10 12:50 采纳率: 0%
浏览 4

loadrunner回放响应里报:500,JWT signature does not match locally

在loadrunner中运行登陆、申请脚本,查看回放响应中:JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted

脚本中也写了提取token并应用到后续请求头中

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-10 14:04
    关注

    【以下回答由 GPT 生成】

    该问题出现的原因是,在回放过程中,JWT签名与本地计算的签名不匹配。这可能是由于在回放过程中,使用的密钥或算法与生成JWT的操作不一致导致的。

    为了解决这个问题,可以采取以下步骤:

    1. 确保在回放过程中使用的密钥和算法与生成JWT的操作一致。检查代码中生成JWT的逻辑,确保使用相同的密钥和算法来计算签名。如果回放过程中使用的密钥和算法不同,可以修改回放逻辑,以保持一致。

    2. 确认在回放过程中是否正确地提取了JWT。检查脚本中提取JWT的逻辑,确保正确地从响应中提取JWT并将其应用到后续请求头中。可以使用LoadRunner的相关函数(如web_reg_save_param_ex函数)来提取JWT。

    3. 检查JWT是否在回放过程中被篡改。可以通过在回放过程中将JWT的签名进行验证来检查其完整性。可以使用相关的JWT库或函数来验证签名。如果JWT被篡改,可能需要重新生成JWT或采取其他措施保证其完整性。

    4. 如果以上步骤都没有解决问题,可以考虑使用其他工具或方法进行压力测试。有时LoadRunner可能对JWT的处理存在一些限制或问题,可以尝试使用其他压力测试工具或方法来解决该问题。

    import jwt
    
    # 假设使用HS256算法和密钥"secret_key"来生成JWT
    algorithm = 'HS256'
    secret_key = 'secret_key'
    
    # 生成JWT
    payload = {'key': 'value'}
    token = jwt.encode(payload, secret_key, algorithm=algorithm)
    
    # 验证JWT的签名
    decoded = jwt.decode(token, secret_key, algorithms=[algorithm])
    
    print(decoded)
    

    以上是一个使用Python中的jwt库生成和验证JWT的示例代码。可以根据具体需要修改密钥和算法等参数。通过验证JWT的签名,可以确保其完整性,并确定是否存在签名不匹配的问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月10日

悬赏问题

  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请