Azure Pipeline - 在本地环境中测试 URL 的脚本

问题描述 投票:0回答:2

部署后我正在天蓝色管道中进行一个阶段。 我想运行一个脚本来从已部署的应用程序获取 HTTP 200 返回。

部署在本地服务器上运行。而且我要测试的URL只能在内网访问。市场上有一些烟雾网络测试,但它们仅测试可在互联网上访问的 URL。

可以运行如下脚本,由安装的本地代理执行。 内网代理可以访问待测试的URL

result=$(curl -s -o /dev/null -w “%{http_code}” www.bing.com/)

if [ “$result” == “200” ]
then
echo “OK”
else
echo $result
exit 1
fi
azure azure-devops continuous-integration azure-pipelines pipeline
2个回答
0
投票

如果您有一个私有构建池(在 Azure Devops 池上注册的本地代理),我们可以将它们称为 构建池服务器,并且这些服务器与您执行部署的服务器具有网络连接,那么您可以创建一个 powershell或 bash 脚本,具体取决于您的操作系统来检查curl结果。

实际的 powershell 脚本将在您的构建代理(与部署服务器具有网络连接的计算机)上运行

Powershell 示例:

$result = (Invoke-WebRequest -Uri https://www.google.com).StatusCode; 
Write-Host $result

如果网页存在,那么您将得到 200 结果,否则会得到另一个 HTTP 代码。


0
投票
trigger:
- main  # Or your desired branch

pool:
  vmImage: 'ubuntu-latest'

jobs:
- job: CheckMultipleWebsites
  displayName: 'Check if multiple websites are accessible'
  pool:
    vmImage: 'ubuntu-latest'
  
  steps:
  - task: Bash@3
    displayName: 'Check Multiple Websites Accessibility'
    inputs:
      targetType: 'inline'
      script: |
        WEBSITES=("https://website1.com" "https://website2.com" "https://website3.com")  # Replace with your website URLs
        
        for WEBSITE_URL in "${WEBSITES[@]}"; do
          echo "Checking $WEBSITE_URL ..."
          HTTP_STATUS=$(curl -o /dev/null -s -w "%{http_code}" $WEBSITE_URL)
          
          echo "HTTP status for $WEBSITE_URL: $HTTP_STATUS"
          
          if [ "$HTTP_STATUS" -eq 200 ]; then
            echo "$WEBSITE_URL is accessible"
          else
            echo "$WEBSITE_URL is not accessible. HTTP Status: $HTTP_STATUS"
            exit 1  # Fail the job if any website is not accessible
          fi
        done
© www.soinside.com 2019 - 2024. All rights reserved.