在jmeter中使用JSON提取器将授权令牌传递给后续请求

问题描述

使用jmeter中的JSON提取器将授权令牌传递给后续请求。 我有2个请求

  1. 令牌
  2. 获取政策 场景:生成令牌并将该令牌传递到“获取策略”请求的标头中。

我已经生成令牌并使用JSON提取提取了(变量的名称为TOKEN) 然后使用Debug sampler验证了是否提取了承载令牌。 之后,我在下一个请求中添加了“ HTTP标头管理器”。并在其中添加了授权

名称=授权,值= $ {TOKEN}。

在运行第二个(获取策略)请求的脚本时,获得“正在运行脚本的未经授权的访问。”

解决方法

对于Bearer授权,您的标头值必须为Bearer YOUR_TOKEN,您错过了Bearer关键字的值,并且HTTP Header Manager无法理解您的授权方法。

Name = Authorization and Value = Bearer ${TOKEN}

我希望这可以为您提供帮助

,

根据RFC 6750

在“授权”请求标头中发送访问令牌时 字段由HTTP / 1.1 [RFC2617]定义,客户端使用“承载者” 传输访问令牌的身份验证方案。

例如:

  `   

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">



 <TextView
            android:id="@+id/tv_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:text="Select"
            android:textSize="17sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginTop="10dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            app:layout_constraintBottom_toTopOf="@id/horizontal_barrier"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_header"
            tools:itemCount="10"
            tools:listitem="@layout/item_list" />
    
        <android.support.constraint.Barrier
            android:id="@+id/horizontal_barrier"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:barrierDirection="top"
            app:constraint_referenced_ids="et" />
    
    
        <EditText
            android:id="@+id/et"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginEnd="15dp"
            android:imeOptions="actionDone"
            android:inputType="number"
            android:textColor="@color/black_primary_text_color"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/horizontal_barrier" />



</android.support.constraint.ConstraintLayout>

`

因此HTTP Header Manager的正确配置为:

enter image description here