한눈에 보기
목표: 개발 프록시 작업을 보고서 파일로 기록 및 내보내기
시간: 10분
Plugins:ExecutionSummaryPlugin, MarkdownReporter
필수 구성 요소:개발 프록시 설정
프록시 작업을 기록하고 내보내려면 구성 파일에서 ExecutionSummaryPlugin 및 Reporter 플러그 인을 사용합니다.
다음 예제에서는 ExecutionSummaryPlugin및 MarkdownReporter 플러그 인을 사용하여 프록시 작업을 기록하고 내보내도록 개발 프록시를 구성하는 방법을 보여 줍니다.
파일: devproxyrc.json
{
"plugins": [
{
"name": "ExecutionSummaryPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
},
{
"name": "MarkdownReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
]
}
Tip
구성을 직접 빌드하는 대신 앱이 호출하는 URL과 해당 활동의 요약을 기록하는 미리 설정된 api-inventory 미리 설정을 다운로드할 수 있습니다.
devproxy config get api-inventory
devproxy --config-file "~dataFolder/configs/api-inventory/.devproxy/devproxyrc.json" --urls-to-watch "https://api.contoso.com/*"
자세한 내용은 미리 설정된 구성 사용을 참조하세요.
참고
활동을 내보내려면 구성 파일에서 보고자 플러그 인을 사용하도록 설정하고 플러그 인 목록의 다음 ExecutionSummaryPlugin 위치에 배치해야 합니다. 플러그 인 목록의 끝에 보고자 플러그 인을 배치하는 것이 좋습니다.
활동을 기록하려면 개발자 프록시를 레코드 모드로 배치해야 합니다.
녹음을 시작하는 방법에는 두 가지가 있습니다.
-
즉시 기록합니다.
--record옵션을 사용하여 프록시를 시작하고, 예를 들어devproxy --record. - 임시 레코드입니다. 프록시가 실행되는 동안 R 키를 누릅니다.
기록이 활성화되면 ◉ Recording...가 프록시 출력에 표시됩니다.
기록된 활동에서 보고서를 생성하려면 기록을 중지합니다.
기록을 중지하는 방법에는 두 가지가 있습니다.
- 프록시를 중지합니다. Ctrl + C 키를 누르십시오.
- 임시 중지. S 키를 누릅니다.
기본적으로 활동은 URL별로 그룹화됩니다. 메시지 유형별로 활동을 그룹화하려면 이 --summary-group-by 옵션을 사용합니다.
devproxy --record --summary-group-by messageType
보고서가 작성되는 위치
기록을 중지하면 활성화된 각 리포터가 보고 플러그인에서 생성된 각 보고서에 대해 파일 하나를 생성합니다. 개발자 프록시는 개발자 프록시를 시작한 폴더인 현재 작업 디렉터리에 파일을 씁니다. 예를 들어 CI 파이프라인과 같이 백그라운드에서 Dev Proxy를 시작할 때 보고서를 저장할 폴더에서 시작해야 합니다.
보고서 파일은 다음과 같은 명명 패턴을 사용합니다.
<ReportingPlugin>_<Reporter>.<ext>
예를 들어 이 문서의 구성은 ExecutionSummaryPlugin_MarkdownReporter.md라는 이름의 파일을 생성합니다.
해당 이름의 파일이 이미 있는 경우 Dev Proxy는 덮어쓰지 않습니다. 대신, 파일 이름에 yyyyMMddHHmmss 형식의 타임스탬프를 추가합니다(예: ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md). Dev Proxy는 작성하는 각 보고서 파일의 이름을 기록합니다. 예를 들면 다음과 같습니다.
Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...
다음 표에서는 각 리포터가 사용하는 확장을 나열합니다.
| 보고자 | Extension |
|---|---|
| JsonReporter |
.json (일부 보고서는 예를 들어 UrlDiscoveryPlugin에 .jsonc와 같은 다른 확장자를 사용합니다.) |
| MarkdownReporter | .md |
| PlainTextReporter | .txt |
참고
모든 녹음은 로컬입니다. Microsoft로 데이터가 전송되지 않습니다.
스크립트 및 CI에서 기록
스크립트 및 CI/CD 파이프라인에서는 키를 눌러 녹화를 시작하고 중지할 수 없습니다. 대신 백그라운드에서 Dev Proxy를 실행하고 Dev Proxy API를 사용하여 녹음/녹화를 제어합니다. 모든 API 요청에는 베어러 토큰이 필요합니다. 토큰을 미리 지정하려면 Dev Proxy를 시작하기 전에 DEV_PROXY_API_TOKEN 환경 변수를 32자 이상의 값으로 설정합니다.
최소 시퀀스는 다음과 같습니다.
-
DEV_PROXY_API_TOKEN을(를) 32자 이상의 임의 값으로 설정합니다. - 백그라운드에서 Dev Proxy를 시작합니다:
devproxy --detach --as-system-proxy false -c devproxyrc.json. -
GET /proxy이(가) 성공할 때까지 기다리세요. - 녹음 시작:
POST /proxy{"recording": true}. -
HTTP_PROXY및HTTPS_PROXY환경 변수가 Dev Proxy를 가리키도록 워크로드를 실행합니다. - 녹음 중지:
POST /proxy및{"recording": false}. 요청은 리포터가 작업을 마친 후 반환되므로 요청이 완료될 때 보고서가 준비됩니다. - 개발 프록시 종료:
POST /proxy/stopProxy.
개발자 프록시는 실행한 폴더에 보고서를 씁니다.
#!/usr/bin/env bash
set -euo pipefail
# 1. use a known API token (at least 32 characters)
export DEV_PROXY_API_TOKEN=$(openssl rand -hex 32)
api=http://127.0.0.1:8897
auth="Authorization: Bearer $DEV_PROXY_API_TOKEN"
# 2. start Dev Proxy in the background
devproxy --detach --as-system-proxy false -c devproxyrc.json
# 3. wait for the API
until curl -sf -H "$auth" "$api/proxy" > /dev/null; do sleep 1; done
# 4. start recording
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": true}'
# 5. run the workload through Dev Proxy
HTTP_PROXY=http://127.0.0.1:8000 HTTPS_PROXY=http://127.0.0.1:8000 npm test
# 6. stop recording and wait for the reports
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": false}'
# 7. shut down Dev Proxy
curl -sf -X POST "$api/proxy/stopProxy" -H "$auth"
이 예제에서는 기본 프록시 포트 8000 및 기본 API 포트 8897를 사용합니다. API 호출이 Dev Proxy를 통과하지 않도록 워크로드에 대해서만 프록시 환경 변수를 설정합니다. HTTPS 트래픽을 가로채려면 워크로드가 Dev Proxy 루트 인증서를 신뢰해야 합니다. 인증서 신뢰 등 파이프라인에서 개발 프록시를 실행하는 방법에 대한 자세한 내용은 CI/CD 시나리오에서 개발 프록시 사용을 참조하세요.
참고하십시오
- ExecutionSummaryPlugin - 전체 참조
- MarkdownReporter - 보고서 형식
- 프록시 API - 프로그래밍 방식으로 Dev Proxy 제어
- CI/CD 시나리오에서 Dev Proxy 사용 - 파이프라인에서 Dev Proxy 실행
- 용어집 - 개발자 프록시 용어
- CI/CD 시나리오에서 Dev Proxy 사용 - 파이프라인에서 API 호출 기록
- 사전 설정 구성 사용 - 미리 만들어진 구성
Dev Proxy