RestAssured:如何在发送请求后获取RequestSpecification字段或参数?

时间:2017-09-13 14:02:57

标签: java java-8 cucumber rest-assured cucumber-java

我正在进行黄瓜bdd测试我有一个包含重新安全方法的类[MyClient],我有多个调用[MyClient]的类。

我可以做put,post等方法,但是我想知道是否有办法让我得到实际的请求字段(标题,正文...)请求。

我在获取和解析响应方面也没有任何问题,但我无法收到请求。

考虑到以下情况,我可以调用将sendPostRequest()实例存储到名为RequestSpecification的字段的request,我可以随时通过调用getter来获取它。但是,我无法从RequestSpecification对象中获取单个字段。从debugger,我可以看到这些字段很好,所以我认为必须有一些干净的方式让我得到它。

我已经尝试了log(),但它似乎没有给我我需要的东西。 任何帮助表示赞赏!!

打电话:

public class MyInterfaceSteps() {
 private myClient = new MyClient();

 public sendPostRequest(){
  myClient.post(someHeaders, someBody, someUrl);
 }
}

客户类别:

public class MyClient() {
 private RequestSpecification request;
 private Response response;

 public getRequest() {
  return request;
 }

 public getResponse() {
  return response;
 }

 public Response post(Map<String, String> headers, String body, String url) {
  request = given().headers(headers).contentType(ContentType.JSON).body(body);
  response = request.post(url);  
 }
}

1 个答案:

答案 0 :(得分:2)

您创建了一个过滤器(https://github.com/rest-assured/rest-assured/wiki/Usage#filters),可以访问FilterableRequestSpecification(http://static.javadoc.io/io.rest-assured/rest-assured/3.0.3/io/restassured/specification/FilterableRequestSpecification.html),您可以从中获取(和修改),例如标题和正文等过滤器可以将这些值存储到您选择的数据结构中。