Korelasi di LoadRunner dengan contoh web_reg_save_param

⚡ Ringkasan Cerdas

Korelasi di LoadRunner menangkap nilai server dinamis, seperti ID sesi, dan memasukkannya kembali ke permintaan berikutnya sehingga skrip VuGen yang direkam dapat diputar ulang dengan sukses alih-alih gagal karena data yang usang.

  • 🔘 Definisi: Korelasi mengikat respons server ke setiap permintaan berikutnya yang bergantung padanya.
  • ☑️ Gejala: Pemutaran ulang gagal ketika skrip mengembalikan ID sesi yang direkam yang tidak lagi dikenali oleh server.
  • ✅ Otomatis: Aturan VuGen dan deteksi otomatis membandingkan dua tayangan ulang, namun hanya mencakup sebagian kecil kasus.
  • 🧪 Manual: web_reg_save_param menyimpan nilai yang terletak di antara batas kiri dan kanan.
  • ️ Penempatan: Fungsi pendaftaran harus berada di atas langkah yang responsnya membawa nilai.
  • 📊 Hasil: Skrip yang berkorelasi diputar ulang dengan data baru dan ukurannya tetap jauh lebih kecil.

Korelasi di LoadRunner dengan web_reg_save_param

Apa itu Korelasi?

Korelasi, seperti namanya, adalah mekanisme untuk mendefinisikan hubungan antara dua variabel atau entitas. Kamus mendefinisikannya sebagai "hubungan statistik antara dua variabel atau lebih sedemikian rupa sehingga perubahan sistematis pada variabel lain menyertai perubahan sistematis pada nilai salah satu variabel".

Catatan merek: alat ini dikirimkan sebagai produk HP dan kemudian Micro Focus LoadRunner, dan sekarang OpenText Rekayasa Kinerja ProfesionalSetiap fungsi korelasi di bawah ini tidak berubah, dan vendor mengeja generator skrip tersebut. VuGen.

Mengapa kita membutuhkan Korelasi?

Mari kita pahami korelasi dengan skenario berikut.

Bayangkan Anda sedang merekam sebuah naskah menggunakan LoadRunner.

Komunikasi antara klien dan server selama perekaman berlangsung sebagai berikut, dan diagram merangkumnya:

  1. Selama proses perekaman, klien mengirimkan permintaan ke server untuk memulai sesi.
  2. Server menerima permintaan dan mengalokasikan ID sesi baru ABC
  3. Klien menyimpan id sesi ABC dalam skrip.
  4. Klien memulai sesi dengan ID ABC dan mengirimkan permintaan ke server untuk mengizinkannya merekam.
  5. Server mengenali ID ABC dan mengizinkan klien untuk merekam skrip

Pertukaran ID sesi klien-server saat merekam skrip LoadRunner.

Sekarang, mari kita pelajari komunikasi klien-server selama pemutaran ulang, yang ditunjukkan setelah langkah-langkah berikut:

  1. Selama Putar Ulang, klien mengirimkan permintaan ke server untuk memulai sesi
  2. Server menerima permintaan dan mengalokasikan ID sesi baru XYZ
  3. Klien memulai sesi dengan ID sesi ABC yang telah direkam sebelumnya dan mengirimkan permintaan ke server untuk mengizinkannya merekam.
  4. Server tidak dapat mengidentifikasi ID ABC karena mengharapkan ID XYZ yang telah dialokasikan dan sesi gagal.

Ketidakcocokan ID sesi selama pemutaran ulang ketika korelasi hilang

Kita membutuhkan solusi yang dapat menangkap dan menguraikan nilai dinamis yang dikirim saat runtime dan mengembalikan nilai ini kembali ke server. Berikut adalah gambaran komunikasi klien-server dengan solusi ini, seperti yang ditunjukkan pada diagram di bawah ini:

  1. Selama Putar Ulang, klien mengirimkan permintaan ke server untuk memulai sesi
  2. Server menerima permintaan tersebut, dan mengalokasikan ID sesi baru ZZZ
  3. Klien mem-parsing id sesi baru ini ZZZ dari permintaan.
  4. Klien mengirimkan permintaan untuk memulai sesi dengan id ZZZ
  5. Server mengenali ID ZZZ dan memungkinkan klien memutar ulang skrip

Korelasi yang menangkap ID sesi baru dan mengembalikannya ke server.

Ini tidak lain adalah korelasi.

Video singkat di bawah ini menjelaskan masalah perekaman dan pemutaran ulang yang sama.

Klik di sini jika video tidak dapat diakses

Dalam kasus VuGen, korelasi adalah hubungan yang mengikat antara respons dan permintaan sebelumnya.

