การกำหนดพารามิเตอร์ ฟังก์ชัน ธุรกรรมใน LoadRunner

⚡ สรุปอย่างชาญฉลาด

การกำหนดค่าพารามิเตอร์ การทำธุรกรรม และการตั้งค่าขณะทำงาน คือสามคุณสมบัติเสริมที่จะเปลี่ยนการบันทึก VuGen แบบธรรมดาให้กลายเป็นสคริปต์ที่ทำงานได้เหมือนผู้ใช้จริง และรายงานเวลาที่คุณเชื่อถือได้

  • 🔘 การทำธุรกรรม: ใช้ฟังก์ชัน lr_start_transaction และ lr_end_transaction ครอบคำขอเพื่อจับเวลา
  • ☑️ รหัสสถานะ: ปิดธุรกรรมด้วย LR_AUTO, LR_PASS หรือ LR_FAIL
  • นัดพบ: จัดให้ผู้ใช้เสมือน (VUsers) อยู่ที่จุดนัดพบเพื่อให้พวกเขาสามารถเข้าถึงเซิร์ฟเวอร์พร้อมกัน
  • 🧪 การกำหนดพารามิเตอร์: แทนที่วันที่ รหัส และชื่อผู้ใช้ที่กำหนดไว้ตายตัวด้วยค่าที่กำหนดต่อการวนซ้ำแต่ละครั้ง
  • 🛠️ การตั้งค่าขณะรันไทม์: การทำงานของตรรกะ, การกำหนดจังหวะ, การบันทึกข้อมูล, เวลาคิด, แบนด์วิดท์, เบราว์เซอร์, พร็อกซี
  • 📊 การทำซ้ำ: การตั้งค่าที่ไม่สม่ำเสมอเป็นสาเหตุหลักที่ทำให้ผลลัพธ์ไม่สามารถทำซ้ำได้

การกำหนดค่าพารามิเตอร์ การทำธุรกรรม และฟังก์ชันใน LoadRunner VuGen

สคริปต์ที่บันทึกไว้สามารถจำลองผู้ใช้เสมือนได้ อย่างไรก็ตาม การบันทึกเพียงอย่างเดียวอาจไม่เพียงพอที่จะจำลองพฤติกรรมของผู้ใช้จริงได้

เมื่อบันทึกสคริปต์แล้ว มันจะครอบคลุมขั้นตอนเดียวที่ตรงไปตรงมาในแอปพลิเคชันนั้นๆ แต่ผู้ใช้จริงอาจทำซ้ำกระบวนการหลายครั้งก่อนที่จะออกจากระบบ เวลาที่ใช้ในการคิด (ระยะเวลาคิด) ระหว่างการคลิกปุ่มต่างๆ ก็แตกต่างกันไปในแต่ละบุคคล และผู้ใช้บางคนอาจเข้าถึงแอปพลิเคชันของคุณด้วยการเชื่อมต่อที่รวดเร็ว ในขณะที่บางคนอาจไม่ ดังนั้น เพื่อให้ได้ความรู้สึกที่แท้จริงจากผู้ใช้ปลายทาง เราจำเป็นต้องปรับปรุงสคริปต์ของเราให้ทำงานได้ใกล้เคียงกับผู้ใช้จริงมากที่สุด

นั่นเป็นข้อพิจารณาที่สำคัญที่สุดเมื่อดำเนินการ “การทดสอบประสิทธิภาพแต่สคริปต์ VUser นั้นซับซ้อนกว่านั้น คุณจะวัดเวลาที่ VUser ใช้ไปในขณะที่ระบบกำลังถูกทดสอบภายใต้ภาระงาน (SUL) ได้อย่างไร คุณจะรู้ได้อย่างไรว่า VUser ผ่านหรือล้มเหลวในจุดใดจุดหนึ่ง และกระบวนการแบ็กเอนด์ล้มเหลวหรือทรัพยากรเซิร์ฟเวอร์หมดลงหรือไม่

เราจำเป็นต้องปรับปรุงบทของเราเพื่อช่วยตอบคำถามทั้งหมดข้างต้น

หมายเหตุเกี่ยวกับแบรนด์: VuGen เคยจำหน่ายในชื่อ HP จากนั้นเป็น Micro Focus และปัจจุบันเป็นส่วนหนึ่งของ OpenText วิศวกรรมประสิทธิภาพระดับมืออาชีพฟังก์ชันและการตั้งค่าด้านล่างนี้ยังคงไม่เปลี่ยนแปลง

การใช้ธุรกรรม

ธุรกรรมคือการวัดเวลาตอบสนองของเซิร์ฟเวอร์สำหรับการดำเนินการใดๆ กล่าวอย่างง่ายๆ คือ "ธุรกรรม" วัดเวลาที่ระบบใช้สำหรับคำขอเฉพาะเจาะจง ซึ่งอาจเป็นเรื่องเล็กๆ เช่น การคลิกปุ่ม หรือการเรียกใช้ AJAX เมื่อช่องข้อความสูญเสียโฟกัส

