Membaca data dari file CSV di JMeter dengan Azure Load Testing

Dalam artikel ini, Anda mempelajari cara membaca data dari file nilai yang dipisahkan koma (CSV) di JMeter dengan Azure Load Testing. Gunakan data dari file CSV eksternal untuk membuat skrip pengujian JMeter Anda dapat dikonfigurasi. Misalnya, Anda dapat melakukan iterasi atas semua pelanggan dalam file CSV untuk meneruskan detail pelanggan ke dalam permintaan API.

Di JMeter, Anda dapat menggunakan elemen Konfigurasi Himpunan Data CSV di skrip pengujian Anda untuk membaca data dari file CSV.

Untuk membaca data dari file eksternal di Azure Load Testing, Anda harus mengunggah file eksternal bersama skrip pengujian JMeter dalam pengujian beban Anda. Jika Anda menskalakan pengujian di beberapa instans mesin pengujian paralel, Anda dapat memilih untuk membagi data input secara merata di seluruh instans ini.

Mulailah dengan mengkloning atau mengunduh proyek sampel dari GitHub.

Prasyarat

  • Akun Azure dengan langganan aktif. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
  • Sumber daya pengujian beban Azure. Untuk membuat sumber daya pengujian beban, lihat Membuat dan menjalankan pengujian beban.
  • Skrip pengujian Apache JMeter (JMX).
  • (Opsional) Apache JMeter GUI untuk menulis skrip pengujian Anda. Untuk menginstal Apache JMeter, lihat Memulai Apache JMeter.

Memperbarui skrip JMeter Anda untuk membaca data CSV

Di bagian ini, Anda mengonfigurasi skrip Apache JMeter untuk mereferensikan file CSV eksternal. Anda menggunakan elemen Konfigurasi Himpunan Data CSV untuk membaca data dari file CSV.

Penting

Azure Load Testing mengunggah file JMX dan semua file terkait dalam satu folder. Saat Anda mereferensikan file eksternal di skrip JMeter, verifikasi bahwa Anda tidak memiliki referensi jalur file dalam skrip pengujian Anda.

Ubah skrip JMeter dengan menggunakan Apache JMeter GUI:

  1. Pilih elemen Konfigurasi Himpunan Data CSV di skrip pengujian Anda.

  2. Perbarui informasi Nama File dan hapus referensi jalur file apa pun.

  3. Secara opsional, masukkan nama bidang CSV di Nama Variabel, saat Anda membagi file CSV di seluruh mesin pengujian.

    Azure Load Testing tidak mempertahankan baris header saat memisahkan file CSV Anda. Berikan nama variabel dalam elemen Konfigurasi Himpunan Data CSV alih-alih menggunakan baris header.

    Screenshot that shows the JMeter UI to configure a C S V Data Set Config element.

  4. Ulangi langkah-langkah sebelumnya untuk setiap elemen Konfigurasi Himpunan Data CSV dalam skrip.

  5. Simpan skrip JMeter dan unggah skrip ke uji beban Anda.

Unggah file CSV ke uji beban Anda

Saat Anda mereferensikan file eksternal dari skrip pengujian, pastikan untuk mengunggah semua file ini bersama skrip pengujian JMeter. Saat pengujian beban dimulai, Azure Load Testing menyalin semua file ke satu folder pada setiap instans mesin pengujian.

Penting

Azure Load Testing tidak mempertahankan baris header saat memisahkan file CSV Anda. Sebelum Anda menambahkan file CSV ke uji beban, hapus baris header dari file.

Untuk menambahkan file CSV ke uji beban Anda dengan menggunakan portal Azure:

  1. Di portal Azure, buka sumber daya pengujian beban Azure Anda.

  2. Di panel kiri, pilih Pengujian untuk menampilkan daftar pengujian.

  3. Pilih pengujian Anda dari daftar dengan memilih kotak centang, lalu pilih Edit.

    Screenshot that shows the list of load tests and the 'Edit' button.

  4. Pada tab Uji paket , pilih file CSV dari komputer Anda, lalu pilih Unggah untuk mengunggah file ke Azure.

    Jika Anda menggunakan uji beban berbasis URL, Anda dapat memasukkan nama variabel sebagai daftar yang dipisahkan koma di kolom Variabel.

    Screenshot of the Test plan tab on the Edit test pane.

    Jika ukuran file CSV lebih besar dari 50 MB, zip file. Ukuran file zip harus di bawah 50 MB. Azure Load Testing secara otomatis membuka zip file selama uji coba. Hanya lima artefak zip yang diizinkan dengan maksimum 1000 file di setiap zip dan ukuran total yang tidak dikompresi 1 GB.

  5. Pilih Terapkan untuk mengubah pengujian dan menggunakan konfigurasi baru saat Anda menjalankannya kembali.

Tip

Jika Anda menggunakan uji beban berbasis URL, Anda dapat mereferensikan nilai dari file data input CSV dalam permintaan HTTP dengan menggunakan sintaks.$(variable)

Memisahkan data input CSV di seluruh mesin pengujian

Secara default, Azure Load Testing menyalin dan memproses file input Anda yang tidak dimodifikasi di semua instans mesin pengujian. Secara default, setiap mesin pengujian memproses seluruh file CSV. Secara bergantian, Azure Load Testing memungkinkan Anda membagi data input CSV secara merata di semua instans mesin. Jika Anda memiliki beberapa file CSV, setiap file dibagi secara merata.

Misalnya, jika Anda memiliki file input CSV pelanggan besar, dan pengujian beban berjalan pada 10 mesin pengujian paralel, maka setiap instans memproses 1/10 pelanggan.

Penting

Azure Load Testing tidak mempertahankan baris header saat memisahkan file CSV Anda.

  1. Konfigurasikan skrip JMeter Anda untuk menggunakan nama variabel saat membaca file CSV.
  2. Hapus baris header dari file CSV sebelum Anda menambahkannya ke pengujian beban.

Untuk mengonfigurasi uji beban Anda untuk memisahkan file CSV input:

  1. Buka tab Uji paket untuk pengujian beban Anda.

  2. Pilih Pisahkan CSV secara merata di antara mesin Uji.

    Screenshot that shows the checkbox to enable splitting input C S V files when configuring a test in the Azure portal.

  3. Pilih Terapkan untuk mengonfirmasi perubahan konfigurasi.

    Saat berikutnya Anda menjalankan pengujian, Azure Load Testing membagi dan memproses file CSV secara merata di seluruh mesin pengujian.

Pemecahan Masalah

Status pengujian gagal dan log pengujian memiliki File {my-filename} must exist and be readable

Ketika pengujian beban selesai dengan status Gagal, Anda dapat mengunduh log pengujian.

Saat Anda menerima pesan File {my-filename} must exist and be readable kesalahan di log pengujian, file CSV input tidak dapat ditemukan saat menjalankan skrip JMeter.

Azure Load Testing menyimpan semua file input bersama skrip JMeter. Saat Anda mereferensikan file CSV input dalam skrip JMeter, pastikan untuk tidak menyertakan jalur file, tetapi hanya gunakan nama file.

Cuplikan kode berikut menunjukkan ekstrak file JMeter yang menggunakan CSVDataSet elemen untuk membaca file input. Perhatikan bahwa filename tidak menyertakan jalur file.

<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>