一目了然
目標:在 Azure Pipelines 中使用 Dev Proxy
時間: 20分鐘
插件: 各種
Prerequisites:Set Up Dev Proxy, Azure DevOps
搭配 Azure Pipelines 使用開發 Proxy 是測試受控制環境中應用程式的絕佳方式。 依照下列步驟,您可以搭配 Azure Pipelines 使用 Dev Proxy。
注意
在本文中,我們會使用適用於 Azure Pipelines 的 Ubuntu 代理程式。
安裝開發代理伺服器並快取
首先,使用腳本任務在代理上安裝 Dev Proxy。
- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
displayName: 'Install Dev Proxy'
根據預設,這會安裝最新版的 Dev Proxy。 如果您要安裝特定版本,您可以在文稿結尾傳遞版本來指定它:
- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" v1.0.0
displayName: 'Install Dev Proxy v1.0.0'
建議的做法是快取開發 Proxy 安裝檔案,以加速後續的執行。 您可以使用 Cache 工作來達成此目的。 以下是您可以執行此動作的方式:
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')
啟動開發代理伺服器
當您在 CI/CD 管線中啟動 Dev Proxy 時,您可以從 腳本啟動,或將腳本內嵌。 當您準備好文稿時,請在管線檔案中叫用它:
- script: bash ./run.sh
displayName: 'Start Dev Proxy'
控制開發人員 Proxy
若要控制 Dev Proxy,您可以使用 Dev Proxy API。 例如,若要開始錄製要求,您可以將POST要求傳送至 /proxy 端點:
- script: |
curl -X POST http://localhost:8897/proxy -H "Content-Type: application/json" -d '{"recording": true}'
displayName: 'Start recording'
將開發 Proxy 日誌上傳為工件
當您在 CI/CD 管線中執行 Dev Proxy 時,您可能會想稍後分析日誌。 若要保留 Dev Proxy 記錄,您可以將記錄上傳為構建產物:
- task: PublishPipelineArtifact@1
displayName: Upload Dev Proxy logs
inputs:
targetPath: $(LOG_FILE)
artifact: $(LOG_FILE)
上傳開發代理報告
如果您使用 Dev Proxy 來分析要求,您可能也想要將報告上傳為成品:
- 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'
範例管線檔案
以下是如何在 Azure Pipeline 中使用開發 Proxy 的簡單範例。 此工作流程會安裝 Dev Proxy、啟動它、使用 curl 傳送要求,然後顯示記錄。
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'