การใช้งานธุรกรรมนั้นง่ายมาก เพียงเขียนโค้ดบรรทัดเดียว ก่อนที่จะมีการร้องขอ และปิดธุรกรรมเมื่อการร้องขอสิ้นสุดลง LoadRunner ต้องการเพียงสตริงเป็นชื่อธุรกรรมเท่านั้น

หากต้องการเปิดธุรกรรม ให้ใช้รหัสบรรทัดนี้:

lr_start_transaction(“Transaction Name”);

หากต้องการปิดธุรกรรม ให้ใช้รหัสบรรทัดนี้:

lr_end_transaction(“Transaction Name”, <status>);

ที่ แจ้ง LoadRunner ว่าธุรกรรมนี้สำเร็จหรือไม่สำเร็จ พารามิเตอร์ที่เป็นไปได้อาจเป็น:

  • LR_อัตโนมัติ
  • LR_ผ่าน
  • LR_FAIL

ตัวอย่าง:

lr_end_transaction(“My_Login”, LR_AUTO);
lr_end_transaction(“001_Opening_Dashboard Name”, LR_PASS);
lr_end_transaction(“Business_Workflow_Transaction Name”, LR_FAIL);

Code บันทึกย่อ: โค้ดตัวอย่างถูกคัดลอกมาอย่างถูกต้องตามที่ตีพิมพ์ รวมถึงเครื่องหมายอัญประกาศด้วย สคริปต์ VuGen ที่ถูกต้องต้องใช้เครื่องหมายอัญประกาศคู่แบบ ASCII ดังนั้นหากคุณคัดลอกโค้ดนี้ โปรดพิมพ์เครื่องหมายอัญประกาศใหม่

จุดที่ควรทราบ:

  • อย่าลืมว่าคุณกำลังทำงานกับ "C" และนั่นคือภาษาที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
  • ไม่อนุญาตให้ใช้เครื่องหมายจุด (.) ในชื่อธุรกรรม แต่สามารถใช้ช่องว่างและเครื่องหมายขีดล่างได้
  • หากคุณได้แยกการทำงานของโค้ดอย่างดีและเพิ่มจุดตรวจสอบเพื่อยืนยันการตอบสนองจากเซิร์ฟเวอร์ คุณสามารถใช้การจัดการข้อผิดพลาดแบบกำหนดเอง เช่น LR_PASS หรือ LR_FAIL ได้ มิเช่นนั้น คุณสามารถใช้ LR_AUTO และ LoadRunner จะจัดการข้อผิดพลาดของเซิร์ฟเวอร์โดยอัตโนมัติ (HTTP 500, 400 เป็นต้น)
  • เมื่อทำการบันทึกรายการธุรกรรม โปรดตรวจสอบให้แน่ใจว่าไม่มีคำสั่งแสดงระยะเวลาคิด (think-time statement) แทรกอยู่ภายใน มิเช่นนั้น รายการธุรกรรมของคุณจะรวมช่วงเวลานั้นไว้ด้วยเสมอ
  • เนื่องจาก LoadRunner ต้องการสตริงคงที่สำหรับชื่อธุรกรรม ปัญหาที่พบบ่อยเมื่อใช้งานธุรกรรมคือสตริงไม่ตรงกัน หากคุณตั้งชื่อที่แตกต่างกันเมื่อเปิดและปิดธุรกรรม คุณจะได้รับข้อผิดพลาดอย่างน้อย 2 ข้อ ธุรกรรมที่คุณเปิดนั้นไม่เคยถูกปิด ดังนั้น LoadRunner จึงแสดงข้อผิดพลาด และธุรกรรมที่คุณพยายามปิดนั้นไม่เคยถูกเปิด ซึ่งทำให้เกิดข้อผิดพลาดข้อที่สอง
  • ข้อผิดพลาดทั้งสองจะปรากฏในบันทึกการเล่นซ้ำ ดังนั้นเมื่อใดก็ตามที่มีการรายงานข้อผิดพลาดใดข้อผิดพลาดหนึ่ง โปรดตรวจสอบชื่อธุรกรรมในงบเปิดและงบปิดก่อน
  • เนื่องจาก LoadRunner จะจัดการการซิงโครไนซ์คำขอและการตอบกลับโดยอัตโนมัติ คุณจึงไม่ต้องกังวลเกี่ยวกับการตอบกลับเมื่อใช้ธุรกรรม

จุดนัดพบ ความคิดเห็น และฟังก์ชันสคริปต์

การปรับปรุงเล็กๆ น้อยๆ สามอย่างทำให้สคริปต์ทำงานและอ่านได้เหมือนโค้ดที่ใช้ในการผลิตจริง ได้แก่ จุดนัดพบ ความคิดเห็น และเบราว์เซอร์ฟังก์ชันที่สร้างขึ้นใน VuGen

จุดนัดพบ

จุดนัดพบ (rendezvous point) คือ “จุดเชื่อมต่อ” เป็นคำสั่งเดียวที่บอกให้ LoadRunner เริ่มทำงานแบบขนาน (concurrency) คุณสามารถแทรกจุดนัดพบเหล่านี้ลงในสคริปต์ VUser เพื่อจำลองภาระงานของผู้ใช้จำนวนมากบนเซิร์ฟเวอร์

