Yük testlerini çalıştırmak için CI/CD iş akışınızı el ile yapılandırma
Makale
Ci/CD işlem hattı oluşturarak Azure Yük Testi'nde yük testlerini otomatikleştirebilirsiniz. Bu makalede GitHub Actions, Azure Pipelines veya diğer CI araçlarını Azure Yük Testi'nde mevcut bir testi çağırmak için el ile yapılandırmayı öğreneceksiniz. Yük altında uygulamanızın performansını ve kararlılığını sürekli doğrulamak için yük testini otomatikleştirin.
CI/CD işlem hattına mevcut bir yük testi eklemek için:
CI aracının Azure yük testi kaynağınıza bağlanmasına izin vermek için hizmet kimlik doğrulamasını yapılandırın.
JMeter test betiği ve yük testi YAML yapılandırması gibi yük testi giriş dosyalarını deponuza ekleyin.
Azure Load Testing'i çağırmak için CI/CD işlem hattı tanımını güncelleştirin.
Azure DevOps kuruluşu ve projesi. Azure DevOps kuruluşunuz yoksa ücretsiz bir kuruluş oluşturabilirsiniz. Azure Pipelines'ı kullanmaya başlama konusunda yardıma ihtiyacınız varsa bkz . İlk işlem hattınızı oluşturma.
Yük testi giriş dosyalarını depolamak ve GitHub Actions iş akışı oluşturmak için bir GitHub deposu. Bir depo oluşturmak için bkz . Yeni depo oluşturma.
CI işlem hattı oluşturma veya değiştirme izni.
Yük testi giriş dosyalarını depolamak için bir kaynak kodu deposu.
Hizmet kimlik doğrulamayı yapılandırma
CI/CD iş akışınızda yük testi çalıştırmak için, yük testi kaynağınıza erişmek için CI/CD iş akışına izin vermeniz gerekir. CI/CD iş akışı için bir hizmet sorumlusu oluşturun ve Yük Testi Katkıda Bulunanı Azure RBAC rolünü atayın.
Azure Pipelines'da, Azure aboneliğinizdeki kaynaklara erişmek için Azure DevOps projenizde bir hizmet bağlantısı oluşturursunuz. Hizmet bağlantısını oluşturduğunuzda Azure DevOps bir Microsoft Entra hizmet sorumlusu nesnesi oluşturur.
Azure DevOps kuruluşunuzda ()https://dev.azure.com/<your-organization> oturum açın ve projenizi seçin.
Metin yer tutucusunun <your-organization> yerine proje tanımlayıcınızı yazın.
Proje ayarları>Hizmet bağlantıları>+ Yeni hizmet bağlantısı'nı seçin.
Yeni hizmet bağlantısı bölmesinde Azure Resource Manager'ı ve ardından İleri'yi seçin.
Hizmet Sorumlusu (otomatik) kimlik doğrulama yöntemini ve ardından İleri'yi seçin.
Hizmet bağlantısı ayrıntılarını girin ve ardından Kaydet'i seçerek hizmet bağlantısını oluşturun.
Alan
Değer
Kapsam düzeyi
Abonelik.
Abonelik
Yük testi kaynağınızı barındıran Azure aboneliğini seçin.
Kaynak grubu
Yük testi kaynağınızı içeren kaynak grubunu seçin.
Hizmet bağlantısı adı
Hizmet bağlantısı için benzersiz bir ad girin.
Tüm işlem hatlarına erişim izni verme
İşaretlendi.
Hizmet bağlantıları listesinden daha önce oluşturduğunuz bağlantıyı seçin ve ardından Hizmet Sorumlusunu Yönet'i seçin.
Azure portalı ayrı bir tarayıcı sekmesinde açılır ve hizmet sorumlusu ayrıntılarını gösterir.
Azure portalında Görünen ad değerini kopyalayın.
Sonraki adımda bu değeri hizmet sorumlusuna yük testleri çalıştırma izinleri vermek için kullanırsınız.
Azure Yük Testi'ne erişim izni verme
Azure Yük Testi, yük testi kaynağınızda belirli etkinlikleri gerçekleştirme izinleri vermek için Azure RBAC kullanır. CI/CD işlem hattınızdan yük testi çalıştırmak için hizmet sorumlusuna Yük Testi Katkıda Bulunanı rolünü verirsiniz.
Azure portalında Azure Yük Testi kaynağınıza gidin.
Erişim denetimi (IAM)>Rol ataması ekle'yi>seçin.
Rol sekmesinde, iş işlevi rolleri listesinden Yük Testi Katkıda Bulunanı'nı seçin.
Üyeler sekmesinde Üye seç'i seçin ve daha önce kopyaladığınız görünen adı kullanarak hizmet sorumlusunda arama yapın.
Hizmet sorumlusunu ve ardından Seç'i seçin.
Gözden Geçir + ata sekmesinde Gözden geçir ve ata'yı seçerek rol atamasını ekleyin.
Artık Azure yük testi kaynağınıza erişmek için Azure Pipelines iş akışı tanımınızda hizmet bağlantısını kullanabilirsiniz.
GitHub Actions iş akışından Azure Yük Testi kaynağınıza erişmek için önce bir Microsoft Entra hizmet sorumlusu oluşturursunuz. Bu hizmet sorumlusu, Microsoft Entra Id'de GitHub Actions iş akışınızı temsil eder.
Ardından, Azure Yük Testi kaynağınızla yük testi oluşturmak ve çalıştırmak için hizmet sorumlusuna izinler verirsiniz.
Hizmet sorumlusu oluşturma
Azure aboneliğinde bir hizmet sorumlusu oluşturun ve GitHub Actions iş akışınızın yük testlerini çalıştırmak için Azure yük testi kaynağınıza erişebilmesi için Yük Testi Katkıda Bulunanı rolünü atayın.
Bir hizmet sorumlusu oluşturun ve rolü atayın Load Test Contributor :
# Get the resource ID for the load testing resource - replace the text place holders.
loadtest=$(az resource show -g <resource-group-name> -n <load-testing-resource-name> --resource-type "Microsoft.LoadTestService/loadtests" --query "id" -o tsv)
echo $loadtest
# Create a service principal and assign the Load Test Contributor role - the scope is limited to the load testing resource.
az ad sp create-for-rbac --name "my-load-test-cicd" --role "Load Test Contributor" \
--scopes $loadtest \
--json-auth
Çıkış, hizmet sorumlusunu temsil eden bir JSON nesnesidir. GitHub Actions iş akışında Azure'da kimlik doğrulaması yapmak için bu bilgileri kullanırsınız.
Creating 'Load Test Contributor' role assignment under scope
{
"clientId": "00000000-0000-0000-0000-000000000000",
"clientSecret": "00000000-0000-0000-0000-000000000000",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
Dekont
Bu komutu çalıştırdığınızda kullanımdan --sdk-auth kaldırma uyarısı alabilirsiniz. Alternatif olarak, Azure ile GitHub'ın kimliğini doğrulamak için OpenID Bağlan (OIDC) tabanlı kimlik doğrulamasını kullanabilirsiniz. OpenID Bağlan ile Azure oturum açma eylemini kullanmayı öğrenin.
Çıktı JSON nesnesini panoya kopyalayın.
Sonraki adımda hizmet sorumlusu bilgilerini GitHub Actions gizli dizisi olarak depolaacaksınız.
Azure kimlik bilgilerini GitHub Actions gizli dizisinde depolama
Hizmet sorumlusu bilgilerini güvenli bir şekilde depolamak için bir GitHub Actions gizli dizisi oluşturun. Azure ile kimlik doğrulaması yapmak ve Azure yük testi kaynağınıza erişmek için iş akışı tanımınızda bu gizli diziyi kullanırsınız.
Dekont
Azure'da kimlik doğrulaması yapmak için OpenID Bağlan kullanıyorsanız, Azure oturum açma eyleminde hizmet sorumlusu nesnesini geçirmeniz gerekmez. OpenID Bağlan ile Azure oturum açma eylemini kullanmayı öğrenin.
Yeni depo gizli dizisi'ni seçin, gizli dizi bilgilerini girin ve ardından Gizli dizi ekle'yi seçerek yeni bir gizli dizi oluşturun.
Alan
Değer
Adı
AZURE_CREDENTIALS
Gizli dizi
Daha önce kopyaladığınız hizmet sorumlusu oluşturma komutundan JSON çıkışını yapıştırın.
Artık depolanan kimlik bilgilerini kullanarak GitHub Actions iş akışınızdan Azure aboneliğinize ve yük testi kaynağınıza erişebilirsiniz.
Başka bir CI/CD aracı kullanıyorsanız, Azure kaynaklarınızla etkileşime geçmek için Azure CLI'yi kullanırsınız. Yük testi kaynağınıza CI aracı erişimini yetkilendirmek için aşağıdaki adımları gerçekleştirin:
Azure aboneliğinize bağlanmak ve Azure yük testi kaynağınıza erişmek için bir Microsoft Entra hizmet sorumlusu oluşturun.
Yük Testi Katkıda Bulunanı rolünü atayarak hizmet sorumlusuna yük testi oluşturma ve çalıştırma izinleri verin.
Azure kimlik bilgilerini CI aracında güvenli bir şekilde depolayın.
CI aracınız için hizmet yetkilendirmesini yapılandırmak için aşağıdaki adımları gerçekleştirin:
Bir hizmet sorumlusu oluşturun ve Yük Testi Katkıda Bulunanı rolünü atayın:
<resource-group-name> ve <load-testing-resource-name> metin yer tutucularını değiştirin.
# Get the resource ID for the load testing resource - replace the text place holders.
loadtest=$(az resource show -g <resource-group-name> -n <load-testing-resource-name> --resource-type "Microsoft.LoadTestService/loadtests" --query "id" -o tsv)
echo $loadtest
# Create a service principal and assign the Load Test Contributor role - the scope is limited to the load testing resource.
az ad sp create-for-rbac --name "my-load-test-cicd" --role "Load Test Contributor" \
--scopes $loadtest \
--json-auth
Çıkış, hizmet sorumlusunu temsil eden bir JSON nesnesidir.
Creating 'Load Test Contributor' role assignment under scope
{
"clientId": "00000000-0000-0000-0000-000000000000",
"clientSecret": "00000000-0000-0000-0000-000000000000",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
clientId, clientSecretve değerlerini kopyalayın ve tenantId CI aracınızda gizli diziler olarak güvenli bir şekilde depolayın.
Azure CLI az login komutuyla Azure aboneliğinizde oturum açmak için bu değerleri kullanırsınız.
Deponuza yük testi dosyaları ekleme
CI/CD iş akışında Azure Yük Testi ile yük testi çalıştırmak için kaynak denetim deponuza tüm yük testi giriş dosyalarını eklemeniz gerekir.
Mevcut bir yük testiniz yoksa aşağıdaki dosyaları kaynak kod deponuza ekleyin:
Yük testi yapılandırma YAML dosyası. Yük testi yapılandırma YAML dosyası oluşturmayı öğrenin.
Test planı dosyası. JMeter tabanlı testler için bir JMeter test betiği (JMX dosyası) ekleyin. URL tabanlı testler için istekler JSON dosyası ekleyin.
Test planınızın kullandığı tüm giriş veri dosyaları. Örneğin, CSV veri dosyaları.
Mevcut bir yük testimiz varsa yapılandırma ayarlarını ve tüm giriş dosyalarını doğrudan Azure portalından indirebilirsiniz. Azure portalında mevcut bir yük testi için giriş dosyalarını indirmek için aşağıdaki adımları gerçekleştirin:
Azure portalında Azure Yük Testi kaynağınıza gidin.
Sol bölmede Testler'i seçerek yük testlerinin listesini görüntüleyin ve ardından testinizi seçin.
Üzerinde çalıştığınız test çalıştırmasının yanındaki üç noktayı (...) seçip Giriş dosyasını indir'i seçin.
Tarayıcı, yük testi giriş dosyalarını içeren sıkıştırılmış bir klasörü indirir.
Giriş dosyalarını ayıklamak için herhangi bir zip aracını kullanın.
Klasör aşağıdaki dosyaları içerir:
config.yaml: yük testi YAML yapılandırma dosyası. Ci/CD iş akışı tanımında bu dosyaya başvurursunuz.
.jmx: JMeter test betiği
Yük testini çalıştırmak için gereken CSV dosyaları veya kullanıcı özellikleri dosyaları gibi ek giriş dosyaları.
Ayıklanan tüm giriş dosyalarını kaynak denetim deponuza işleyin.
CI/CD işlem hattını yapılandırdığınız kaynak kod deposunu kullanın.
CI/CD iş akışı tanımını güncelleştirme
Azure Yük Testi, yük testlerini çalıştırmak için hem GitHub Actions'ı hem de Azure Pipelines'ı destekler.
Azure CLI kullanarak Azure yük testi kaynağınız için yük testi çalıştırmak üzere CI iş akışınızı güncelleştirin. CI iş akışınıza aşağıdaki komutları eklemek için CI aracının ayrıntılarını kullanın:
Hizmet sorumlusunu kullanarak Azure aboneliğinde oturum açın.
clientIdDaha önce depoladığınız , clientSecretve tenandId değerlerini kullanın.
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID
az account set -s $AZURE_SUBSCRIPTION_ID
Yük testi yapılandırma YAML dosyasını kullanarak bir yük testi oluşturun.
<load-testing-resource>, <load-testing-resource-group>ve <load-test-config-yaml> metin yer tutucularını yük testi kaynağının adı, kaynak grubu adı ve daha önce depoya eklediğiniz yük testi yapılandırma YAML dosyasının dosya adıyla değiştirin.
az load test create --load-test-resource <load-testing-resource> --resource-group <load-testing-resource-group> --test-id sample-test-id --load-test-config-file <load-test-config-yaml>
Yük testini çalıştırın.
testRunId="run_"`date +"%Y%m%d%_H%M%S"`
displayName="Run"`date +"%Y/%m/%d_%H:%M:%S"`
az load test-run create --load-test-resource <load-testing-resource> --test-id sample-test-id --test-run-id $testRunId --display-name $displayName --description "Test run from CLI"
Yük testi çalıştırması için istemci tarafı ölçümlerini alın ve görüntüleyin.
az load test-run metrics list --load-test-resource <load-testing-resource> --test-run-id $testRunId --metric-namespace LoadTestRunMetrics
Yük testi sonuçlarını görüntüleme
CI/CD işlem hattınızdan bir yük testi çalıştırdığınızda, özet sonuçlarını doğrudan CI/CD çıkış günlüğünde görüntüleyebilirsiniz. Test sonuçlarını bir işlem hattı yapıtı olarak yayımladıysanız, daha fazla raporlama için bir CSV dosyası da indirebilirsiniz.
Kaynakları temizleme
Oluşturduğunuz kaynaklardan hiçbirini kullanmayı planlamıyorsanız, daha fazla ücret ödememek için bunları silin.
Azure DevOps kuruluşunuzda ()https://dev.azure.com/<your-organization> oturum açın ve projenizi seçin.
Metin yer tutucusunun <your-organization> yerine proje tanımlayıcınızı yazın.
Yeni bir işlem hattı oluşturduysanız":
İşlem hatları'yı ve ardından işlem hattınızı seçin.
Üç noktayı ve ardından Sil'i seçin.
İşlem hattı adını girin ve sil'i seçerek işlem hattını silin.
Mevcut bir iş akışı tanımını değiştirdiyseniz yük testini çalıştırma değişikliklerini geri alın ve iş akışını kaydedin.
Hizmet bağlantısını kaldırın:
Proje ayarları>Hizmet bağlantıları'nı ve ardından hizmet bağlantınızı seçin.
Hizmet bağlantısını kaldırmak için Sil'i Düzenle'yi>seçin.
GitHub Actions değişikliklerini kaldırma:
GitHub'da deponuza göz atın.
Yeni bir iş akışı tanımı oluşturduysanız, klasöründeki iş akışı YAML dosyasını .github/workflows silin.
Mevcut bir iş akışı tanımını değiştirdiyseniz yük testini çalıştırma değişikliklerini geri alın ve iş akışını kaydedin.
Hizmet sorumlusunu kaldırın:
az ad sp delete --id $(az ad sp show --display-name "my-load-test-cicd" -o tsv)
CI iş akışınızdaki değişiklikleri geri alın.
Hizmet sorumlusunu kaldırın:
az ad sp delete --id $(az ad sp show --display-name "my-load-test-cicd" -o tsv)
Sonraki adımlar
Test başarısız ölçütlerini tanımlayarak ve test çalıştırmalarını karşılaştırarak performans regresyonlarını belirlemeyi öğrenmek için sonraki makaleye ilerleyin.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz. https://aka.ms/ContentUserFeedback.