Aracılığıyla paylaş


Azure Load Testing ile JMeter'da CSV dosyasından veri okuma

Bu makalede, Azure Load Testing ile test betiğinde virgülle ayrılmış değer (CSV) dosyasından verileri okumayı öğreneceksiniz. JMeter veya Locust test betiğinizi yapılandırılabilir hale getirmek için dış CSV dosyasındaki verileri kullanın. Örneğin, müşteri ayrıntılarını API isteğine geçirmek için CSV dosyasındaki tüm müşterileri yineleyebilirsiniz.

JMeter'de, bir CSV dosyasındaki verileri okumak için test betiğinizdeki CSV Veri Kümesi Yapılandırma öğesini kullanabilirsiniz. Locust'ta csv dosyasını test betiğinizde açabilir, gerekli verileri okuyabilir ve isteklere geçirebilirsiniz.

Azure Load Testing'teki bir dış dosyadan veri okumak için yük testinizde test betiğinin yanı sıra dış dosyayı da karşıya yüklemeniz gerekir. Testinizin ölçeğini birden çok paralel test altyapısı örneğinde genişletiyorsanız, giriş verilerini bu örnekler arasında eşit olarak bölmeyi seçebilirsiniz.

GitHub'dan örnek projesini kopyalayarak veya indirerek başlayın.

Önkoşullar

  • Aktif bir aboneliğe sahip bir Azure hesabı. Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.
  • Azure yük testi kaynağı. Yük testi kaynağı oluşturmak için Yük testi oluşturma ve çalıştırma'ya bakın.
  • Apache JMeter test betiği (JMX) veya Locust betiği.
  • (İsteğe bağlı) Test betiğinizi yazmak için Apache JMeter GUI. Apache JMeter'ı yüklemek için bkz. Apache JMeter Başlarken.

CSV verilerini okumak için test betiğinizi güncelleştirme

Bu bölümde, test betiğinizi dış CSV dosyasına başvuracak şekilde yapılandıracaksınız. CSV dosyasındaki verileri okumak için CSV Veri Kümesi Yapılandırma öğesi kullanırsınız.

Önemli

Azure Load Testing, JMX dosyasını ve tüm ilgili dosyaları tek bir klasöre yükler. JMeter betiğinizdeki bir dış dosyaya başvurduğunuz zaman, test betiğinizde dosya yolu başvurusu olmadığını doğrulayın.

JMeter tabanlı testler için Apache JMeter GUI'sini kullanarak JMeter betiğini değiştirin:

  1. Test betiğinizde CSV Veri Kümesi Yapılandırma öğesini seçin.

  2. Dosya adı bilgilerini güncelleştirin ve dosya yolu başvurularını kaldırın.

  3. İsteğe bağlı olarak, CSV dosyasını test altyapıları arasında böldüğünüzde, Değişken Adları'na CSV alan adlarını girin.

    Azure Load Testing, CSV dosyanızı bölerken üst bilgi satırını korumaz. Üst bilgi satırı kullanmak yerine CSV Veri Kümesi Yapılandırma öğesinde değişken adlarını sağlayın.

    C S V Veri Kümesi Yapılandırma öğesini yapılandırmak için JMeter kullanıcı arabirimini gösteren ekran görüntüsü.

  4. Betikteki her CSV Veri Kümesi Yapılandırması öğesi için önceki adımları yineleyin.

  5. JMeter betiğini kaydedin ve betiği yük testinize yükleyin.

Locust tabanlı testler için, Locust betiğini kendi seçtiğiniz bir düzenleyici açarak güncelleştirin.

  1. Dosyayı açtığınız bölümde Dosya adı bilgilerini güncelleştirin ve dosya yolu başvurularını kaldırın.

  2. Locust betiğini kaydedin ve betiği yük testinize yükleyin.

CSV dosyasını yük testinize yükleme

Test betiğinizden dış dosyalara başvururken, tüm bu dosyaları test betiğiyle birlikte karşıya yüklediğinizden emin olun. Yük testi başladığında, Azure Load Testing tüm dosyaları test motoru örneklerinin her birinde tek bir klasöre kopyalar.

Önemli

Azure Load Testing, CSV dosyanızı bölerken üst bilgi satırını korumaz. CSV dosyasını yük testine eklemeden önce, üst bilgi satırını dosyadan kaldırın.