จุดนัดพบจะสั่งให้ VUser รอจนกว่าจะมี VUser หลายคนมารวมตัวกันที่จุดนั้น เพื่อให้พวกเขาสามารถทำงานพร้อมกันได้ ตัวอย่างเช่น เพื่อจำลองสถานการณ์ที่มีภาระงานสูงสุดบนเซิร์ฟเวอร์ของธนาคาร ให้เพิ่มจุดนัดพบเพื่อสั่งให้ VUser 100 คนฝากเงินสดพร้อมกัน

หากจุดนัดพบไม่ได้ถูกกำหนดไว้อย่างถูกต้อง ผู้ใช้เสมือน (VUsers) จะเข้าถึงส่วนต่างๆ ของแอปพลิเคชัน แม้ว่าจะใช้สคริปต์เดียวกันก็ตาม เนื่องจากผู้ใช้เสมือนแต่ละคนจะได้รับเวลาตอบสนองที่แตกต่างกัน ทำให้ผู้ใช้บางรายตามหลังอยู่

ไวยากรณ์:

lr_rendezvous(“Logical Name”);

หมายเหตุแก้ไข: หน้าเว็บที่เผยแพร่สะกดแบบนี้ lr_rendesvousชื่อฟังก์ชันที่ถูกต้องคือ lr_rendezvous; รูปแบบที่สะกดผิดจะไม่สามารถคอมไพล์ได้

ปฏิบัติที่ดีที่สุด:

  • นำหน้าจุดนัดพบด้วย “rdv_” เพื่อให้อ่านโค้ดได้ดีขึ้น เช่น “rdv_Login”
  • ลบข้อความแสดงเวลาคิดที่อยู่ติดกันออกทั้งหมด
  • กำหนดจุดนัดพบในมุมมองสคริปต์ หลังจากบันทึกเสร็จแล้ว

ภาพตัวอย่างสคริปต์ด้านล่างแสดงข้อความเกี่ยวกับการนัดพบที่แทรกอยู่ในแอ็กชันที่บันทึกไว้:

คำสั่ง Rendezvous ถูกแทรกเข้าไปในแอ็กชัน VuGen ที่บันทึกไว้ในมุมมองสคริปต์

ความคิดเห็น

เพิ่มคำอธิบายเพื่ออธิบายกิจกรรม ส่วนของโค้ด หรือบรรทัดของโค้ด คำอธิบายจะช่วยให้โค้ดเข้าใจง่ายขึ้นสำหรับผู้ที่อ้างอิงถึงโค้ดนั้นในอนาคต นอกจากนี้ยังให้ข้อมูลเกี่ยวกับการดำเนินการเฉพาะ และแบ่งโค้ดออกเป็นสองส่วนเพื่อให้เห็นความแตกต่างได้ชัดเจน

คุณสามารถเพิ่มความคิดเห็น

  • ขณะบันทึก (โดยใช้เครื่องมือ)
  • หลังจากบันทึก (เขียนโค้ดโดยตรง)

แนวทางปฏิบัติที่ดีที่สุด: ควรใส่คำอธิบายประกอบไว้ที่ด้านบนของไฟล์สคริปต์แต่ละไฟล์

การแทรกฟังก์ชันผ่านเมนู

แม้ว่าคุณจะสามารถเขียนโค้ดง่ายๆ ได้โดยตรง แต่คุณอาจต้องการคำใบ้เพื่อเรียกใช้ฟังก์ชัน คุณยังสามารถใช้ Steps Toolbox (หรือที่รู้จักในชื่อ Insert Function ก่อนเวอร์ชัน 12) เพื่อค้นหาและแทรกฟังก์ชันใดๆ ลงในสคริปต์ของคุณได้โดยตรง

คุณสามารถค้นหา Steps Toolbox ได้ที่เมนู View → Steps Toolbox ดังแสดงในภาพด้านล่าง

เมนู VuGen View ที่ไฮไลต์คำสั่ง Steps Toolbox

หน้าต่างด้านข้างจะเปิดขึ้นมา ดูภาพประกอบ:

ขั้นตอน แผงด้านข้างของกล่องเครื่องมือแสดงรายการฟังก์ชัน VuGen ที่พร้อมใช้งานสำหรับการแทรก

การกำหนดพารามิเตอร์คืออะไร?

พารามิเตอร์ใน VuGen คือคอนเทนเนอร์ที่เก็บค่าที่บันทึกไว้ ซึ่งจะถูกแทนที่สำหรับผู้ใช้แต่ละคน

