部署后我正在天蓝色管道中进行一个阶段。 我想运行一个脚本来从已部署的应用程序获取 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 Devops 池上注册的本地代理),我们可以将它们称为 构建池服务器,并且这些服务器与您执行部署的服务器具有网络连接,那么您可以创建一个 powershell或 bash 脚本,具体取决于您的操作系统来检查curl结果。
实际的 powershell 脚本将在您的构建代理(与部署服务器具有网络连接的计算机)上运行
Powershell 示例:
$result = (Invoke-WebRequest -Uri https://www.google.com).StatusCode;
Write-Host $result
如果网页存在,那么您将得到 200 结果,否则会得到另一个 HTTP 代码。
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