Aracılığıyla paylaş


Azure Pipelines ile Dev Proxy kullanma

Bir bakışta
Hedef: Azure Pipelines'da Dev Proxy kullanma
Süre: 20 dakika
Eklentiler: Çeşitli
Önkoşullar:Geliştirme Proxy'sini ayarlama, Azure DevOps

Azure Pipelines ile Dev Proxy kullanmak, uygulamalarınızı denetimli bir ortamda test etmenin harika bir yoludur. Bu adımları izleyerek Dev Proxy'yi Azure Pipelines'ınız ile kullanabilirsiniz.

Not

Bu makalede Azure Pipelines için bir Ubuntu aracısı kullanacağız.

Geliştirme Proxy'sini yükleme ve önbelleğe alma

Aracıya Dev Proxy yüklemek için bir betik görevi kullanarak başlamalısınız.

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

Varsayılan olarak bu, Dev Proxy'nin en son sürümünü yükler. Belirli bir sürümü yüklemek istiyorsanız, betiğin sonunda bir sürüm geçirerek bunu belirtebilirsiniz:

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

Önerilen bir uygulama, sonraki çalıştırmaları hızlandırmak için Geliştirme Ara Sunucusu yükleme dosyalarını önbelleğe almaktır. Bu amaçla bu görevi Cache kullanabilirsiniz. Bunu şu şekilde yapabilirsiniz:

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')

Geliştirme Proxy'sini başlat

Ci/CD işlem hattında Dev Proxy'yi başlattığınızda, bunu bir betikten başlatabilir veya betiği satır içi olarak ekleyebilirsiniz. Betiğinizi hazır olduğunuzda işlem hattı dosyanızda çağırabilirsiniz:

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

Kontrol Dev Proxy'si

Geliştirme Proxy'sini denetlemek için Dev Proxy API'sini kullanabilirsiniz. Örneğin, kayıt isteklerini başlatmak için uç noktaya bir POST isteği /proxy gönderebilirsiniz:

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

Dev Proxy günlüklerini artifakt olarak karşıya yükleme

Ci/CD işlem hattında Dev Proxy'yi çalıştırdığınızda, günlükleri daha sonra analiz etmek isteyebilirsiniz. Dev Proxy günlüklerini tutmak için, onları dosya olarak yükleyebilirsiniz.

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

Dev Proxy raporlarını yükleyin

İstekleri analiz etmek için Dev Proxy kullanıyorsanız, raporları artefakt olarak da karşıya yüklemek isteyebilirsiniz.

- 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'

Örnek işlem hattı dosyası

Aşağıda, Azure İşlem Hattı'nda Dev Proxy'nin nasıl kullanılacağına yönelik basit bir örnek verilmiştir. Bu iş akışı Dev Proxy'yi yükler, başlatır, curl kullanarak istek gönderir ve ardından günlükleri gösterir.

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'

Ayrıca bakınız