request logging code example

Example 1: response logging

Response Logging
If you want to print the response body regardless of the
status code you can do:

get("/x").then().log().body() ..
This will print the response body regardless if an error occurred.
If you're only interested in printing the response body if an error
occur then you can use:

get("/x").then().log().ifError(). .. 
You can also log all details in the response
including status line, headers and cookies:

get("/x").then().log().all(). .. 
as well as only status line, headers or cookies:

get("/x").then().log().statusLine(). .. // Only log the status line
get("/x").then().log().headers(). .. // Only log the response headers
get("/x").then().log().cookies(). .. // Only log the response cookies
You can also configure to log the response
only if the status code matches some value:

get("/x").then().log().ifStatusCodeIsEqualTo(302). .. // 
Only log if the status code is equal to 302

get("/x").then().log().ifStatusCodeMatches(matcher). .. //
Only log if the status code matches the supplied Hamcrest matcher

Example 2: logging request

Logging
In many cases it can be useful to print the
response and/or request details in order to 
help you create the correct expectations and 
send the correct requests. To do help you do thi
s you can use one of the predefined filters 
supplied with REST Assured or you can use one of the shortcuts.

Request Logging

given().log().all(). .. //
Log all request specification details
including parameters, headers and body
given().log().params(). .. // Log only the parameters of the request
given().log().body(). .. // Log only the request body
given().log().headers(). .. // Log only the request headers
given().log().cookies(). .. // Log only the request cookies
given().log().method(). .. // Log only the request method
given().log().path(). .. // Log only the request path

Example 3: from logging import logger

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import logging

logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)

logger.debug('Loging %s lewel', 'DEBUG')
logger.info('Loging %s lewel', 'INFO')
logger.warning('Loging %s lewel', 'WARN')
logger.error('Loging %s lewel', 'ERROR')
logger.critical('Loging %s lewel', 'CRITICAL')

Example 4: what do you use for logging

I use Log4J for logging. 
I always log important steps in the test
execution. That helps me to debug
when there is a failure.
Log4J is not a replacement for HTML reports.
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j- core</artifactId>
<version>2.11.0</version>
</dependency>

Tags:

Misc Example