Azure portalını kullanarak yük testinize CSV dosyası eklemek için:

  1. Azure portalında Azure yük testi kaynağınıza gidin.

  2. Sol bölmede Testler'i seçerek test listesini görüntüleyin.

  3. Onay kutusunu seçerek listeden testinizi seçin ve ardından Düzenle'yi seçin.

    Yük testlerinin listesini ve 'Düzenle' düğmesini gösteren ekran görüntüsü.

  4. Test planı sekmesinde, bilgisayarınızdan CSV dosyasını seçin ve ardından Karşıya Yükle'yi seçerek dosyayı Azure'a yükleyin.

    URL tabanlı yük testi kullanıyorsanız Değişkenler sütununa değişken adlarını virgülle ayrılmış liste olarak girebilirsiniz.

    Testi düzenle bölmesindeki Test planı sekmesinin ekran görüntüsü.

    CSV dosyasının boyutu 50 MB'tan büyükse, dosyayı sıkıştırın. Zip dosyasının boyutu 50 MB'ın altında olmalıdır. Azure Yük Testi, test çalıştırması sırasında dosyanın otomatik olarak çıkarılır. Her zip dosyasında en fazla 1000 dosya ve sıkıştırılmamış toplam boyutu 1 GB olan yalnızca beş zip yapıtına izin verilir.

  5. Testi değiştirmek ve yeniden çalıştırırken yeni yapılandırmayı kullanmak için Uygula'yı seçin.

Tavsiye

URL tabanlı yük testi kullanıyorsanız, söz dizimini kullanarak HTTP isteklerindeki CSV giriş veri dosyasındaki değerlere $(variable) başvurabilirsiniz.

CSV giriş verilerini test altyapıları arasında bölme

Varsayılan olarak, Azure Load Testing giriş dosyalarınızı tüm test altyapısı örneklerinde değiştirilmemiş olarak kopyalar ve işler. Varsayılan olarak, her test altyapısı CSV dosyasının tamamını işler. Alternatif olarak Azure Yük Testi, CSV giriş verilerini tüm altyapı örnekleri arasında eşit olarak bölmenizi sağlar. Birden çok CSV dosyanız varsa, her dosya eşit olarak bölünür.

Örneğin, büyük bir müşteri CSV giriş dosyanız varsa ve yük testi 10 paralel test motoru üzerinde çalışıyorsa, her örnek müşterilerin 1/10'unu işler.

Önemli

Azure Load Testing, CSV dosyanızı bölerken üst bilgi satırını korumaz.

  1. CSV dosyasını okurken değişken adlarını kullanmak için test betiğinizi yapılandırın.
  2. Üst bilgi satırını yük testine eklemeden önce CSV dosyasından kaldırın.

Yük testinizi giriş CSV dosyalarını bölecek şekilde yapılandırmak için:

  1. Yük testinizin Test planı sekmesine gidin.

  2. CSV'yi Test altyapıları arasında eşit olarak böl'e tıklayın.

    Azure portalında test yapılandırırken giriş C S V dosyalarını bölmeyi etkinleştirmek için onay kutusunu gösteren ekran görüntüsü.

  3. Yapılandırma değişikliklerini onaylamak için Uygula'yı seçin.

    Testi bir sonraki çalıştırmanızda Azure Load Testing, CSV dosyasını test altyapıları arasında eşit olarak böler ve işler.

Sorun giderme

Test durumu başarısız oldu ve test günlüğünde File {my-filename} must exist and be readable

Yük testi Başarısız durumuyla tamamlandığında test günlüklerini indirebilirsiniz.

Test günlüğünde bir hata iletisi File {my-filename} must exist and be readable aldığınızda, test betiği çalıştırılırken giriş CSV dosyası bulunamadı.

Azure Load Testing, test betiğinin yanı sıra tüm giriş dosyalarını depolar. Test betiğinde giriş CSV dosyasına başvururken, dosya yolunu eklemediğinizden emin olun, ancak yalnızca dosya adını kullanın.

Aşağıdaki kod parçacığında, giriş dosyasını okumak için bir öğe kullanan bir CSVDataSet JMeter dosyasının ayıklanması gösterilmektedir. dosyasının filename dosya yolunu içermediğini fark edin.

<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Websites CSV" enabled="true">
    <stringProp name="filename">websites.csv</stringProp>
    <stringProp name="fileEncoding">UTF-8</stringProp>
    <stringProp name="variableNames">CustomerId,CustomerName,Url</stringProp>
    <boolProp name="ignoreFirstLine">true</boolProp>
    <stringProp name="delimiter">,</stringProp>
    <boolProp name="quotedData">false</boolProp>
    <boolProp name="recycle">false</boolProp>
    <boolProp name="stopThread">true</boolProp>
    <stringProp name="shareMode">shareMode.all</stringProp>
    <stringProp name="TestPlan.comments">Read all records from the CSV file -  stop thread at end of file</stringProp>
</CSVDataSet>