Ada berbagai situasi di mana permintaan didasarkan pada respons yang sebelumnya diterima dari server, seperti ID Sesi, atau tanggal dan waktu server yang diambil dari server. Nilai-nilai ini berbeda setiap kali Anda menjalankan aplikasi atau merekam skrip. Jelas, jika eksekusi skrip bergantung pada nilai yang dikembalikan oleh server, itu berarti Anda perlu menemukan mekanisme di mana Anda dapat "menangkap" respons server dan melampirkannya ke permintaan yang diharapkan server. Ini biasanya disebut Korelasi di LoadRunner.

Secara sederhana solusi dengan menggunakan Korelasi adalah:

  1. Menangkap nilai keluaran dari sebuah langkah
  2. Gunakan nilai yang ditangkap di atas sebagai masukan untuk semua langkah selanjutnya

Korelasi diklasifikasikan menjadi 2 kategori di VuGen/LoadRunner:

  • Korelasi otomatis
  • Korelasi manual

Korelasi Otomatis

LoadRunner menyediakan mekanisme untuk melakukan korelasi dengan mudah secara otomatis.

VuGen akan mengharuskan Anda menjalankan skrip yang direkam setidaknya dua kali agar dapat membandingkan nilai-nilai yang berbeda dalam respons server secara internal.

Korelasi otomatis dapat diklasifikasikan menjadi 3 kategori:

  • Korelasi Deteksi Otomatis
  • Korelasi Berbasis Aturan
  • Mengkorelasikan Semua Pernyataan
Nama aturan Kapan Harus Digunakan
Korelasi Deteksi Otomatis Mendeteksi dan mengkorelasikan data dinamis untuk server aplikasi yang didukung oleh LoadRunner.
Berbasis Aturan Digunakan saat bekerja dengan server aplikasi yang tidak didukung yang konteksnya diketahui.
Korelasikan Semua Membantu mengkorelasikan semua data dinamis secara buta.

Meskipun Korelasi Otomatis terlihat lebih sederhana, namun rentan terhadap kesalahan dan hanya berfungsi pada 5% kasus saja. Selalu disarankan untuk menggunakan korelasi manual.

Untuk mengonfigurasi korelasi otomatis pada saat perekaman, lakukan konfigurasi di bawah ini dalam Pengaturan Waktu Rekam setelah skrip direkam.

Klik Rekam => Opsi Perekaman (atau klik Ctrl + F7), yang ditampilkan pada menu di bawah ini,

Menu Rekam VuGen dengan entri Opsi Perekaman terpilih.

Jendela di bawah ini akan terbuka:

Jendela Opsi Perekaman VuGen yang menampilkan daftar node konfigurasi perekaman.

Klik Korelasi =>Konfigurasi – jendela di bawah ini akan terbuka.

Panel Konfigurasi Korelasi yang mencantumkan kumpulan aturan aplikasi seperti ASP.NET

Di sini, Anda perlu menandai sebagai dicentang terhadap semua aplikasi (ASPNET) dll., yang digunakan dalam aplikasi subjek Anda. Di sisi kanan, Anda dapat melihat aturan yang akan mendeteksi kemungkinan kandidat korelasi misalnya _VIEWSTATE. Anda juga dapat menambahkan lebih banyak aplikasi atau aturan khusus dengan mengklik tombol Aturan Baru.

Anda juga dapat mengklik RULES, Anda akan melihat seperti di bawah ini:

Panel Aturan Korelasi dengan opsi Pemindaian Aturan tersedia.

Agar Korelasi Otomatis berfungsi, Anda perlu memastikan Pemindaian Aturan ditandai sebagai dicentang. Jika Anda mengklik korelasikan nilai yang ditemukan secara otomatis, VuGen tidak akan meminta Anda untuk memilih setelah kandidat korelasi ditemukan, melainkan akan langsung mengkorelasikannya.

Kita akan membahas API yang digunakan untuk korelasi nanti. Akan tetapi, sebaiknya gunakan perbandingan HTML daripada perbandingan teks.

Setelah Anda memilih aturan apa pun, klik tombol OK untuk menutup jendela.

Klik tombol toolbar yang ditampilkan di sini. Tombol toolbar VuGen digunakan untuk meregenerasi skrip yang direkam. Dari menu, VuGen akan membuat ulang skrip (tanpa perlu merekam) dengan konfigurasi baru. VuGen akan secara otomatis menambahkan kode yang diperlukan untuk menangani korelasi. Kita akan melihat contoh ini secara lebih detail di Korelasi Manual.

Harap dicatat, jika Anda melakukan korelasi secara manual atau menggunakan korelasi otomatis, potongan kode akan berisi sintaks dan fungsi yang persis sama.

Langkah-langkah untuk mengkorelasikan skrip secara otomatis:

  1. Rekam naskah
  2. Putar ulang skrip
  3. Identifikasi nilai-nilai yang akan dikorelasikan
  4. Pilih nilainya dan klik tombol korelasi otomatis
  5. Verifikasi skrip dengan menjalankannya kembali. Keberhasilan yang dijalankan berarti korelasi yang sukses.

olymp trade indonesiaTip:

  • Korelasi membantu menjalankan skrip Anda dengan nilai yang berbeda
  • Korelasi juga mengurangi ukuran skrip Anda

Korelasi Manual

Korelasi manual adalah tentang menulis kode langsung ke dalam skrip Anda untuk memenuhi nilai yang selalu berubah. Kita dapat membaginya menjadi langkah-langkah di bawah ini:

  1. Tentukan nilai yang ingin ditangkap
  2. Temukan batas teks kanan dan kiri dari nilai yang akan ditangkap (WEB)
  3. Temukan kemunculan batas teks mana yang harus digunakan
  4. Tambahkan fungsi web_reg_save_param ke skrip, di atas potongan kode yang meminta halaman dengan nilai untuk ditangkap
  5. Tambahkan nama parameter, batas kiri, batas kanan, dan kejadian ke fungsi
  6. Parameterisasikan nilai dinamis dalam skrip setiap kali terjadi
  7. Verifikasi eksekusi yang benar
web_reg_save_param (" OracleAppJSESSIONID3",
	"LB/IC=JSESSIONID=",
	"RB/IC=;",
	"Ord=l",
	"Search=headers",
	"RelFrameId=l",
	LAST);

web_reg_save_param("Siebel_Analytic_ViewState2",
	"LB/IC=ViewState\" value=\"",
	"RB/IC=\"",
	"Ord=1",
	"Search=Body",
	"RelFrameId=l",
	LAST);

Code catatan: Kedua cuplikan tersebut muncul persis seperti yang dipublikasikan. Perhatikan angka ordinalnya: Ord=l ke RelFrameId=l Gunakan huruf L kecil, dan VuGen mengharapkan angka 1.

Korelasi manual dapat dilakukan dengan VUser Comparison. Langkah-langkah dalam metode Korelasi Perbandingan VUser dapat dibagi seperti di bawah ini:

  1. Identifikasi nilai-nilai Dinamis yang perlu dikorelasikan
  2. Temukan respons server yang berisi nilai Dinamis.
  3. Menangkap nilai Dinamis dalam suatu parameter
  4. Ganti setiap kemunculan nilai Dinamis dengan parameternya
  5. Verifikasi Perubahan

Memahami Fungsi web_reg_save_param

VuGen menyediakan berbagai fungsi atau API untuk mengkorelasikan kandidat, termasuk:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Catatan versi: Rilis VuGen terbaru memperlakukan web_reg_save_param_ex sebagai penerus fungsi aslinya, dan web_reg_save_param_regexp sebagai pilihan ketika batasan itu sendiri berubah. Contoh aslinya masih berlaku.

Meskipun pengantar singkat diberikan di sini, untuk pemahaman yang lebih detail tentang fungsi dan parameternya, buka VuGen, tulis fungsi (atau gunakan Steps Toolbox), arahkan kursor ke fungsi dan klik F1 – biasakan diri Anda dengan Bantuan VuGen dan jadikan kebiasaan. Anda akan sering berurusan dengan hal itu saat bekerja di industri ini.

Berikut ini adalah rincian fungsinya:

web_reg_save_param(Nama Parameter, Batas Kiri, Batas Kanan)

Daftar Atribut

Tabel di bawah ini mengumpulkan setiap atribut yang diterima fungsi tersebut, apakah wajib atau tidak, dan apa yang dikendalikannya.

