Aracılığıyla paylaş


Hızlı Başlangıç: Visual Studio Code ve GitHub Copilot ile yük testi oluşturma ve çalıştırma

Copilot kullanarak kolayca Locust yük testleri oluşturmak, yerel olarak yineleme yapmak ve Azure'da zahmetsizce ölçeklendirmek için Visual Studio Code için Azure Yük Testi uzantısını kullanmayı öğrenin. İster Locust'ta yeni ister performans testi uzmanı olun, Azure Load Testing uzantısı doğrudan VS Code ortamınızdan test oluşturmayı, yinelemeyi ve ölçeklendirmeyi kolaylaştırır. Azure Yük Testi, bulut ölçeğinde yük testi çalıştırmanızı sağlayan yönetilen bir hizmettir. Locust , tüm testlerinizi Python kodunda yazmanızı sağlayan bir açık kaynak yük testi aracıdır.

Bu hızlı başlangıç, gerçekçi yük testleri oluşturma, iyileştirme ve çalıştırma konusunda size yol gösterir. Sonunda, Copilot destekli iyileştirmelerle geliştirilmiş ve Azure Load Testing'te ölçeklendirilmeye hazır bir Postman koleksiyonu, Uykusuzluk koleksiyonu veya .http dosyasından oluşturulmuş tam işlevsel bir yük testi betiğiniz vardır.

Önkoşullar

Tavsiye

VS Code'un GitHub Copilot Sohbeti birden çok yapay zeka modeli sunar. Sohbet giriş alanındaki model seçiciyi kullanarak model değiştirebilirsiniz. Hangisini kullanacağınızdan emin değilseniz GPT-4o'yu öneririz.

İzlenecek yolu açma

Başlamak için VS Code'da komut paletini açın ve şunu çalıştırın: Yük Testi: İzlenecek Yol'u açın. Bu rehber, uzantının ana giriş noktalarını tanıtır.

Ayrıca, Yük Testi ön ekini kullanarak özelliklere doğrudan komut paletinden de erişebilirsiniz. Yaygın olarak kullanılan bazı komutlar şunlardır:

  • Yük Testi: Çekirge testi oluşturma

  • Yük Testi: Yük testi çalıştırma (yerel)

  • Yük Testi: Yük testi çalıştırma (Azure Yük Testi)

    Azure Yük Testi VS Code uzantısının önemli giriş noktalarını gösteren ekran görüntüsü.

Copilot ile Locust betiği oluşturun

Mevcut herhangi bir Postman koleksiyonundan, Insomnia koleksiyonundan veya .http dosyasından bir Locust betiği oluşturabilirsiniz. Dosya birden çok istek içeriyorsa, Copilot bunları uyumlu bir senaryo halinde sıralamaya çalışır.

  1. İzlenecek yolda Yük Testi Oluştur düğmesine tıklayın veya komut paletinden Yük Testi: Çekirge Testi Oluştur'u çalıştırın.

  2. Otomatik olarak Locust test betiği oluşturmak için kaynağı seçebilirsiniz:

    • Postman koleksiyonu, Uykusuzluk koleksiyonu veya .http dosyası seçmek, Copilot'un birden çok API işlemini, istek verilerini ve kimlik doğrulama ayrıntılarını ayıklamasını sağlar ve daha eksiksiz ve gerçekçi bir yük testi oluşturur.
    • Tek URL'yi seçtiğinizde tek bir uç nokta URL'si girerek özelleştirebileceğiniz veya genişletebileceğiniz basit bir betik oluşturulur.
  3. Bu izlenecek yol için dosyasını kullanarak örnek bir Locust test betiği oluşturmak amacıyla petstore-sample.http seçebilirsiniz.

  4. Copilot, seçilen dosyayı analiz eder ve API isteklerini, gerçek kullanım senaryolarını simüle etmek ve kimlik doğrulamasını güvenli bir şekilde işlemek için otomatik olarak sıralayan Çekirge tabanlı bir yük testi betiği oluşturur.

  5. Betik oluşturulduktan sonra , Copilot Sohbet penceresi ortam değişkenlerini tanımlama gibi diğer kurulum adımlarını önerir. Copilot ortam değişkenleri önerirse projenizde bir .env dosya oluşturun ve önerilen değerleri ekleyin.

Yük testi betiğini özelleştirme

Testi çalıştırmadan önce Copilot ile geliştirebilirsiniz. Örneğin, betiği inceleyerek her istekle aynı istek yükünün gönderildiğini fark edebilirsiniz:

