簡體   English   中英

如何配置RestAssured LogConfig以將請求和響應寫入文本文件

[英]How to configure RestAssured LogConfig to write request and response to a text file

我完全是RestAssured的新手。 我喜歡將請求和響應寫入文本文件。 我不想在每個測試中都重復代碼以提取和編寫請求和響應,但是我想在設置方法中配置RestAssuredConfig來將請求和響應重定向到文本文件。

有人可以幫我了解我的代碼中缺少的內容嗎? 我正在嘗試配置LogConfig以將請求和響應寫入StringWriter,以便可以將其寫入所需的文件?

我嘗試了谷歌的幾個例子,但沒有一個幫助。

請注意,下面的示例是一個原型類型,其中我暫時在做sysout,一旦代碼工作,我可以將其寫入文本文件。

//這是我從中調用configure日志方法的示例代碼// configureRequestLogging

RequestSpecification request = given();
RequestSpecification logRequest = configureRequestLogging(request);

//此方法有望對請求和響應進行SOP處理。 但是我總是虛無

private static RequestSpecification configureRequestLogging(RequestSpecification request) {
    RequestSpecification requestSpec;
    final StringWriter writer = new StringWriter();
    PrintStream captor = new PrintStream(new WriterOutputStream(writer), true);
    requestSpec = request.config(RestAssuredConfig.config().logConfig(LogConfig.logConfig().defaultStream(captor)))
    .log().all();

    System.out.println(writer.toString());

    return requestSpec;
    }

如果要將文件輸出與控制台輸出分開(例如,提供更多詳細信息),則可以創建一個新的日志記錄過濾器(接口Filter ),在那里可以指定打印流

@Override
public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
    RequestPrinter.print(requestSpec, requestSpec.getMethod(), requestSpec.getUri(), LogDetail.ALL, new PrintStream(new FileOutputStream("example.txt", true)), true);
    return ctx.next(requestSpec, responseSpec);
}

您也可以添加帶有所需打印流的內置RequestLoggingFilter。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM