groovy는 JUnit 스타일에 포함되지 않는건가 ? + GTest가 뭔지 좀 헷갈린다
groovy는 JUnit 스타일에 포함되지 않는건가 ? + GTest가 뭔지 좀 헷갈린다
GTest와 JUnit 스타일의 관계
GTest의 주요 기능
GTest의 주요 기능예제 코드
import static net.grinder.script.Grinder.grinder
import static org.junit.Assert.*
import net.grinder.script.GTest
import net.grinder.scriptengine.groovy.junit.GrinderRunner
import net.grinder.scriptengine.groovy.junit.annotation.BeforeProcess
import net.grinder.scriptengine.groovy.junit.annotation.BeforeThread
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.ngrinder.http.HTTPRequest
import org.ngrinder.http.HTTPResponse
@RunWith(GrinderRunner)
class TestRunner {
// 여러 엔드포인트에 대한 GTest 객체 선언
public static GTest test1
public static GTest test2
public static GTest test3
public static HTTPRequest request
// 테스트 프로세스 시작 전에 한 번만 실행되는 설정 메서드
@BeforeProcess
public static void beforeProcess() {
test1 = new GTest(1, "GET /test")
test2 = new GTest(2, "GET /health")
test3 = new GTest(3, "GET /profile")
request = new HTTPRequest()
grinder.logger.info("Before process.")
}
// 각 스레드가 시작되기 전에 실행되는 설정 메서드
@BeforeThread
public void beforeThread() {
test1.record(this, "test1")
test2.record(this, "test2")
test3.record(this, "test3")
grinder.statistics.delayReports = true
grinder.logger.info("Before thread.")
}
// 각 테스트 메서드
@Test
public void test1() {
HTTPResponse response = request.GET("https://example.com/test")
validateResponse(response, 1)
}
@Test
public void test2() {
HTTPResponse response = request.GET("https://example.com/health")
validateResponse(response, 2)
}
@Test
public void test3() {
HTTPResponse response = request.GET("https://example.com/profile")
validateResponse(response, 3)
}
// 공통 응답 검증 메서드
private void validateResponse(HTTPResponse response, int testNumber) {
if (response.statusCode == 301 || response.statusCode == 302) {
grinder.logger.warn("Warning. The response may not be correct. The response code for test {} was {}.", testNumber, response.statusCode)
} else {
assertEquals(200, response.statusCode)
grinder.logger.info("Test {} passed with status code {}", testNumber, response.statusCode)
}
}
}주요 구성 요소 설명
Last updated