payload = {
    "id": self.pet_id,
    "name": "Fluffy",
    "category": {"id": 1, "name": "Dogs"},
    "photoUrls": ["https://example.com/photo.jpg"],
    "tags": [{"id": 1, "name": "cute"}],
    "status": "available"
}

İstek yükünü rastgele ekleyerek testi daha dinamik hale getirmek için:

  1. Copilot Sohbet panelini açın.
  2. Şunu yazın: Randomize request payloads ve Enter tuşuna basın.
  3. Copilot, rastgele hale getirmek için önerilen bir değişiklik oluşturur.
  4. Copilot Sohbet penceresinde oluşturulan kod parçacığının üzerinde görünen Düzenleyicide Uygula'ya tıklayın.
  5. Değişiklikleri gözden geçirdikten sonra, betiğinizi kabul edip güncellemek için Sakla veya Kaydet tıklayın.
  6. Dosyayı kaydetme

Artık her istek daha gerçekçi bir kullanıcı etkileşiminin simülasyonunu oluşturur. Kod aşağıdaki kod parçacığına benzer:

payload = {
    "id": self.pet_id,
    "name": f"Pet{random.randint(1, 1000)}",
    "category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
    "photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
    "tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
    "status": random.choice(["available", "pending", "sold"])
}

Yük testini çalıştırma

Yük testinizi iki şekilde çalıştırabilirsiniz:

  • Hızlı doğrulama için yerel olarak çalıştırma
  • Yüksek ölçekli, çok bölgeli yük için Azure Yük Testi'nde çalıştırma

Hızlı doğrulama için yerel olarak çalıştırma

Testinizi hızla doğrulamak için Visual Studio Code'dan Locust kullanarak yerel olarak çalıştırın:

  1. Komut paletini açın ve şunu çalıştırın: Yük Testi: Yük testi çalıştırma (yerel).

  2. Locust web kullanıcı arabirimi tarayıcıda otomatik olarak başlatılır. Locust sunucusunun hazır olması ve tarayıcının açılması birkaç saniye sürebilir.

  3. Yeni yük testi başlat sayfasında giriş alanlarını gözden geçirin ve Başlat'a tıklayın. Locust istek göndermeye, hataları günlüğe kaydetmeye ve performans istatistiklerini izlemeye başlar.

    Yerel olarak yük testi çalıştırmak için Locust web kullanıcı arabirimini gösteren ekran görüntüsü.

  4. Yanıt sürelerini, hata oranlarını ve istek aktarım hızını analiz etmek için Locust kullanıcı arabirimini keşfedin.

    Test sonuçlarını yerel olarak görüntülemek ve analiz etmek için Locust web kullanıcı arabirimini gösteren ekran görüntüsü.

Tavsiye

Eğer Locust, Retrieve Pet ve Update Pet istekleri için hatalar bildiriyorsa, bunun nedeni Pet Store API'sinin istekleri işleme biçimi olabilir. Copilot'a "run_scenario istekler arasında rastgele gecikmeler ekleme" sorusunu sormayı deneyin. Betiğin kendisiyle ilgili bir sorun olduğundan şüpheleniyorsanız ortam değişkeni olarak ayarlayın DEBUG_MODE=True ve daha ayrıntılı hata ayıklama bilgileri almak için testi yeniden çalıştırın.

Testi bir VS Code Terminalinden çalıştırmayı tercih ediyorsanız:

  1. VS Code'da bir terminal açın.

  2. Aşağıdaki komutu çalıştırın:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: Locust test betiğini belirtir.
    • -u 10: En fazla 10 sanal kullanıcının simülasyonunu oluşturur.
    • -r 2: Saniyede iki sanal kullanıcıyı hızlandırıyor.
    • --run-time 1m: Testi 1 dakika çalıştırır.
  3. Locust web kullanıcı arabirimini görüntülemek için bir tarayıcıyı http://0.0.0.0:8089 adresine açın.

Azure Yük Testi'nde ölçeklendirme

Birden çok bölgede binlerce eşzamanlı sanal kullanıcının benzetimini yapmanız gereken yüksek yük senaryoları için testinizi Azure Yük Testi'nde çalıştırabilirsiniz.

