Skrip yang dirakam dapat mensimulasikan pengguna maya; namun, rakaman semata-mata mungkin tidak cukup untuk meniru "tingkah laku pengguna sebenar".
Apabila skrip dirakam, ia merangkumi aliran tunggal dan lurus aplikasi subjek. Manakala, pengguna sebenar boleh melakukan berulang kali proses apa pun sebelum dia log keluar. Kelewatan antara mengklik butang (waktu berfikir) akan berbeza dari orang ke orang. Kemungkinan ada beberapa pengguna sebenar mengakses aplikasi anda melalui DSL dan ada yang mengaksesnya melalui dial-up. Oleh itu, untuk mendapatkan kesan sebenar pengguna akhir, kita perlu meningkatkan skrip kita agar sesuai, atau sekurang-kurangnya tingkah laku yang sangat dekat dengan pengguna sebenar.
Perkara di atas adalah pertimbangan yang paling penting ketika melakukan "Performance Testing", tetapi ada lebih banyak lagi untuk Skrip VU. Bagaimana anda akan mengukur jumlah masa yang tepat yang diambil oleh VUser ketika SUL menjalani ujian prestasi? Bagaimana anda tahu jika VUser telah melewati atau gagal pada titik tertentu? Apakah penyebab di sebalik kegagalan itu, adakah beberapa proses backend gagal atau sumber pelayan terhad?
Kami perlu meningkatkan skrip kami untuk membantu menjawab semua soalan di atas.
- Menggunakan Transaksi
- Memahami Masa Berfikir, Poin Rendezvous dan Komen
- Memasukkan Fungsi melalui menu
- Apakah Parameterisasi?
- Jalankan Tetapan Masa dan kesannya pada simulasi VU
- Jalankan Logik
- Bergerak
- Log
- Fikirkan Masa
- Simulasi Kelajuan
- Emulasi Penyemak Imbas
- Proksi
Menggunakan Transaksi
Transaksi adalah mekanik untuk mengukur masa tindak balas pelayan untuk sebarang operasi. Dengan kata mudah, penggunaan "Transaksi" membantu mengukur masa yang diambil oleh sistem untuk permintaan tertentu. Ini boleh sekecil klik butang atau panggilan AJAX setelah kehilangan fokus dari kotak teks.
Memohon transaksi adalah mudah. Cukup tulis satu baris kod sebelum permintaan dibuat ke pelayan dan tutup transaksi ketika permintaan berakhir. LoadRunner hanya memerlukan rentetan sebagai nama transaksi.
Untuk membuka transaksi, gunakan baris kod ini:
lr_start_transaction ("Nama Transaksi");
Untuk menutup transaksi, gunakan baris kod ini:
lr_end_transaction ("Transaction Name",);
- LR_AUTO
- LR_PASS
- LR_FAIL
Contoh:
lr_end_transaction ("My_Login", LR_AUTO);
lr_end_transaction ("Business_Workflow_Transaction Name", LR_FAIL);
Perkara yang perlu diperhatikan:
- Jangan lupa, anda bekerja dengan "C" dan itu adalah bahasa yang sensitif huruf.
- Periode (.) Watak tidak dibenarkan dalam nama transaksi, walaupun anda dapat menggunakan spasi dan garis bawah.
- Sekiranya anda telah menyusun kod anda dengan baik dan menambahkan pusat pemeriksaan untuk mengesahkan tindak balas dari pelayan, anda boleh menggunakan pengendalian ralat tersuai, seperti, LR_PASS atau LR_FAIL. Jika tidak, anda boleh menggunakan LR_AUTO dan LoadRunner secara automatik akan menangani ralat pelayan (HTTP 500, 400 dll)
- Semasa melaksanakan transaksi, pastikan tidak ada pernyataan think_time yang disandarkan atau jika tidak, transaksi anda akan selalu merangkumi tempoh tersebut.
- Oleh kerana LoadRunner memerlukan rentetan tetap sebagai nama transaksi, masalah yang biasa dilakukan semasa melakukan transaksi adalah ketidakcocokan tali. Sekiranya anda memberikan nama yang berbeza semasa membuka dan menutup transaksi, anda akan sekurang-kurangnya 2 kesalahan. Oleh kerana transaksi yang anda buka tidak pernah ditutup, LoadRunner akan menghasilkan kesalahan. Selain itu, transaksi yang ingin anda tutup tidak pernah dibuka, sehingga mengakibatkan kesalahan.
- Bolehkah anda menggunakan kepandaian dan menjawab sendiri kesalahan mana di atas yang akan dilaporkan terlebih dahulu? Untuk mengesahkan jawapan anda, mengapa tidak membuat kesilapan anda sendiri? Sekiranya anda menjawab dengan betul, anda berada di landasan yang betul. Sekiranya anda salah menjawab, anda perlu fokus.
- Oleh kerana LoadRunner secara automatik mengurus penyegerakan permintaan dan respons, anda tidak perlu risau tentang tindak balas ketika melakukan transaksi.
Memahami Masa Berfikir, Poin Rendezvous dan Komen
Mata Rendezvous
Rendezvous Points bermaksud "titik pertemuan". Ini hanya satu baris pernyataan yang memberitahu LoadRunner untuk memperkenalkan konkurensi. Anda memasukkan titik pertemuan ke dalam skrip VUser untuk meniru beban pengguna yang berat di pelayan.
Titik Rendezvous memerintahkan VUser untuk menunggu semasa pelaksanaan ujian untuk beberapa VUser tiba pada titik tertentu, sehingga mereka dapat melakukan tugas secara bersamaan. Sebagai contoh, untuk meniru beban puncak pada pelayan bank, anda boleh memasukkan titik pertemuan yang memerintahkan 100 VUser untuk memasukkan wang tunai ke dalam akaun mereka pada masa yang sama. Ini dapat dicapai dengan mudah menggunakan pertemuan.
Sekiranya titik pertemuan tidak ditempatkan dengan betul, VUser akan mengakses bahagian aplikasi yang berbeza - walaupun untuk skrip yang sama. Ini kerana setiap VUser mendapat masa tindak balas yang berbeza dan oleh itu hanya sedikit pengguna yang ketinggalan.
Sintaks: lr_rendesvous ("Nama Logik");
Amalan terbaik:
- Awal titik pertemuan dengan "rdv_" untuk pembacaan kod yang lebih baik; contohnya "rdv_Login"
- Keluarkan sebarang penyataan masa berfikir segera
- Menerapkan titik pertemuan dalam paparan skrip (selepas rakaman)
Komen
Tambahkan komen untuk menerangkan aktiviti, sekeping kod atau sebaris kod. Komen membantu menjadikan kod itu dapat difahami bagi sesiapa sahaja yang merujuknya pada masa akan datang. Mereka memberikan maklumat mengenai operasi khusus dan memisahkan dua bahagian untuk perbezaan.
Anda boleh menambah komen
- Semasa merakam (menggunakan alat)
- Selepas merakam (menulis secara langsung dalam kod)
Amalan Terbaik: Tandakan sebarang komen di bahagian atas setiap fail skrip
Memasukkan Fungsi melalui menu
Walaupun anda dapat menulis baris kod mudah secara langsung, anda mungkin memerlukan petunjuk untuk mengingat fungsi. Anda juga dapat menggunakan Steps Toolbox (dikenal sebagai Insert Function sebelum versi 12) untuk mencari dan memasukkan fungsi apa pun secara langsung ke skrip anda.
Anda boleh mencari Steps Toolbar di bawah View àSteps Toolbox.
Ini akan membuka tetingkap sisi, lihat gambarnya:
Apakah Parameterisasi?
A parameter dalam VUGen adalah bekas yang mengandungi nilai yang dirakam yang digantikan untuk pelbagai pengguna.
Semasa pelaksanaan skrip (dalam VUGen atau Controller), nilai dari sumber luaran (seperti .txt, XML atau pangkalan data) menggantikan nilai parameter sebelumnya.
Parameterisasi berguna dalam menghantar nilai dinamik (atau unik) ke pelayan, misalnya; proses perniagaan diinginkan untuk menjalankan 10 lelaran tetapi memilih nama pengguna yang unik setiap masa.
Ini juga membantu dalam mendorong tingkah laku seperti sebenar kepada sistem subjek. Lihat contoh di bawah:
Contoh masalah:
Proses perniagaan hanya berfungsi untuk tarikh semasa yang berasal dari pelayan, oleh itu tidak dapat diteruskan sebagai permintaan hardcoded.
Kadang kala, aplikasi klien memberikan ID Unik ke pelayan (contohnya sesi_id) agar proses dapat diteruskan (walaupun untuk satu pengguna) - Dalam kes sedemikian, parameterisasi membantu.
Selalunya, aplikasi pelanggan mengekalkan cache data yang dihantar ke dan dari pelayan. Akibatnya, pelayan tidak menerima tingkah laku pengguna yang sebenar (sekiranya pelayan menjalankan algoritma yang berbeza bergantung pada kriteria carian). Walaupun skrip VUser akan berjaya dilaksanakan, statistik prestasi yang dilukis tidak akan bermakna. Menggunakan data yang berbeza melalui parameterisasi membantu meniru aktiviti sisi pelayan (prosedur dll) dan menjalankan sistem.
Tarikh yang dicantumkan dalam VUser semasa rakaman mungkin tidak lagi berlaku apabila tarikh tersebut telah berlalu. Parameterisasi tarikh membolehkan pelaksanaan VUser berjaya dengan menggantikan tarikh keras. Bidang atau permintaan seperti itu adalah calon yang tepat untuk parameterisasi.
Klik di sini jika video tidak dapat diakses
Jalankan Tetapan Masa dan kesannya pada simulasi VU
Jalankan Waktu Tetapan sama pentingnya dengan Skrip VUGen anda. Dengan konfigurasi yang berbeza-beza, anda boleh mendapatkan reka bentuk ujian yang berbeza. Inilah sebabnya, anda mungkin akan mendapat hasil yang tidak dapat diulang sekiranya Run Time Settings tidak konsisten. Mari kita bincangkan setiap atribut satu persatu.
Jalankan Logik
Run Logic menentukan berapa kali semua tindakan akan dilaksanakan, kecuali vuser_init dan vuser_end.
Mungkin ini menjelaskan mengapa LoadRunner mencadangkan menyimpan semua kod Log masuk dalam vuser_init, dan bahagian Logout di vuser_end, keduanya secara eksklusif.
Sekiranya anda telah membuat banyak tindakan, katakanlah, Log masuk, Skrin Terbuka, Kira Sewa, Kirim Dana, Periksa Baki dan log keluar, maka, senario di bawah akan berlaku untuk setiap Pengguna:
Semua Pengguna akan log masuk, melaksanakan Skrin Terbuka, Kira Sewa, Kirim Dana, Periksa Baki - kemudian - sekali lagi Buka skrin, Kira sewa ... dan seterusnya - berulang 10 kali - diikuti dengan log keluar (sekali).
Ini adalah tetapan hebat yang membolehkan bertindak lebih seperti pengguna sebenar. Ingat, pengguna sebenar tidak masuk dan logout setiap kali - dia, biasanya, mengulangi langkah yang sama.
Berapa kali anda mengklik "peti masuk" semasa memeriksa e-mel sebelum logout?
Bergerak
Ini sangat penting. Kebanyakan orang tidak dapat memahami perbezaan antara langkah dan masa berfikir. Satu-satunya perbezaan adalah, "mondar-mandir merujuk kepada kelewatan antara lelaran" sedangkan waktu berfikir adalah kelewatan antara 2 langkah.
Pengaturan yang disyorkan bergantung pada reka bentuk ujian. Namun, jika anda ingin memiliki beban yang agresif, pertimbangkan untuk memilih "Segera setelah lelaran sebelumnya berakhir"
Log
Log (seperti yang difahami secara umum) adalah pembukuan semua peristiwa semasa anda menjalankan LoadRunner. Anda boleh mengaktifkan log untuk mengetahui apa yang berlaku antara aplikasi dan pelayan anda.
LoadRunner memberikan mekanisme pembalakan yang kuat yang kuat dan boleh ditingkatkan dengan sendirinya. Ini membolehkan anda menyimpan hanya "Log Log" atau log terperinci yang boleh dikonfigurasi atau mematikannya sama sekali.
Log standard adalah bermaklumat dan mudah difahami. Ini mengandungi jumlah pengetahuan yang tepat yang biasanya anda perlukan untuk menyelesaikan masalah skrip VUser anda.
Dalam kes Log Lanjutan, semua maklumat log Piawai adalah subset. Selain itu, anda boleh mempunyai penggantian parameter. Ini memberitahu komponen LoadRunner untuk memasukkan informasi lengkap semua parameter (dari parameterisasi) termasuk permintaan, dan juga data respons.
Sekiranya anda memasukkan "Data Dikembalikan oleh Pelayan" maka log anda akan panjang lebar. Ini akan merangkumi semua HTML, tag, sumber, maklumat bukan sumber yang disertakan tepat di dalam log. Pilihannya baik hanya jika anda memerlukan penyelesaian masalah yang serius. Biasanya, ini menjadikan fail log berukuran sangat besar dan tidak mudah difahami.
Seperti yang anda dapat meneka sekarang jika anda memilih "Advance Trace", fail log anda akan menjadi besar. Anda mesti mencubanya. Anda akan melihat jumlah masa yang diambil oleh VUGen juga meningkat dengan ketara, walaupun ini tidak akan mempengaruhi masa tindak balas transaksi yang dilaporkan oleh VUGen. Walau bagaimanapun, ini adalah maklumat yang sangat awal dan mungkin berguna jika anda memahami aplikasi subjek, komunikasi pelanggan ke pelayan antara aplikasi dan perkakasan anda serta perincian tahap protokol. Biasanya, maklumat ini pada dasarnya mati kerana memerlukan usaha yang tinggi untuk memahami dan menyelesaikan masalah.
Petua:
- Tidak kira berapa banyak masa yang diperlukan oleh VUGen ketika log diaktifkan, ia tidak memberi kesan pada masa tindak balas transaksi. HP menyebut fenomena ini sebagai "teknologi canggih."
- Lumpuhkan log jika tidak diperlukan.
- Lumpuhkan log apabila anda selesai dengan skrip anda. Menyertakan skrip dengan pembalakan diaktifkan akan menyebabkan pengawal berjalan lebih lambat dan melaporkan pesan mengganggu.
- Melumpuhkan log akan meningkatkan kapasiti jumlah maksimum pengguna yang dapat anda simulasi dari LoadRunner.
- Pertimbangkan untuk menggunakan "Kirim pesan hanya apabila berlaku ralat" - ini akan mematikan mesej maklumat yang tidak perlu dan hanya melaporkan mesej yang berkaitan dengan ralat.
Fikirkan Masa
Think Time hanyalah kelewatan antara dua langkah.
Think Time membantu meniru tingkah laku pengguna kerana tidak ada pengguna sebenar yang dapat menggunakan aplikasi seperti mesin (VUGen). VUGen menghasilkan masa berfikir secara automatik. Anda masih mempunyai kawalan sepenuhnya untuk membuang, melipatgandakan atau turun naik jangka masa berfikir.
Untuk memahami lebih banyak, misalnya, pengguna dapat membuka layar (itu adalah respons diikuti dengan permintaan) dan kemudian memberikannya nama pengguna dan kata sandi sebelum menekan enter. Interaksi aplikasi seterusnya ke pelayan akan berlaku ketika dia mengklik "Masuk". Masa yang diperlukan oleh pengguna untuk menaip nama pengguna dan kata laluannya ialah Think Time in LoadRunner.
Sekiranya anda ingin mensimulasikan beban agresif pada aplikasi, pertimbangkan untuk mematikan masa berfikir sepenuhnya.
Namun, untuk mensimulasikan tingkah laku seperti yang sebenarnya, anda dapat "Waktu Berfikir Rawak Pengguna" dan menetapkan peratusan seperti yang diinginkan.
Pertimbangkan untuk menggunakan Had Masa Berfikir untuk tempoh yang sah. Biasanya, 30 saat cukup baik.
Simulasi Kelajuan
Simulasi kelajuan hanya merujuk kepada kapasiti lebar jalur untuk setiap mesin pelanggan.
Oleh kerana kami mensimulasikan ribuan VUser's melalui LoadRunner, sangat mengagumkan betapa mudahnya LoadRunner untuk mengawal simulasi kelajuan jalur / rangkaian.
Sekiranya anda pelanggan mengakses aplikasi anda melebihi 128 Kbps, anda boleh mengawalnya dari sini. Anda akan dapat mensimulasikan "tingkah laku seperti sebenar" yang akan membantu mendapatkan statistik prestasi yang tepat.
Cadangan terbaik adalah menetapkan untuk Menggunakan lebar jalur maksimum. Ini akan membantu mengabaikan sebarang masalah prestasi yang berkaitan dengan rangkaian dan memberi tumpuan kepada masalah yang berpotensi dalam aplikasi terlebih dahulu. Anda selalu boleh menjalankan ujian beberapa kali untuk melihat tingkah laku yang berbeza dalam keadaan yang berbeza.
Emulasi Penyemak Imbas
Pengalaman pengguna tidak bergantung pada penyemak imbas yang digunakan pengguna akhir. Jelas, ini di luar skop ukuran Prestasi. Walau bagaimanapun, anda boleh memilih penyemak imbas mana yang ingin anda tiru.
Bolehkah anda menjawab sendiri bila sebenarnya sangat penting bagi anda untuk memilih penyemak imbas yang betul dalam konfigurasi ini?
Anda akan menggunakan konfigurasi ini jika aplikasi subjek adalah aplikasi web, memberikan respons yang berbeza untuk penyemak imbas yang berbeza. Contohnya, anda dapat melihat gambar dan kandungan yang berbeza untuk IE dan Firefox dll.
Tetapan penting lain ialah Simulasi cache penyemak imbas. Sekiranya anda ingin mengukur masa tindak balas apabila cache diaktifkan, tandakan kotak ini. Sekiranya anda mencari keadaan terburuk, ini jelas tidak menjadi pertimbangan.
Muat turun sumber bukan HTML akan membolehkan LoadRunner memuat turun CSS, JS dan media kaya lain. Perkara ini harus diperiksa. Walau bagaimanapun, jika anda yang menghapuskannya dari reka bentuk ujian prestasi anda, anda boleh mencentangnya.
Proksi
Sebaiknya hapuskan proksi sepenuhnya dari Persekitaran Ujian anda - ini akan menjadikan keputusan ujian tidak boleh dipercayai. Namun, anda mungkin menghadapi situasi di mana ia tidak dapat dielakkan. Dalam keadaan seperti itu, LoadRunner memudahkan anda dengan tetapan proksi.
Anda akan berfungsi (atau semestinya berfungsi) tanpa tetapan proksi. Anda boleh mendapatkannya dari penyemak imbas lalai anda. Namun, jangan lupa untuk memeriksa penyemak imbas mana yang ditetapkan untuk lalai dan konfigurasi proksi untuk penyemak imbas lalai.
Sekiranya anda menggunakan proksi dan memerlukan pengesahan (atau skrip), maka anda boleh mengklik butang Authenticate yang menuju ke tetingkap baru. Rujuk tangkapan skrin di bawah.
Gunakan skrin ini untuk memberikan nama pengguna dan kata laluan untuk disahkan pada pelayan proksi. Klik OK untuk menutup skrin.
Selamat bertunang. Anda selesai dengan konfigurasi skrip VUGen anda. Jangan lupa mengkonfigurasinya untuk semua skrip VUser anda.