Skip to main content

Jul 6, 2020 - 2 minute read - Test Automation RestAssured Tips

RestAssured Tips for Proxies and Logging

TLDR; Some tips for seeing traffic when using RestAssured.

Logging

RestAssured.filters(
    new RequestLoggingFilter(),
    new ResponseLoggingFilter());

When the above code is used then you will see logging messages to the console which show you the basic requests and responses that your messages send out.

Log to File

The Filters above can be instantiated with a PrintStream to write to files.

e.g.

    RestAssured.filters(new RequestLoggingFilter(printToFile),
            new ResponseLoggingFilter(printToFile));

And here is a contextual example showing creating the file, the FileOutputStream and the PrintStream

// create a file in the project dir 
// named using current time in milliseconds
final String currentDir = System.getProperty("user.dir");
File outputFile = new File(currentDir,
            "restassured" + System.currentTimeMillis()+".log");

System.out.println("log to file:" + 
    outputFile.getAbsolutePath().toString());

Then, using the file to write.

FileOutputStream fileOutput = new FileOutputStream(outputFile);
PrintStream printToFile = new PrintStream(fileOutput);

// configuring RestAssured to use the file
RestAssured.filters(new RequestLoggingFilter(printToFile),
        new ResponseLoggingFilter(printToFile));

Proxies

I have found the logging approach useful for simple debugging and for seeing the output.

But when I really want to have a detailed look at the traffic, I prefer to go through a proxy.

RestAssured has a very simple proxy configuration.

RestAssured.proxy("localhost",8080);
RestAssured.useRelaxedHTTPSValidation();

I find I need to set the relaxed HTTPS validation when going through a proxy.

Code

You can find the example code for this in:

Specifically:

If you are interested in learning how to Automate and Test APIs, then you might find my book “Automating and Testing a REST API” useful


You will need a Github account to comment. Or you can contact me with your comment.

I reserve the right to delete spam comments e.g. if your comment adds no value and its purpose is simply to create a backlink to another site offering training, or courses, etc.