Büyük ölçekli bir test yürütmek için:

  1. Komut paletini açın ve şunu çalıştırın: Yük Testi: Yük testi çalıştırma (Azure Yük Testi).

  2. Yapılandırma dosyası oluştur... öğesini seçin.

  3. Aşağıdakiler dahil kılavuzlu kurulumu izleyin:

    • Azure'da oturum açma ve aboneliğinizi seçme.

    • Yeni bir Azure Load Testing kaynağı oluşturma veya var olan bir kaynağı seçme.

    • Trafiği genel olarak dağıtmak için yük testi bölgelerini seçme.

  4. Kurulum tamamlandıktan sonra bir YAML yapılandırma dosyası (örneğin, loadtest.config.yaml) oluşturulur ve çalışma alanı kök klasörünüze eklenir.

    • Bu dosya Locust betiğini, yükleme parametrelerini, ortam değişkenlerini, bölgeleri ve diğer dosyaları (örneğin, CSV veri kümeleri) tanımlar.

    • Varsayılan değerler, seçilen her bölgede 120 saniye boyunca çalışan 200 sanal kullanıcıdır.

    • Gelecekteki yük testi yürütmelerini yeniden kullanmak ve otomatikleştirmek için bu dosyayı deponuzda işleyin.

  5. Copilot, yürütmeden önce yapılandırmayı doğrular. Sohbet penceresinde sağlanan yönergeleri izleyin. Aksi takdirde, her şey uygunsa test betiği ve ilgili dokümanları Azure Load Testing'e yüklenir ve yürütme için hazırlanır. Bu işlem bir dakika kadar sürebilir ve ilerleme durumu Çıkış panelinde gösterilir.

    VS Code çıkış konsolundaki yük testi ilerleme durumunu gösteren ekran görüntüsü.

  6. Test başladığında, VS Code'un sağ alt köşesinde bir bildirim (toast mesajı) görüntülenir. Test yürütmesini gerçek zamanlı olarak izlemek için Azure Portalda Aç düğmesine tıklayın.

  7. Test başladığında, sağ alt köşede bir bildirim (bildirim mesajı) görüntülenir. Test yürütmesini gerçek zamanlı olarak izlemek için Azure Portalda Aç düğmesine tıklayın.

    Azure Yük Testi'ndeki yük testi sonuçlarını gösteren ekran görüntüsü.

Tavsiye

Önceki çalıştırmalardan test sonuçlarına hızlı bir şekilde erişmek için şu komutu kullanın: Yük Testi: Yük testi çalıştırmalarını görüntüleme.

Bu hızlı başlangıçta gibi API_KEY hassas değişkenler bir .env dosyada depolandı ve bulut hizmetine yüklendi. Ancak en iyi yöntem olarak gizli diziler Azure Key Vault'ta güvenli bir şekilde yönetilmelidir. Uzantı, bunu ayarlama konusunda rehberlik sağlar.

Bu hızlı başlangıçta, şu ana kadar API_KEY gibi hassas değişkenler bir .env dosyada depolandı ve bulut hizmetine yüklendi. Ancak en iyi yöntem olarak gizli diziler Azure Key Vault'ta güvenli bir şekilde yönetilmelidir. Uzantı, bunu ayarlama konusunda rehberlik sağlar.

  1. Copilot Sohbet penceresini açın, yazın @testing /setupLoadTestSecretsInAzure ve Enter tuşuna basın.

  2. Copilot aşağıdaki adımlarda size yol gösterir:

  3. Copilot size şu yollarda yol gösterir:

    • Azure Key Vault oluşturma.
    • Azure Yük Testi kaynağınıza yönetilen kimlik atama.
    • Azure Key Vault'a gizli bilgiler ekleme.
    • YAML dosyanızı, .env yerine Key Vault gizlilerine başvuracak şekilde yapılandırma.

Locust betiğinizi veya YAML yapılandırmanızı her değiştirdiğinizde, Yük testini çalıştır (Azure Yük Testi) komutunu yürüterek testi yeniden çalıştırabilirsiniz.

Özet

Bu hızlı başlangıçta, Copilot kullanarak kolayca Locust yük testleri oluşturmak, yerel olarak yineleme yapmak ve Azure'da zahmetsizce ölçeklendirmek için Visual Studio Code için Azure Yük Testi uzantısını kullandınız. VS Code için Azure Load Testing uzantısı, test senaryonuz için gerçekçi bir test betiği oluşturma sürecini basitleştirir. Azure Load Testing, uygulamanız için yüksek ölçekli kullanıcı yükünün benzetimini yapma altyapısını ayarlamanın karmaşıklığını özetler.

Yük testini daha da genişleterek yük altındaki uygulamanın sunucu tarafı ölçümlerini izleyebilir ve uygulama gereksinimlerinizi karşılamadığında uyarı almak üzere test başarısız ölçümlerini belirtebilirsiniz. Uygulamanın iyi çalışmaya devam ettiğinden emin olmak için yük testini sürekli tümleştirme ve sürekli dağıtım (CI/CD) iş akışınızın bir parçası olarak da tümleştirebilirsiniz.