프록시 활동 기록 및 내보내기

한눈에 보기
목표: 개발 프록시 작업을 보고서 파일로 기록 및 내보내기
시간: 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자 이상의 값으로 설정합니다.

최소 시퀀스는 다음과 같습니다.

  1. DEV_PROXY_API_TOKEN을(를) 32자 이상의 임의 값으로 설정합니다.
  2. 백그라운드에서 Dev Proxy를 시작합니다: devproxy --detach --as-system-proxy false -c devproxyrc.json.
  3. GET /proxy이(가) 성공할 때까지 기다리세요.
  4. 녹음 시작: POST /proxy{"recording": true}.
  5. HTTP_PROXY 및 HTTPS_PROXY 환경 변수가 Dev Proxy를 가리키도록 워크로드를 실행합니다.
  6. 녹음 중지: POST /proxy 및 {"recording": false}. 요청은 리포터가 작업을 마친 후 반환되므로 요청이 완료될 때 보고서가 준비됩니다.
  7. 개발 프록시 종료: 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 시나리오에서 개발 프록시 사용을 참조하세요.

참고하십시오