ระหว่างการดำเนินการสคริปต์ (ใน VuGen หรือ ตัวควบคุมโดยค่าจากแหล่งภายนอก (เช่น ไฟล์ .txt, XML หรือฐานข้อมูล) จะใช้แทนค่าก่อนหน้าของพารามิเตอร์นั้น

การกำหนดพารามิเตอร์มีประโยชน์สำหรับการส่งค่าแบบไดนามิก (หรือค่าที่ไม่ซ้ำกัน) ไปยังเซิร์ฟเวอร์ ตัวอย่างเช่น กระบวนการทางธุรกิจอาจต้องทำงานซ้ำ 10 ครั้ง โดยเลือกชื่อผู้ใช้ที่ไม่ซ้ำกันในแต่ละครั้ง

นอกจากนี้ยังช่วยในการจำลองพฤติกรรมในชีวิตจริงกับระบบเป้าหมาย ลองดูตัวอย่างด้านล่างนี้

ตัวอย่างปัญหา:

  • กระบวนการทางธุรกิจจะทำงานได้เฉพาะกับวันที่ปัจจุบันซึ่งได้มาจากเซิร์ฟเวอร์ ดังนั้นจึงไม่สามารถส่งผ่านเป็นคำขอแบบตายตัวได้
  • บางครั้งแอปพลิเคชันไคลเอ็นต์จะส่ง ID เฉพาะไปยังเซิร์ฟเวอร์ (เช่น session_id) เพื่อให้กระบวนการดำเนินต่อไปได้ แม้กระทั่งสำหรับผู้ใช้เพียงคนเดียว ในกรณีเช่นนี้ การกำหนดพารามิเตอร์จะช่วยได้
  • โดยทั่วไป แอปพลิเคชันฝั่งไคลเอ็นต์จะเก็บแคชของข้อมูลที่ส่งไปและกลับจากเซิร์ฟเวอร์ ส่งผลให้เซิร์ฟเวอร์ไม่ได้รับพฤติกรรมการใช้งานจริงของผู้ใช้ (ซึ่งเซิร์ฟเวอร์จะใช้อัลกอริธึมที่แตกต่างกันไปตามเกณฑ์การค้นหา) สคริปต์ VUser จะทำงานได้อย่างสำเร็จ แต่สถิติประสิทธิภาพที่ได้จะไม่สื่อความหมาย การใช้ข้อมูลที่แตกต่างกันผ่านการกำหนดพารามิเตอร์จะช่วยจำลองกิจกรรมฝั่งเซิร์ฟเวอร์ เช่น สตored procedure และช่วยทดสอบระบบ
  • วันที่ที่ถูกกำหนดตายตัวใน VUser ระหว่างการบันทึกอาจไม่ถูกต้องอีกต่อไปเมื่อถึงวันที่นั้นแล้ว การกำหนดค่าพารามิเตอร์ให้กับวันที่ช่วยให้การทำงานของ VUser สำเร็จได้โดยการแทนที่วันที่ที่ถูกกำหนดตายตัว ฟิลด์หรือคำขอประเภทนี้จึงเหมาะสมอย่างยิ่งสำหรับการกำหนดค่าพารามิเตอร์

คุณสร้างพารามิเตอร์โดยการคลิกขวาที่ค่าที่บันทึกไว้ในมุมมองสคริปต์ แล้วเลือก "แทนที่ด้วยพารามิเตอร์" จากนั้น VuGen จะถามว่าประเภทใดที่ให้ค่ามา:

ประเภทพารามิเตอร์ คุณค่าที่มอบให้
เนื้อไม่มีมัน ค่าที่อ่านจากคอลัมน์ในไฟล์ .dat
ตาราง กลุ่มของแถวและคอลัมน์ในเวลาเดียวกัน
วันที่ / เวลา วันที่และเวลาปัจจุบันในรูปแบบที่เลือก
สุ่มเลข ตัวเลขจากช่วงที่คุณกำหนด
หมายเลขเฉพาะ หมายเลขเฉพาะสำหรับผู้ใช้เสมือนแต่ละราย โดยกำหนดจากค่าเริ่มต้นและขนาดบล็อก
หมายเลขการวนซ้ำ จำนวนรอบปัจจุบัน
รหัสผู้ใช้เสมือน รหัสประจำตัวที่กำหนดเมื่อเล่นซ้ำ
กลุ่ม / โหลด Generator ชื่อ กลุ่ม VUser หรือเครื่องกำเนิดสัญญาณ
XML ส่วนหนึ่งจากชุดข้อมูล XML
ฟังก์ชันที่ผู้ใช้กำหนดเอง ค่าที่ส่งคืนโดยฟังก์ชันไลบรารีของคุณเอง

มีตัวเลือกเพิ่มเติมอีกสองอย่างที่จะกำหนดวิธีการใช้ข้อมูลในแต่ละรอบการทำงาน:

ตัวเลือกเสริม (Option) ทางเลือก สิ่งที่มันควบคุม
เลือกแถวถัดไป เรียงลำดับ, สุ่ม, เฉพาะตัว บรรทัดถัดไปที่ VUser อ่าน
อัปเดตค่าบน ในแต่ละรอบ ในแต่ละเหตุการณ์ ครั้งเดียว เมื่อค่าได้รับการอัปเดตแล้ว

ตัวอย่างด้านล่างนี้แสดงวิธีการกำหนดค่าพารามิเตอร์ให้กับสคริปต์ที่บันทึกไว้:

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

การตั้งค่าขณะรันไทม์และผลกระทบต่อการจำลอง VUser

การตั้งค่าขณะรันไทม์มีความสำคัญไม่แพ้สคริปต์ VuGen ของคุณ การตั้งค่าที่แตกต่างกันอาจทำให้ได้การออกแบบการทดสอบที่แตกต่างกันอย่างสิ้นเชิง ซึ่งเป็นเหตุผลว่าทำไมการตั้งค่าขณะรันไทม์ที่ไม่สอดคล้องกันจึงเป็นสาเหตุหลักที่ทำให้ผลลัพธ์ไม่สามารถทำซ้ำได้ เรามาพูดคุยเกี่ยวกับคุณลักษณะแต่ละอย่างทีละข้อกัน

เรียกใช้ลอจิก

Run Logic กำหนดจำนวนครั้งที่การกระทำทั้งหมดจะถูกดำเนินการ ยกเว้น vuser_init และ vuser_end

นี่อาจทำให้เข้าใจได้ชัดเจนขึ้นว่าทำไม LoadRunner จึงแนะนำให้ keeping โค้ดส่วนการล็อกอินทั้งหมดจะอยู่ใน vuser_init และส่วนการล็อกเอาต์จะอยู่ใน vuser_end โดยแยกออกจากกันทั้งสองส่วน

หากคุณได้สร้างการกระทำหลายอย่าง เช่น เข้าสู่ระบบ เปิดหน้าจอ คำนวณค่าเช่า ชำระเงิน ตรวจสอบยอดคงเหลือ และออกจากระบบ สถานการณ์ด้านล่างนี้จะเกิดขึ้นกับผู้ใช้เสมือนแต่ละราย:

ผู้ใช้เสมือนทั้งหมดจะเข้าสู่ระบบ ดำเนินการเปิดหน้าจอ คำนวณค่าเช่า ส่งเงิน และตรวจสอบยอดคงเหลือ จากนั้นเปิดหน้าจอ คำนวณค่าเช่าอีกครั้ง และทำซ้ำเช่นนี้ 10 ครั้ง จากนั้นจึงออกจากระบบ (หนึ่งครั้ง)

หน้าต่าง Run Logic ในการตั้งค่ารันไทม์ของ VuGen แสดงจำนวนการวนซ้ำ

นี่คือการตั้งค่าที่มีประสิทธิภาพซึ่งช่วยให้สคริปต์ทำงานได้เหมือนผู้ใช้จริงมากขึ้น โปรดจำไว้ว่าผู้ใช้จริงไม่ได้ล็อกอินและล็อกเอาต์ทุกครั้ง พวกเขามักจะทำขั้นตอนเดิมๆ ซ้ำๆ

คุณคลิก "กล่องจดหมายเข้า" กี่ครั้งก่อนที่จะออกจากระบบเมื่อตรวจสอบอีเมล?

เดินไปเดินมา

นี่เป็นเรื่องสำคัญ คนส่วนใหญ่ไม่เข้าใจความแตกต่างระหว่างจังหวะการทำงานและเวลาคิด ความแตกต่างเพียงอย่างเดียวคือ จังหวะการทำงานหมายถึงช่วงเวลาหน่วงระหว่างการทำซ้ำแต่ละครั้ง ในขณะที่เวลาคิดคือช่วงเวลาหน่วงระหว่างขั้นตอนใดๆ สองขั้นตอน

การตั้งค่าที่แนะนำจะขึ้นอยู่กับการออกแบบการทดสอบ อย่างไรก็ตาม หากคุณต้องการใช้ภาระงานสูง ควรพิจารณาเลือก “ทันทีที่การวนซ้ำครั้งก่อนสิ้นสุดลง” ดังแสดงด้านล่าง

แผงการกำหนดจังหวะของการตั้งค่าเวลาทำงานพร้อมตัวเลือกการหน่วงเวลาการวนซ้ำ

เข้าสู่ระบบ

โดยทั่วไปแล้ว บันทึก (Log) คือบันทึกเหตุการณ์ทั้งหมดที่เกิดขึ้นขณะที่คุณใช้งาน LoadRunner คุณสามารถเปิดใช้งานบันทึกเพื่อทราบว่าเกิดอะไรขึ้นระหว่างแอปพลิเคชันของคุณกับเซิร์ฟเวอร์

LoadRunner มีกลไกการบันทึกข้อมูลที่มีประสิทธิภาพ แข็งแกร่ง และปรับขนาดได้ในตัว โดยอนุญาตให้คุณเก็บเฉพาะ "บันทึกมาตรฐาน" หรือบันทึกแบบละเอียดที่ปรับแต่งได้ หรือปิดการบันทึกทั้งหมดก็ได้

ไฟล์บันทึกมาตรฐานนั้นให้ข้อมูลครบถ้วนและเข้าใจง่าย ประกอบด้วยข้อมูลในปริมาณที่เหมาะสมสำหรับการแก้ไขปัญหาในสคริปต์ VUser ของคุณ

ในกรณีของ Extended Log ข้อมูลบันทึกมาตรฐานทั้งหมดจะเป็นเพียงส่วนย่อย นอกจากนี้ คุณยังสามารถใช้การแทนที่พารามิเตอร์ได้ ซึ่งจะบอกให้คอมโพเนนต์ LoadRunner รวมข้อมูลที่ครบถ้วนเกี่ยวกับพารามิเตอร์ทั้งหมด (จากการกำหนดค่าพารามิเตอร์) รวมถึงข้อมูลคำขอและข้อมูลการตอบกลับด้วย

หากคุณเพิ่ม "ข้อมูลที่ส่งกลับจากเซิร์ฟเวอร์" เข้าไปในไฟล์บันทึก ไฟล์บันทึกของคุณจะมีขนาดใหญ่ขึ้นมาก โดยจะรวมข้อมูล HTML แท็ก ทรัพยากร และข้อมูลที่ไม่ใช่ทรัพยากรทั้งหมดไว้ในไฟล์บันทึกเดียวกัน ตัวเลือกนี้เหมาะสำหรับกรณีที่คุณต้องการแก้ไขปัญหาอย่างจริงจังเท่านั้น โดยปกติแล้ว การเลือกวิธีนี้จะทำให้ไฟล์บันทึกมีขนาดใหญ่มากและเข้าใจได้ยาก

อย่างที่คุณอาจเดาได้แล้ว หากคุณเลือก “ขั้นสูง” Trac“ไฟล์บันทึกของคุณจะมีขนาดใหญ่มาก คุณต้องลองดู คุณจะสังเกตเห็นว่าเวลาที่ VuGen ใช้ก็เพิ่มขึ้นอย่างมากเช่นกัน แม้ว่าสิ่งนี้จะไม่มีผลกระทบต่อเวลาตอบสนองการทำธุรกรรมที่ VuGen รายงานก็ตาม นี่เป็นข้อมูลขั้นสูงมาก และจะมีประโยชน์ก็ต่อเมื่อคุณเข้าใจแอปพลิเคชันที่เกี่ยวข้อง การสื่อสารระหว่างไคลเอนต์กับเซิร์ฟเวอร์ระหว่างแอปพลิเคชันและฮาร์ดแวร์ของคุณ และรายละเอียดระดับโปรโตคอล โดยปกติแล้ว ข้อมูลนี้ต้องใช้ความพยายามอย่างมากในการอ่านและแก้ไขปัญหา”

หน้าต่างบันทึกข้อมูลของการตั้งค่าขณะทำงาน พร้อมตัวเลือกการบันทึกข้อมูลแบบมาตรฐานและแบบขยาย

ทิปส์:

  • ไม่ว่า VuGen จะใช้เวลานานแค่ไหนเมื่อเปิดใช้งานการบันทึกข้อมูล ก็ไม่มีผลกระทบต่อเวลาตอบสนองของธุรกรรม เนื่องจากค่าใช้จ่ายในการบันทึกข้อมูลนั้นไม่รวมอยู่ในเวลาที่วัดได้
  • ปิดใช้งานการบันทึกข้อมูลหากไม่จำเป็น
  • ปิดการบันทึกข้อมูลเมื่อคุณเขียนสคริปต์เสร็จแล้ว การรวมสคริปต์ที่เปิดใช้งานการบันทึกข้อมูลจะทำให้คอนโทรลเลอร์ทำงานช้าลงและแสดงข้อความที่น่ารำคาญ
  • การปิดใช้งานบันทึกจะเพิ่มจำนวนผู้ใช้สูงสุดที่คุณสามารถจำลองได้จาก LoadRunner
  • ลองใช้ตัวเลือก “ส่งข้อความเฉพาะเมื่อเกิดข้อผิดพลาด” — ตัวเลือกนี้จะปิดเสียงข้อความแจ้งเตือนที่ไม่จำเป็น และแสดงเฉพาะข้อความที่เกี่ยวข้องกับข้อผิดพลาดเท่านั้น

คิดถึงไทม์ส

Think Time เป็นเพียงการหน่วงเวลาระหว่างสองขั้นตอน

Think Time ช่วยจำลองพฤติกรรมของผู้ใช้ เนื่องจากไม่มีผู้ใช้จริงคนใดสามารถใช้งานแอปพลิเคชันได้เหมือนเครื่องจักร VuGen สร้าง Think Time โดยอัตโนมัติ คุณยังคงควบคุมได้อย่างสมบูรณ์ในการลบ เพิ่ม หรือเปลี่ยนแปลงระยะเวลาของ Think Time

เพื่อให้เข้าใจได้ดีขึ้น: ผู้ใช้อาจเปิดหน้าจอ (การตอบสนองตามด้วยคำขอ) จากนั้นพิมพ์ชื่อผู้ใช้และรหัสผ่านก่อนกด Enter การโต้ตอบครั้งต่อไประหว่างแอปพลิเคชันและเซิร์ฟเวอร์จะเกิดขึ้นเมื่อผู้ใช้คลิก "ลงชื่อเข้าใช้" เวลาที่ผู้ใช้ใช้ในการพิมพ์ชื่อผู้ใช้และรหัสผ่านคือเวลาคิด (Think Time) ใน LoadRunner

ส่วน "เวลาคิด" ในการตั้งค่ารันไทม์ พร้อมตัวเลือกเวลาคิดสำหรับการเล่นซ้ำ

หากคุณต้องการจำลองโหลดเชิงรุกบนแอปพลิเคชัน ให้พิจารณาปิดการใช้งานเวลาคิดโดยสิ้นเชิง

อย่างไรก็ตาม เพื่อจำลองพฤติกรรมในชีวิตจริง คุณสามารถเลือก “ใช้เวลาคิดแบบสุ่ม” และตั้งค่าเปอร์เซ็นต์ตามต้องการได้

ลองใช้ฟังก์ชัน Limit Think Time เพื่อจำกัดเวลาคิดให้อยู่ในระยะเวลาที่เหมาะสม โดยปกติ 30 วินาทีก็ถือว่าเพียงพอแล้ว

การจำลองความเร็ว

การจำลองความเร็วหมายถึงความจุแบนด์วิดท์ของเครื่องไคลเอนต์แต่ละเครื่อง

เนื่องจากเราจำลองผู้ใช้งานเสมือน (VUser) หลายพันคนผ่าน LoadRunner จึงเป็นเรื่องน่าทึ่งที่ LoadRunner ทำให้การจำลองแบนด์วิดท์และความเร็วเครือข่ายง่ายดายเพียงใด

หากลูกค้าของคุณเข้าถึงแอปพลิเคชันของคุณด้วยความเร็วเกิน 128 Kbps คุณสามารถควบคุมความเร็วได้จากที่นี่ คุณจะสามารถจำลองพฤติกรรมการใช้งานจริง ซึ่งจะช่วยให้คุณได้รับสถิติประสิทธิภาพที่ถูกต้อง

หน้าต่างจำลองความเร็วที่แสดงตัวเลือกแบนด์วิดท์สูงสุดหรือความเร็วการเชื่อมต่อคงที่

คำแนะนำที่ดีที่สุดคือการตั้งค่าให้ใช้แบนด์วิดท์สูงสุด วิธีนี้จะช่วยให้คุณไม่สนใจปัญหาคอขวดด้านประสิทธิภาพที่เกี่ยวข้องกับเครือข่าย และมุ่งเน้นไปที่ปัญหาที่อาจเกิดขึ้นในแอปพลิเคชันก่อน คุณสามารถเรียกใช้การทดสอบหลายครั้งเพื่อดูพฤติกรรมที่แตกต่างกันภายใต้สถานการณ์ต่างๆ ได้เสมอ

การจำลองเบราว์เซอร์

ประสบการณ์การใช้งานของผู้ใช้ไม่ได้ขึ้นอยู่กับเบราว์เซอร์ที่ผู้ใช้ปลายทางใช้ ดังนั้นจึงอยู่นอกเหนือขอบเขตของการวัดประสิทธิภาพเป็นส่วนใหญ่ อย่างไรก็ตาม คุณสามารถเลือกเบราว์เซอร์ที่คุณต้องการจำลองได้ ดังที่แสดงในแผงด้านล่าง

หน้าต่างจำลองเบราว์เซอร์ พร้อมตัวเลือกการจำลองเอเจนต์ผู้ใช้และแคช

ในการตั้งค่านี้ การเลือกใช้เบราว์เซอร์ใดจึงมีความสำคัญจริงๆ?

คุณจะใช้การตั้งค่านี้หากแอปพลิเคชันที่คุณศึกษาเป็นแอปพลิเคชันบนเว็บที่แสดงผลแตกต่างกันในแต่ละเบราว์เซอร์ ตัวอย่างเช่น คุณอาจเห็นภาพและเนื้อหาที่แตกต่างกันใน Internet Explorer และเบราว์เซอร์อื่นๆ Firefox.

อีกหนึ่งการตั้งค่าที่สำคัญคือ จำลองแคชของเบราว์เซอร์ หากคุณต้องการวัดเวลาตอบสนองเมื่อเปิดใช้งานแคช ให้ติ๊กช่องนี้ แต่หากคุณต้องการทดสอบสถานการณ์ที่เลวร้ายที่สุด การตั้งค่านี้ก็ไม่ใช่สิ่งที่คุณต้องพิจารณา

การดาวน์โหลดทรัพยากรที่ไม่ใช่ HTML จะทำให้ LoadRunner ดาวน์โหลดไฟล์ CSS, JS และไฟล์มีเดียอื่นๆ ได้ ควรคงตัวเลือกนี้ไว้ อย่างไรก็ตาม หากคุณต้องการตัดตัวเลือกนี้ออกจากการออกแบบการทดสอบประสิทธิภาพ คุณสามารถยกเลิกการเลือกได้

หนังสือมอบฉันทะ

ทางที่ดีที่สุดคือควรลบพร็อกซีออกจากระบบของคุณโดยสมบูรณ์ สภาพแวดล้อมการทดสอบ — การมีพร็อกซีอยู่ในเส้นทางจะทำให้ผลการทดสอบไม่น่าเชื่อถือ อย่างไรก็ตาม คุณอาจพบสถานการณ์ที่หลีกเลี่ยงไม่ได้ ในกรณีเช่นนั้น LoadRunner จะมีฟังก์ชันการตั้งค่าพร็อกซีให้ใช้งาน

คุณจะต้องใช้งาน (หรือควรใช้งาน) โดยตั้งค่าเป็น "ไม่ใช้พร็อกซี" คุณสามารถตั้งค่านี้ได้จากเบราว์เซอร์เริ่มต้นของคุณ อย่างไรก็ตาม อย่าลืมตรวจสอบว่าเบราว์เซอร์ใดถูกตั้งค่าเป็นเบราว์เซอร์เริ่มต้น และการตั้งค่าพร็อกซีสำหรับเบราว์เซอร์นั้นเป็นอย่างไร

หน้าต่างการตั้งค่าพร็อกซีในโปรแกรม พร้อมตัวเลือกไม่ใช้พร็อกซีและพร็อกซีแบบกำหนดเอง

หากคุณใช้พร็อกซีและพร็อกซีนั้นต้องการการตรวจสอบสิทธิ์ (หรือสคริปต์) คุณสามารถคลิกที่ปุ่ม "ตรวจสอบสิทธิ์" ซึ่งจะนำคุณไปยังหน้าต่างใหม่ โปรดดูภาพหน้าจอประกอบด้านล่าง

หน้าต่างยืนยันตัวตนพร็อกซีที่ขอให้ป้อนชื่อผู้ใช้และรหัสผ่าน

ใช้หน้าจอนี้เพื่อป้อนชื่อผู้ใช้และรหัสผ่านเพื่อเข้าสู่ระบบบนพร็อกซีเซิร์ฟเวอร์ คลิก ตกลง เพื่อปิดหน้าจอ

ขอแสดงความยินดี คุณตั้งค่าสคริปต์ VuGen เสร็จเรียบร้อยแล้ว อย่าลืมตั้งค่าสคริปต์ VUser ทั้งหมดของคุณด้วย

ต่อไปคือ ความสัมพันธ์โดยดำเนินการตามสถานการณ์ใน ตัวควบคุมและผลจากการอ่าน การวิเคราะห์ LoadRunner. ดู สถาปัตยกรรม LoadRunner และ โหลดการทดสอบ คำแนะนำ

คำถามที่พบบ่อย

เลือกค่าในมุมมองสคริปต์ คลิกขวา แล้วเลือก แทนที่ด้วยพารามิเตอร์ ตั้งชื่อ เลือกประเภท แล้ว VuGen จะแทนที่ทุกตำแหน่งที่ตรงกันตามที่คุณอนุมัติ

วันที่/เวลา, เลขสุ่ม, เลขเฉพาะ, หมายเลขรอบการทำงาน, รหัสผู้ใช้เสมือน, ชื่อกลุ่ม และปริมาณโหลด Generator ชื่อจะถูกสร้างขึ้นในระหว่างการเล่นซ้ำ เฉพาะพารามิเตอร์ประเภทไฟล์ ตาราง และ XML เท่านั้นที่ต้องการแหล่งข้อมูลที่คุณระบุ

การเรียนรู้ของเครื่องจะแนะนำตัวเลือกที่มีความสัมพันธ์กัน ตรวจสอบสคริปต์ที่ทำงานผิดพลาดหลังจากมีการเปลี่ยนแปลงแอปพลิเคชัน และสร้างข้อมูลทดสอบที่สมจริง เวอร์ชันล่าสุดของ VuGen มาพร้อมกับการสร้างสคริปต์โดยใช้ AI ช่วย แต่ข้อความที่สร้างขึ้นยังคงต้องได้รับการตรวจสอบ

นักบิน GitHub VuGen จัดการกับโครงสร้างพื้นฐานของภาษา C ได้ดี เช่น ลูป การจัดการสตริง และตัวห่อธุรกรรม เนื่องจากสคริปต์ของ VuGen เขียนด้วยภาษา C อย่างไรก็ตาม มันอาจอ่อนแอในเรื่องฟังก์ชันเว็บที่เฉพาะเจาะจงกับโปรโตคอล ดังนั้นควรตรวจสอบการเรียกใช้งานทุกครั้งเทียบกับเอกสารอ้างอิงของฟังก์ชันนั้น

คำสั่งนี้จะบอกให้ VUser ดำเนินการขั้นตอนที่เหลือต่อไปหลังจากที่ขั้นตอนใดขั้นตอนหนึ่งล้มเหลว แทนที่จะยุติการวนซ้ำ มีประโยชน์ในการทดลองใช้งานในช่วงแรก แต่หากเปิดใช้งานไว้ จะซ่อนความล้มเหลวที่แท้จริง

เพิ่มการตรวจสอบเนื้อหาก่อนส่งคำขอ เพื่อให้การเล่นซ้ำค้นหาข้อความที่คาดหวังในคำตอบ สถานะ HTTP ที่ผ่านอย่างเดียวไม่สามารถพิสูจน์อะไรได้ เพราะหน้าแสดงข้อผิดพลาดอาจส่งคืนรหัส 200 ก็ได้

ไม่ ผลิตภัณฑ์ดังกล่าวได้ย้ายจาก HP ไปยัง Micro Focus แล้ว และตอนนี้เป็น... OpenText วิศวกรรมประสิทธิภาพระดับมืออาชีพVuGen ยังคงชื่อ ฟังก์ชันไลบรารี และแผงการตั้งค่ารันไทม์ไว้เช่นเดิม

คำสั่ง lr_rendezvous ทำหน้าที่เพียงแค่กำหนดจุดนัดพบเท่านั้น จำนวน VUser ที่ต้องมาถึง และระยะเวลาการรอในการทำงาน จะถูกกำหนดไว้ในตัวเลือกการนัดพบของ Controller ไม่ใช่ใน VuGen

สรุปโพสต์นี้ด้วย: