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.

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:
- Selama proses perekaman, klien mengirimkan permintaan ke server untuk memulai sesi.
- Server menerima permintaan dan mengalokasikan ID sesi baru ABC
- Klien menyimpan id sesi ABC dalam skrip.
- Klien memulai sesi dengan ID ABC dan mengirimkan permintaan ke server untuk mengizinkannya merekam.
- Server mengenali ID ABC dan mengizinkan klien untuk merekam skrip
Sekarang, mari kita pelajari komunikasi klien-server selama pemutaran ulang, yang ditunjukkan setelah langkah-langkah berikut:
- Selama Putar Ulang, klien mengirimkan permintaan ke server untuk memulai sesi
- Server menerima permintaan dan mengalokasikan ID sesi baru XYZ
- Klien memulai sesi dengan ID sesi ABC yang telah direkam sebelumnya dan mengirimkan permintaan ke server untuk mengizinkannya merekam.
- Server tidak dapat mengidentifikasi ID ABC karena mengharapkan ID XYZ yang telah dialokasikan dan sesi gagal.
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:
- Selama Putar Ulang, klien mengirimkan permintaan ke server untuk memulai sesi
- Server menerima permintaan tersebut, dan mengalokasikan ID sesi baru ZZZ
- Klien mem-parsing id sesi baru ini ZZZ dari permintaan.
- Klien mengirimkan permintaan untuk memulai sesi dengan id ZZZ
- Server mengenali ID ZZZ dan memungkinkan klien memutar ulang skrip
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:
- Menangkap nilai keluaran dari sebuah langkah
- 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,
Jendela di bawah ini akan terbuka:
Klik Korelasi =>Konfigurasi – jendela di bawah ini akan terbuka.
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:
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. 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:
- Rekam naskah
- Putar ulang skrip
- Identifikasi nilai-nilai yang akan dikorelasikan
- Pilih nilainya dan klik tombol korelasi otomatis
- 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:
- Tentukan nilai yang ingin ditangkap
- Temukan batas teks kanan dan kiri dari nilai yang akan ditangkap (WEB)
- Temukan kemunculan batas teks mana yang harus digunakan
- Tambahkan fungsi web_reg_save_param ke skrip, di atas potongan kode yang meminta halaman dengan nilai untuk ditangkap
- Tambahkan nama parameter, batas kiri, batas kanan, dan kejadian ke fungsi
- Parameterisasikan nilai dinamis dalam skrip setiap kali terjadi
- 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:
- Identifikasi nilai-nilai Dinamis yang perlu dikorelasikan
- Temukan respons server yang berisi nilai Dinamis.
- Menangkap nilai Dinamis dalam suatu parameter
- Ganti setiap kemunculan nilai Dinamis dengan parameternya
- 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.