Atribut Wajib? Apa yang dilakukannya
mengubah Opsional HTML_KE_URL mengkonversi data yang dikodekan HTML menjadi URLFormat data yang dikodekan. HTML_TO_TEXT mengkonversi data yang dikodekan HTML ke format teks biasa.
Abaikan Pengalihan Opsional, default “Abaikan Pengalihan=Tidak” Saat diatur ke Ya dan respons server berupa informasi pengalihan (kode status HTTP 300-303, 307), respons tersebut tidak dicari. Permintaan GET akan menuju ke lokasi yang dialihkan dan pencarian akan dijalankan pada respons dari sana.
LB Wajib Batas kiri parameter atau data dinamis. Jika Anda tidak menentukan nilai LB, maka akan menggunakan semua karakter dari awal data sebagai batas. Parameter batas peka terhadap huruf besar dan kecil. Untuk menyesuaikan teks pencarian lebih lanjut, gunakan satu atau lebih flag teks.
TIDAK DITEMUKAN Opsional, default "error" Penanganan ketika batas tidak ditemukan dan string kosong dihasilkan. “Not found=error” akan menimbulkan kesalahan. “Not found=warning” (“Not found=empty” di versi sebelumnya) akan mengatur jumlah parameter menjadi 0 dan melanjutkan, yang ideal ketika Anda ingin melihat apakah string ditemukan tanpa membuat skrip gagal. Dengan opsi Lanjutkan saat Terjadi Kesalahan diaktifkan, skrip akan terus berjalan bahkan dalam kondisi “kesalahan”, tetapi log yang diperluas akan mencatatnya.
ORD Opsional, nilai default 1 Menunjukkan posisi ordinal atau contoh kecocokan. Jika Anda menentukan "Semua," nilai parameter akan disimpan dalam sebuah array. Penggunaan Instance sebagai pengganti ORD didukung untuk kompatibilitas mundur, tetapi sudah usang.
RB Wajib Batas kanan parameter atau data dinamis. Jika Anda tidak menentukan nilai RB, maka semua karakter hingga akhir data akan digunakan sebagai batas. Parameter batas peka terhadap huruf besar dan kecil. Untuk menyesuaikan teks pencarian lebih lanjut, gunakan satu atau lebih flag teks.
RelFrameID Opsional Tingkat hierarki halaman HTML relatif terhadap yang diminta URLNilai yang mungkin adalah SEMUA atau angka. RelFrameID tidak didukung dalam skrip tingkat GUI.
Simpan Len Opsional, nilai default -1 Panjang substring dari nilai yang ditemukan, dari offset yang ditentukan, untuk disimpan ke parameter. Secara default, substring disimpan di akhir string.
Simpan Offset Opsional, nilai default 0 Offset dari substring nilai yang ditemukan, untuk disimpan ke parameter. Nilai offset harus non-negatif.
Cari Opsional, default SEMUA Cakupan pencarian — di mana data yang dipisahkan akan dicari. Nilai yang mungkin adalah Header (hanya mencari header), Isi (hanya mencari data isi, bukan header), Tanpa sumber daya (hanya mencari isi HTML, tidak termasuk semua header dan sumber daya), atau SEMUA (mencari isi, header, dan sumber daya).

Setelah skrip diputar ulang dengan lancar, tambahkan parameterisasi, transaksi, dan pengaturan waktu proses, jalankan dari pengawas, dan baca hasilnya di Sampel sebagai bagian dari yang lebih luas Pengujian Kinerja ke Pengujian beban.

Pertanyaan Umum Demo Slot

Putar ulang dua kali dengan opsi login yang diperpanjang dan bandingkan responsnya. Setiap nilai yang dikeluarkan server setiap kali dijalankan — ID sesi, token, stempel waktu — adalah kandidat yang potensial.

web_reg_save_param mencocokkan antara batas kiri dan kanan yang tetap. web_reg_save_param_regexp sesuai dengan ekspresi reguler, sehingga dapat mengatasi perubahan batas-batasnya.

Ya. Pembelajaran mesin dapat membandingkan dua respons pemutaran ulang dan memberi peringkat pada bidang yang berubah, jauh lebih cepat daripada pemindaian manual. Anggap peringkat tersebut sebagai daftar pendek yang masih dikonfirmasi oleh manusia.

Kopilot GitHub Program ini menyusun panggilan fungsi dan argumennya dari sebuah komentar. Program ini tidak dapat melihat respons server, sehingga setiap batasan yang disarankan harus diperiksa terhadap lalu lintas nyata.

Ini adalah fungsi registrasi: fungsi ini mendaftarkan pencarian terhadap respons berikutnya yang diterima VuGen. Jika ditempatkan setelah permintaan, tidak ada lagi yang perlu dipindai dan parameter tetap kosong.

Batas-batasnya tidak cocok. Penyebab umum adalah ketidakcocokan huruf besar/kecil, batas yang hanya muncul di halaman lain, atau pencarian di bagian Isi (Body) padahal nilainya berada di bagian judul (header).

Tidak. Parameterisasi memasukkan data input Anda sendiri ke dalam skrip dari file data. Korelasi menangkap nilai yang dihasilkan server saat runtime dan mengembalikannya. Sebagian besar skrip membutuhkan keduanya.

Ya, seringkali lebih banyak lagi. Token bearer, kolom CSRF, dan pengidentifikasi JSON berubah setiap sesi, sehingga lalu lintas REST dan halaman tunggal penuh dengan kandidat bahkan tanpa formulir HTML.

Ringkaslah postingan ini dengan: