MockServer 설정
주요 목표:
전략
Docker - 컨테이너화된 애플리케이션(실제로 한 번 쓰고 어디서나 실행)
MockServer - json 리소스 또는 REST API를 통해 복잡한 요청/응답 기대치를 가진 로컬 서버를 생성합니다.
실현하기
$ mkdir /path/to/mockserver_container/ && cd /path/to/mockserver_container
docker-compose.yml
를 생성합니다. $ touch ./docker-compose.yml && nano ./docker-compose.yml
다음 코드 스니펫을 붙여넣습니다.
version: "2.4"
services:
mockServer:
image: mockserver/mockserver:latest
ports:
- 1080:1080
environment:
MOCKSERVER_WATCH_INITIALIZATION_JSON: "true"
MOCKSERVER_PROPERTY_FILE: /config/mockserver.properties
MOCKSERVER_INITIALIZATION_JSON_PATH: /config/initializerJson.json
volumes:
- type: bind
source: .
target: /config
이것은 다음과 같이 말합니다.
mockserver
의 도커 이미지를 사용하여 mockserver/mockserver:latest
라는 이름의 서비스를 만듭니다. host port
1080을 container port
1080에 할당합니다. enviroment variables
를 제공된 경로로 설정합니다. volume
(이 파일의 디렉터리)에서 컨테이너 내부의 current directory
로 /config
바인딩을 만듭니다.initializerJson
$ touch ./initializerJson.json && nano ./initializerJson.json
[
{
"httpRequest" : {
"method" : "GET",
"path" : "/api/v1/weather",
"queryStringParameters" : {
"code" : ["10969"]
}
},
"httpResponse" : {
"body" : "{\"wheather\": 20.5}",
"statusCode": 200
}
}
]
전체 설명서 참조를 찾을 수 있습니다here.
컨테이너 실행
이제 배관을 제거했으므로 배관을 실행할 차례입니다.
.yml
를 입력합니다. $ docker-compose up
터미널은 다음과 같이 인쇄되어야 합니다.
Creating mockserver_mockServer_1 ... done
Attaching to mockserver_mockServer_1
mockServer_1 |
mockServer_1 | java -Dfile.encoding=UTF-8 -jar /opt/mockserver/mockserver-netty-jar-with-dependencies.jar -server
mockServer_1 |
mockServer_1 | 2020-04-11 15:52:30 org.mockserver.log.MockServerEventLog INFO creating expectation:
mockServer_1 |
mockServer_1 | {
mockServer_1 | "id" : "3f3962d2-9c03-4dce-95cd-2522962ceccb",
mockServer_1 | "priority" : 0,
mockServer_1 | "httpRequest" : {
mockServer_1 | "method" : "GET",
mockServer_1 | "path" : "/api/v1/weather",
mockServer_1 | "queryStringParameters" : {
mockServer_1 | "code" : [ "10969" ]
mockServer_1 | }
mockServer_1 | },
mockServer_1 | "times" : {
mockServer_1 | "unlimited" : true
mockServer_1 | },
mockServer_1 | "timeToLive" : {
mockServer_1 | "unlimited" : true
mockServer_1 | },
mockServer_1 | "httpResponse" : {
mockServer_1 | "statusCode" : 200,
mockServer_1 | "body" : "{\"wheather\": 20.5}"
mockServer_1 | }
mockServer_1 | }
mockServer_1 |
mockServer_1 | 2020-04-11 15:52:30 org.mockserver.cli.Main INFO logger level is INFO, change using:
mockServer_1 | - 'ConfigurationProperties.logLevel(String level)' in Java code,
mockServer_1 | - '-logLevel' command line argument,
mockServer_1 | - 'mockserver.logLevel' JVM system property or,
mockServer_1 | - 'mockserver.logLevel' property value in 'mockserver.properties'
mockServer_1 | 2020-04-11 15:52:30 org.mockserver.log.MockServerEventLog INFO started on port: 1080
요청 보내기
새 터미널 창을 열고 다음을 입력합니다.
사용 가능한 컨테이너에 대한 정보를 보려면 다음을 다시 입력하십시오.
$ docker ps -a
이제 실행 중인 컨테이너에 대한 정보를 볼 수 있습니다.
$ curl localhost:1080/api/v1/weather\?code\=10969
응답이 표시되어야 합니다.
{"wheather": 20.5}
그리고 그게 다야!
간단하고 복잡한 요청과 응답을 모방할 수 있는 로컬 서버가 있습니다.
유용한 링크:
REST API Swagger docs
Reference
이 문제에 관하여(MockServer 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/iurysza/setting-up-mockserver-3kbe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)