Korelasi di LoadRunner dengan Contoh Web_Reg_Save_Param
Apa itu Korelasi?
Korelasi, seperti namanya, merupakan mekanisme pendefinisian 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 dalam nilai satu variabel”.
Mengapa kita membutuhkan Korelasi?
Mari kita pahami korelasinya dengan skenario berikut.
Anggaplah Anda merekam skrip menggunakan LoadRunner.
Komunikasi Klien-Server
- Selama 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 mengirim 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
- 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 direkam sebelumnya dan mengirim permintaan ke server untuk mengizinkannya merekam
- Server tidak dapat mengidentifikasi ID ABC karena mengharapkan ID XYZ yang telah dialokasikan dan sesi gagal.
Kami memerlukan solusi, untuk menangkap parsing nilai dinamis yang dikirim saat run-time dan mengembalikan nilai ini ke server. Beginilah tampilan komunikasi klien-server dengan solusi 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.
Klik di sini jika video tidak dapat diakses
Dalam kasus VUGen, korelasi adalah hubungan yang mengikat antara respons dan permintaan sebelumnya.
Ada berbagai situasi ketika permintaan didasarkan pada respons yang diterima sebelumnya dari server, seperti ID Sesi, tanggal/waktu server yang diambil dari server. Nilai-nilai ini berbeda setiap kali Anda menjalankan aplikasi atau merekam skrip. Jelasnya, jika eksekusi skrip bergantung pada nilai yang dikembalikan oleh server, itu berarti Anda perlu menemukan mekanisme di mana Anda dapat "menangkap" respons server dan melampirkan 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 sehingga dapat membandingkan secara internal berbagai nilai dalam respons server.
Korelasi otomatis dapat diklasifikasikan menjadi 3 kategori:
- Korelasi Deteksi Otomatis
- Korelasi Berbasis Aturan
- Mengkorelasikan Semua Pernyataan
Nama aturan | Kapan Harus Digunakan |
---|---|
Korelasi Deteksi Otomatis | Deteksi dan korelasikan data dinamis untuk server aplikasi yang didukung oleh HP 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),
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 nilai korelasi yang ditemukan secara otomatis, VUGen tidak akan memberi tahu Anda pilihan setelah kandidat korelasi ditemukan, melainkan hanya akan 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 dari menu dan VUGen akan membuat ulang skrip (tanpa harus merekam) dengan konfigurasi baru. VUGen akan secara otomatis menambahkan potongan kode yang diperlukan untuk menangani korelasi. Kami akan melihat contoh 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);
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 beberapa fungsi atau API untuk menghubungkan kandidat, termasuk:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Meskipun pengantar singkat diberikan di sini, untuk pemahaman mendetail tentang fungsi dan parameternya, buka VUGen, tulis fungsi (atau gunakan Steps Toolbox), gerakkan kursor pada fungsi dan klik F1 – biasakan diri Anda dengan bantuan VUGen dan biasakan. Anda harus sering menanganinya saat bekerja di industri ini.
Berikut ini adalah rincian fungsinya:
web_reg_save_param(Nama Parameter, Batas Kiri, Batas Kanan)
Daftar Atribut
Mengubah: Nilai yang mungkin adalah:
HTML_TO_URL: mengonversi data yang dikodekan HTML ke format data yang dikodekan URL
HTML_TO_TEXT: mengonversi data yang dikodekan HTML ke format teks biasa; atribut ini bersifat opsional.
Abaikan Pengalihan: Jika “Ignore Redirections=Yes” ditentukan dan respons server adalah informasi pengalihan (kode status HTTP 300-303, 307), respons tidak dicari. Sebaliknya, setelah menerima respons pengalihan, permintaan GET dikirim ke lokasi yang dialihkan, dan pencarian dilakukan pada respons dari lokasi tersebut.
Atribut ini bersifat opsional. Standarnya adalah “Abaikan Pengalihan=Tidak”.
LB: Batas kiri parameter atau data dinamis. Jika Anda tidak menentukan nilai LB, maka nilai tersebut akan menggunakan semua karakter dari awal data sebagai batas. Parameter batas peka huruf besar-kecil. Untuk lebih menyesuaikan teks pencarian, gunakan satu atau beberapa tanda teks. Atribut ini diperlukan. Lihat bagian Argumen Batas.
TIDAK DITEMUKAN: Opsi penanganan ketika batas tidak ditemukan, dan string kosong dihasilkan.
“Tidak ditemukan=kesalahan”, nilai default, menyebabkan kesalahan dimunculkan ketika batas tidak ditemukan.
“Tidak ditemukan=peringatan” (“Tidak ditemukan=kosong” di versi sebelumnya), tidak menimbulkan kesalahan. Jika batas tidak ditemukan, parameter count akan disetel ke 0 dan skrip akan terus dijalankan. Opsi "peringatan" sangat ideal jika Anda ingin melihat apakah string telah ditemukan, tetapi Anda tidak ingin skrip gagal.
Note: Jika Continue on Error diaktifkan untuk skrip, bahkan ketika NOTFOUND diatur ke “error”, skrip tetap berlanjut ketika batas tidak ditemukan, namun pesan kesalahan ditulis ke file log yang diperluas.
Atribut ini juga opsional.
ORD: Menunjukkan posisi ordinal atau contoh kecocokan. Contoh defaultnya adalah 1. Jika Anda menentukan “Semua”, nilai parameter akan disimpan dalam array. Atribut ini bersifat opsional.
Catatan: Penggunaan Instance dan bukan ORD didukung untuk kompatibilitas ke belakang, namun tidak digunakan lagi.
RB: Batas kanan parameter atau data dinamis. Jika Anda tidak menentukan nilai RB, ia akan menggunakan semua karakter hingga akhir data sebagai batas. Parameter batas peka huruf besar-kecil. Untuk lebih menyesuaikan teks pencarian, gunakan satu atau beberapa tanda teks. Atribut ini diperlukan. Lihat bagian Argumen Batas.
RelFrameID: Tingkat hierarki halaman HTML relatif terhadap URL yang diminta. Nilai yang mungkin adalah SEMUA atau angka. Klik Atribut RelFrameID untuk penjelasan rinci. Atribut ini bersifat opsional.
Catatan: RelFrameID tidak didukung dalam skrip tingkat GUI.
Simpan Len: Panjang sub-string dari nilai yang ditemukan, dari offset yang ditentukan, untuk disimpan ke parameter. Atribut ini bersifat opsional. Standarnya adalah -1, yang menunjukkan untuk menyimpan ke akhir string.
Simpan Offset: Offset sub-string dari nilai yang ditemukan, untuk disimpan ke parameter. Nilai offset harus non-negatif. Standarnya adalah 0. Atribut ini opsional.
Pencarian: Ruang lingkup pencarian-tempat mencari data yang dibatasi. Nilai yang mungkin adalah Headers (Cari hanya header), Body (hanya mencari data isi, bukan header), Tanpa sumber daya (hanya mencari isi HTML, tidak termasuk semua header dan sumber daya), atau SEMUA (isi pencarian, header, dan sumber daya). Nilai defaultnya adalah SEMUA. Atribut ini bersifat opsional tetapi umumnya lebih disukai.