azure-integration-tester
title: "Azure Integration Tester" sidebar_label: "Azure Integration Tester" description: "Run post-deployment integration tests for Azure resources. Verify Function Apps, Storage Accounts, Databases, App Services are healthy and accessible. Use after successful Azure deployment."â
Azure Integration Tester
Run post-deployment integration tests for Azure resources. Verify Function Apps, Storage Accounts, Databases, App Services are healthy and accessible. Use after successful Azure deployment.
Detailsâ
| Property | Value |
|---|---|
| Skill Directory | .github/skills/azure-integration-tester/ |
| Phase | Post-Deploy |
| User Invocable | â Yes |
| Usage | /azure-integration-tester Deployment outputs (resource IDs and endpoints) |
Documentationâ
Azure Integration Tester
Run comprehensive integration tests on deployed Azure resources to verify they are functional, accessible, and properly configured.
When to Useâ
- After successful ARM template deployment
- To verify resource health and endpoints
- Before handing off deployment to user
- For troubleshooting deployment issues
Procedureâ
1. Identify Deployed Resourcesâ
Parse deployment outputs to identify resource types:
- Function Apps â HTTP endpoint tests
- Storage Accounts â Connectivity and blob operations
- SQL Databases / Cosmos DB â Connection tests
- App Services â HTTP endpoint tests
- Application Insights â Telemetry verification
2. Run Resource-Specific Testsâ
For Function Apps:
Execute test-function-app.sh:
./scripts/test-function-app.sh \
--url "https://func-api-dev-eastus.azurewebsites.net" \
--resource-group "rg-webapp-dev-eastus" \
--name "func-api-dev-eastus"
Tests performed:
- â HTTP endpoint accessibility (GET /)
- â Health endpoint (/api/health or /admin/host/status)
- â Response time under threshold
- â HTTPS enforcement (reject HTTP)
- â CORS configuration
- â Application Insights connectivity
For Storage Accounts:
Execute test-storage.sh:
./scripts/test-storage.sh \
--account-name "stwebappdev8k3m" \
--resource-group "rg-webapp-dev-eastus"
Tests performed:
- â Account accessibility
- â Blob service available
- â Create/read/delete test blob
- â HTTPS-only enforcement
- â Firewall rules (if configured)
- â Minimum TLS version
For Databases:
Execute test-database.sh:
./scripts/test-database.sh \
--type "sqldb" \
--server "sql-webapp-dev-eastus.database.windows.net" \
--database "mydb" \
--resource-group "rg-webapp-dev-eastus"
Tests performed:
- â Server reachability
- â Database exists
- â Connection successful (using managed identity if configured)
- â Basic query execution (SELECT 1)
- â Firewall rules allow access
- â Encryption enabled
3. Verify Security Configurationsâ
Check that security best practices are applied:
# HTTPS-only enforcement
az resource show --ids {resource-id} --query "properties.httpsOnly"
# Managed identity enabled
az resource show --ids {resource-id} --query "identity.type"
# TLS version
az resource show --ids {resource-id} --query "properties.minTlsVersion"
# Diagnostic logs enabled
az monitor diagnostic-settings list --resource {resource-id}
4. Generate Test Reportâ
Output a comprehensive test report:
## Integration Test Report
**Deployment ID:** {deployment-id}
**Tested:** {timestamp}
**Duration:** {test-duration}
### Test Results
#### Function App: func-api-dev-eastus
- â
HTTP endpoint accessible (200 OK)
- â
Response time: 245ms (threshold: 3000ms)
- â
HTTPS enforcement verified
- â
Application Insights connected
- â ī¸ No custom health endpoint found (using default)
#### Storage Account: stwebappdev8k3m
- â
Blob service accessible
- â
Test blob created/read/deleted successfully
- â
HTTPS-only enforced
- â
TLS 1.2 minimum version set
#### Security Configuration
- â
All resources use HTTPS-only
- â
Managed identities configured
- â
Diagnostic logging enabled
- â
Resource tags applied correctly
### Summary
**Total Tests:** 12
**Passed:** 11 â
**Warnings:** 1 â ī¸
**Failed:** 0 â
**Overall Status:** HEALTHY â
### Recommendations
1. Consider adding custom health endpoint to Function App for better monitoring
2. Configure Application Insights alerts for failures
3. Enable auto-scaling if expecting variable load
### Next Steps
Your Azure resources are deployed and verified. You can now:
1. Deploy your application code to the Function App
2. Configure any application-specific settings
3. Set up CI/CD pipelines for automated deployments
4. Monitor resources in Azure Portal
**Azure Portal Links:**
- Function App: https://portal.azure.com/#@{tenant}/resource{function-app-id}
- Resource Group: https://portal.azure.com/#@{tenant}/resource{rg-id}
Test Scriptsâ
All test scripts are located in the ./scripts/ directory:
- test-function-app.sh - Function App health checks
- test-storage.sh - Storage Account connectivity
- test-database.sh - Database connection tests
Common Test Patternsâ
See test-patterns.md for detailed test patterns including:
- Retry logic for transient failures
- Health endpoint formats
- Connection string handling
- Managed identity authentication
- Error diagnostics
Error Handlingâ
If tests fail, provide diagnostic information:
â **Test Failed: Function App Endpoint**
**Error:** Connection refused
**Endpoint:** https://func-api-dev-eastus.azurewebsites.net
**Possible Causes:**
1. Function App still starting up (can take 2-3 minutes after deployment)
2. Network security group blocking access
3. Function App in stopped state
**Troubleshooting:**
1. Wait 2 minutes and retry
2. Check Function App status: `az functionapp show --name {name} --resource-group {rg} --query "state"`
3. View logs: `az webapp log tail --name {name} --resource-group {rg}`
**Retry Command:**
./scripts/test-function-app.sh --url {url} --retry 3 --delay 30
Skipping Testsâ
Some tests may not apply:
- Resource Groups have no endpoints to test
- Some resources may be private (no public access)
In these cases, output:
âšī¸ **Integration Tests: N/A**
No testable endpoints for Resource Group deployments.
Verified resource creation via Azure Resource Graph instead.
Usage Examplesâ
After Function App deployment:
@git-ape deploy a python function app
[... deployment completes ...]
/azure-integration-tester {deployment-outputs}
Manual invocation:
/azure-integration-tester
Please provide deployment outputs or resource details:
- Function App URL: https://func-api-dev-eastus.azurewebsites.net
- Resource Group: rg-webapp-dev-eastus
- Storage Account: stwebappdev8k3m
Output Formatâ
Always provide:
- Detailed test results for each resource
- Pass/fail status with diagnostics
- Security configuration verification
- Performance metrics (response times)
- Overall health summary
- Recommendations for improvements
- Next steps for the user
- Azure Portal links for monitoring