繁体   English   中英

请求中不包含授权不记名令牌

[英]Authorization Bearer token is not included for request

我正在尝试以平静和放心的方式运行我的自动测试,但令牌不包含在我的请求生成方法中。 获取令牌本身的方法可以正常工作。 告诉我可能是什么原因。

public class ApiSteps {

    private String token;

    public String getAccessToken() {
        RequestSpecification requestSpec = RestAssured.with();
        requestSpec.given().contentType("application/x-www-form-urlencoded");
        Response giveToken = RestAssured.given()
                .formParam("username", "user")
                .formParam("password", "pass")
                .request().post("https://test.com/token");
        DocumentContext doc = JsonPath.parse(giveToken.asString());
        token = doc.read("access_token");
        System.out.println(token);
        return token;
    }

    final RequestSpecification spec = new RequestSpecBuilder()
            .setBaseUri("https://test.com/api/v1")
            .addHeader("Content-Type","application/json")
            .addHeader("Accept", "text/plain")
            .addHeader("Authorization", "Bearer " + getAccessToken())
            .build();

    @Step
    public void testRest() {
        given()
            .spec(spec)
        .when()
            .get("/Test")
        .then()
            .assertThat()
            .statusCode(200);
    }
}

在请求中开始测试时 - null。 我试图用注解@Before来标记,但结果是一样的

在此处输入图像描述

您需要将获取令牌的方法移动到单独的 class 并按如下方式使用它:

NameClass nameClass = new NameClass();

.addHeader("授权", "承载" + getAccessToken())

这里使用这个class的方法:

nameClass.getAccessToken()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM