java - 放心 : How can I get the RequestSpecification fields or parameters after sending a request?

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

我正在做 cucumber bdd 测试,我有一个类 [MyClient] ,它包装了放心的方法,并且我有多个类调用 [MyClient]

我可以执行诸如 put、post 等方法,但我想知道是否有办法让我在执行完操作后获取实际的请求字段( header 、正文...)请求。

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

考虑到以下内容,我可以调用 sendPostRequest() ,它将 RequestSpecification 实例存储到名为 request 的字段中,并且我可以获取随时通过调用 getter 来获取它。但是,我无法从 RequestSpecification 对象中获取各个字段。从调试器,我可以很好地看到这些字段,所以我想必须有一些干净的方法来获取它。

我已经尝试过 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);  
 }
}

最佳答案

您创建一个过滤器( 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 ),您可以从中获取(和修改)例如headers 和 body 等。过滤器可以将这些值存储到您选择的数据结构中。

关于java - 放心 : How can I get the RequestSpecification fields or parameters after sending a request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46199652/

相关文章:

java - 在java中,使用 String::length 进行 Comparator.comparing()

java - "Double"与 CompletableFuture 的组合

ruby - 检查 Appium 中是否显示具有不同文本大小写的元素并执行相应的逻辑

scala - 你如何使用 Scala 2.11 和 sbt 0.13 运行 cucumber ?

java - 编码对象列表而不影响现有列表

java - 来自 Java 的 SVN 分支信息

java - 读取文本文件并根据 Java 中的输入转换为二维 int 数组

java - 添加Android按钮以动态查看

java - 向mysql插入数据后,Spark Java中显示的是IterableWrapper(非空迭代器)而不是String

ruby - 在 Nitrous.io 上运行 cucumber