请求不包含授权承载令牌
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);
}
}
在请求中开始测试时 - 空。我尝试用注解@Before来标记,结果还是一样
需要将获取token的方法移到单独的class中使用,如下:
NameClass nameClass = new NameClass();
.addHeader("Authorization", "Bearer " + getAccessToken())
这里使用这个class的方法:
nameClass.getAccessToken()
我正尝试 运行 我的自动测试平静而放心,但令牌未包含在我的请求生成方法中。获取令牌的方法本身可以正常工作。告诉我可能是什么原因。
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);
}
}
在请求中开始测试时 - 空。我尝试用注解@Before来标记,结果还是一样
需要将获取token的方法移到单独的class中使用,如下:
NameClass nameClass = new NameClass();
.addHeader("Authorization", "Bearer " + getAccessToken())
这里使用这个class的方法:
nameClass.getAccessToken()