![](https://blog.kakaocdn.net/dn/dbMuq0/btrAGgaqG0w/KJgf1cvawinREaftv2ayx1/img.png)
요즘은 업무상 주로 하는것이 Rest Assured를 활용한 REST Api test인데.. Junit을 활용하여 돌리고 결과를 Extent Report로 내보내는 중이다.
기존코드를 보니... Sucess와 Fail 인 경우를 TestWatcher를 이용해서 리포트에 출력해주고 있다.
여기에 request/response data를 넣어주기 위해서는 RestAssured에서 제공하는 filters 를 활용하면된다.
아래와 같이 초기에 filter를 선언하여 주면 수행중 request/response에 해당하는 값들을 넣을 수 있다.
//필요한 변수선언
public static StringWriter requestWriter;
public static StringWriter responseWriter;
public static StringWriter errorWriter;
public static PrintStream requestCapture;
public static PrintStream responseCapture;
public static PrintStream errorCapture;
//대충 setup하는 부분에 아래를 추가.
//errorLoggingFilter는 http response 에 error 포함되어 있는 경우만 뽑고 싶을 경우 사용한다.
requestWriter = new StringWriter();
requestCapture = new PrintStream(new WriterOutputStream(requestWriter));
responseWriter = new StringWriter();
responseCapture = new PrintStream(new WriterOutputStream(responseWriter));
errorWriter = new StringWriter();
errorCapture = new PrintStream(new WriterOutputStream(errorWriter));
RestAssured.filters(new RequestLoggingFilter(requestCapture), new ResponseLoggingFilter(responseCapture), new ErrorLoggingFilter(errorCapture));
//이후 test pass/fail을 기록하는 곳에 아래를 추가하면 된다.
requestCapture.flush();
responseCapture.flush();
test.log(Status.INFO, requestWriter.toString());
test.log(Status.INFO, responsetWriter.toString());
그런데 수행해보니 data의 줄바꿈이 적용되지 않고 html 결과로 나온다..
이를 해결하려면 log 메소드로 스트링을 추가할때 스트링의 앞뒤로 <pre> </pre>태그를 넣어서 문장형식이 그대로 유지되도록 하면 된다.
이렇게 해서 테스트를 해보니 또 희한한 것이... flush를 해주었음에도 불구하고 testcase마다 생성한 request/response가 계속 쌓이면서 기록이된다..ㅡ.ㅡ;;;
이를 해결하기 위해서는 아래와 같이 StringWriter 의 버퍼를 비워주면 된다.
requestWriter.getBuffer().setLength(0);
responseWriter.getBuffer().setLength(0);
옛날옛적에.. android telephony framework 할때나 java를 사용했었는데... 몇년만에 Eclipse 를 설치하고 java로 나름 끄적끄적 테스트를 위한 코딩을 해보는지 모르겠다..ㅎㅎㅎ
이클립스 heap size를 꽤 키워주었는데도 testcase 천몇백개를 돌다보면 메모리문제로 죽기도 하는 경우도 가끔 생긴다. 노트북이 문제인건지... 사용하는 내가 문제인건지... 모르겠다..ㅎㅎ..
'STUDY' 카테고리의 다른 글
콜라츠추측에 의한 우박수열을 matplotlib로 시각화해보자 (0) | 2022.06.30 |
---|---|
UTQG지수와 실제 주행거리는 비슷할까? (4) | 2022.06.13 |
pypy 로 json decode 수행시 수행시간 변화 (0) | 2022.03.04 |
한글(hwp) 파이썬(python) 자동화 중 PutFieldText 의 텍스트에 줄바꿈문자(\n) 가 들어있을 때의 처리에 관하여. (4) | 2021.12.13 |
Python / 파이썬 coding시 기억해둘만한 것들 (2) | 2021.10.06 |
댓글