如何将restassured请求数据记录到testNG报告文件中

时间:2017-10-13 12:41:20

标签: java rest logging testng rest-assured

我想使用testNG的Reporter.log()方法将在控制台中打印的请求数据记录到testNG报告文件中,该方法需要字符串输入。以下是我的要求规范:

private RequestSpecification getRequestSpec(ContentType requestbodytype, ContentType responsetype) {

    return  RestAssured.given().log().everything().contentType(requestbodytype).accept(responsetype);
}
protected Response get(String resourceURI, ContentType requestbodytype, ContentType responsetype, boolean enableUrlEncoding) {

    Response rs = null;
    rs = getRequestSpec(requestbodytype, responsetype).when().get(resourceURI);
    Reporter.log(rs.print());
    return rs;
}

我想将下面的内容记录到测试日志文件以及我将在执行此调用时收到的响应

Request method: GET
Request URI:    http://localhost:port/url
Proxy:          <none>
Request params: <none>
Query params:   <none>
Form params:    <none>
Path params:    <none>
Headers:        Accept=application/json, application/javascript, text/javascript
                Content-Type=application/json; charset=UTF-8
Cookies:        <none>
Multiparts:     <none>
Body:           <none>

任何人都可以帮我解决这个问题。

由于

2 个答案:

答案 0 :(得分:0)

您可以向requestSpecBuilder添加过滤器并向其添加Reporter.log。

rSpecBuilder.addFilter( (req, response, ctx) -> {Reporter.log("Req called" + req.getDerivedPath()); return ctx.next(req, response); });

答案 1 :(得分:0)

我使用了AppDelegate.m并且工作正常。现在接下来的挑战是启用漂亮的打印。

{{1}}