[英]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.