Testing 将响应值编码为base64并在另一个测试中使用

Testing 将响应值编码为base64并在另一个测试中使用,testing,jmeter,base64,Testing,Jmeter,Base64,我正在尝试使用JMeter进行一些测试,但在尝试进行一些复杂的测试时遇到了一个问题 我有一个登录HTTP请求测试,它返回一个包含auth\u令牌的响应。我需要在末尾添加:“,并将其编码为base64,以便在另一个测试的请求中使用该值 我一直在读到可以用BeanShell完成,但我还没能实现。如果有人能给我一些执行此任务的步骤,我将不胜感激。我想您知道如何通过I.e 如果您已安装-您可以使用以下功能: ${__base64Encode(${auth_token},auth_token_encode

我正在尝试使用JMeter进行一些测试,但在尝试进行一些复杂的测试时遇到了一个问题

我有一个登录HTTP请求测试,它返回一个包含
auth\u令牌的响应。我需要在末尾添加
:“
,并将其编码为base64,以便在另一个测试的请求中使用该值


我一直在读到可以用BeanShell完成,但我还没能实现。如果有人能给我一些执行此任务的步骤,我将不胜感激。

我想您知道如何通过I.e

如果您已安装-您可以使用以下功能:

${__base64Encode(${auth_token},auth_token_encoded)}
如果你没有插件/不能拥有/不想拥有-下面是如何使用Beanshell

  • 将Beanshell后处理器添加到正则表达式提取器(或用于获取
    auth\u令牌的其他后处理器)后面的某个位置
  • 将以下代码放入Beanshell后处理器“脚本”区域:

  • 请参阅开始使用Beanshell脚本

    这两种情况都假定:

    • 您在
      ${auth\u token}
      JMeter变量中存储了“auth\u token”值
    • 您将能够以
      ${auth\u token\u encoded}

    我有一个类似的测试用例,我需要将一个文件作为Base64编码字符串放入HTTP请求的主体中

    我没有使用BeanShell,而是使用了groovy脚本功能

    {
        "example": "${__groovy(new File('${SCRIPT_PATH}/test.file').bytes.encodeBase64())}"
    }
    
    如果您已经有一个字符串,则此代码段的工作方式类似:

    {
        "example": "${__groovy('string to encode'.bytes.encodeBase64())}"
    }
    
    或者这是用户定义变量的用法:

    {
        "example": "${__groovy('${STRING_VARIABLE}'.bytes.encodeBase64())}"
    }
    


    \
    ${SCRIPT_PATH}
    是一个用户定义的变量,在我的例子中,它指向加载的jmx文件的文件夹:
    ${{uuuu BeanShell(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir();)}${uu BeanShell(file.separator,)}

    您好,Dmitri。谢谢您的回复。这是我试图提取的身份验证令牌。我正试图使用此正则表达式提取器提取它。并使用此beanshell后处理器将其转换为base64。我创建了一个变量来存储编码后的它,但仍然无法使其工作。有什么想法吗?–user6519108 13分钟前有一个想法:你对如何使用正则表达式没有任何想法。你从哪里得到的
    元内容
    ?另一个stackoverflow帖子?或者将你的正则表达式更改为类似于:
    “auth_token”:“(.+?)”
    ,或者使用
    {
        "example": "${__groovy('${STRING_VARIABLE}'.bytes.encodeBase64())}"
    }