Udostępnij przez


Użyj Dev Proxy w Azure Pipelines

Na pierwszy rzut oka
Celem: Korzystanie z serwera proxy dev w usłudze Azure Pipelines
Czas: 20 minut
Wtyczki: Różne
Wymagania wstępne:Konfigurowanie serwera proxy dev, usługi Azure DevOps

Korzystanie z usługi Dev Proxy z usługą Azure Pipelines to doskonały sposób testowania aplikacji w kontrolowanym środowisku. Wykonując następujące kroki, możesz użyć serwera proxy deweloperskiego z usługą Azure Pipelines.

Uwaga

W tym artykule używamy agenta systemu Ubuntu dla usługi Azure Pipelines.

Instalowanie serwera proxy deweloperskiego i buforowanie go

Zacznij od zainstalowania Dev Proxy na agencie przy użyciu zadania skryptowego.

- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
  displayName: 'Install Dev Proxy'

Domyślnie powoduje to zainstalowanie najnowszej wersji serwera proxy deweloperów. Jeśli chcesz zainstalować określoną wersję, możesz ją określić, przekazując wersję na końcu skryptu:

- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" v1.0.0
  displayName: 'Install Dev Proxy v1.0.0'

Zalecaną praktyką jest buforowanie plików instalacyjnych Dev Proxy w celu przyspieszenia kolejnych uruchomień. W tym celu można użyć zadania Cache. Oto jak to zrobić:

variables:
- name: DEV_PROXY_VERSION
  value: v1.0.0
- name: DEV_PROXY_CACHE_RESTORED
  value: 'false'

steps:
- task: Cache@2
  inputs:
    key: '"dev-proxy-$(DEV_PROXY_VERSION)"'
    path: ./devproxy
    cacheHitVar: DEV_PROXY_CACHE_RESTORED
  displayName: Cache Dev Proxy

- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" $DEV_PROXY_VERSION
  displayName: 'Install Dev Proxy'
  condition: ne(variables.DEV_PROXY_CACHE_RESTORED, 'true')

Uruchamianie serwera proxy deweloperskiego

Gdy uruchamiasz Dev Proxy w potoku CI/CD, możesz uruchomić go ze skryptu lub dołączyć skrypt w tekście. Gdy skrypt jest gotowy, wywołaj go w pliku potoku:

- script: bash ./run.sh
  displayName: 'Start Dev Proxy'

Kontrolowanie serwera proxy deweloperskiego

Aby kontrolować serwer proxy deweloperów, możesz użyć interfejsu API serwera proxy deweloperów. Aby na przykład rozpocząć rejestrowanie żądań, możesz wysłać żądanie POST do punktu końcowego /proxy :

- script: |
    curl -X POST http://localhost:8897/proxy -H "Content-Type: application/json" -d '{"recording": true}'
  displayName: 'Start recording'

Przekaż dzienniki serwera proxy deweloperskiego jako artefakty

Po uruchomieniu Dev Proxy w potoku ciągłej integracji/ciągłego wdrażania możesz chcieć przeanalizować dzienniki w późniejszym czasie. Aby zachować dzienniki Dev Proxy, możesz przesłać je jako artefakty:

- task: PublishPipelineArtifact@1
  displayName: Upload Dev Proxy logs
  inputs:
    targetPath: $(LOG_FILE)
    artifact: $(LOG_FILE)

Prześlij raporty serwera proxy deweloperskiego

Jeśli używasz serwera proxy deweloperów do analizowania żądań, możesz również przekazać raporty jako artefakty:

- script: |
    mkdir -p $(Build.ArtifactStagingDirectory)/Reports
    for file in *Reporter*; do
      if [ -f "$file" ]; then
        cp "$file" $(Build.ArtifactStagingDirectory)/Reports
      fi
    done
  displayName: 'Copy reports to artifact directory'

- task: PublishPipelineArtifact@1
  displayName: Upload Dev Proxy reports
  inputs:
    targetPath: '$(Build.ArtifactStagingDirectory)/Reports'
    artifact: 'Reports'

Przykładowy plik potoku

Oto prosty przykład używania serwera proxy dev w usłudze Azure Pipeline. Ten przepływ pracy instaluje serwer proxy dev, uruchamia go, wysyła żądanie za pomocą narzędzia curl, a następnie wyświetla dzienniki.

trigger:
- main
- dev

pool:
  vmImage: ubuntu-latest

variables:
- name: DEV_PROXY_VERSION
  value: v1.0.0

steps:
- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" $DEV_PROXY_VERSION
  displayName: 'Install Dev Proxy'

- script: bash ./start.sh
  displayName: 'Start Dev Proxy'

- script: |
     curl -ikx http://127.0.0.1:8000 https://jsonplaceholder.typicode.com/posts
  displayName: 'Send request'

- script: |
    curl -X POST http://localhost:8897/proxy/stop
  displayName: 'Stop Dev Proxy'

- script: |
    echo "Dev Proxy logs:"
    cat devproxy.log
  displayName: 'Show Dev Proxy logs'

Zobacz także