วิธีการใช้งานธุรกรรมใน QTP/UFT

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

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

  • 🔘 วัตถุประสงค์: พิจารณาเฉพาะธุรกรรมต่อขั้นตอนการดำเนินงานทางธุรกิจ เช่น การจองเที่ยวบิน ไม่ใช่การทดสอบทั้งหมด
  • ☑️ การแทรก: เมนูแทรกจะเพิ่มคำสั่งเริ่มธุรกรรมและสิ้นสุดธุรกรรมไว้รอบๆ ขั้นตอนที่เลือกไว้
  • งบ: เมธอด Services.StartTransaction และ Services.EndTransaction ทำงานเดียวกันได้โดยตรงใน Editor
  • 🧪 ผลการศึกษา: ส่วนท้ายของรายงานจะแสดงชื่อ สถานะ ระยะเวลาทั้งหมด และเวลาที่เสียไป
  • 🛠️ การทำรัง: ธุรกรรมสามารถซ้อนกันได้ แต่ธุรกรรมที่เปิดอยู่สองรายการจะต้องไม่ใช้ชื่อเดียวกัน
  • ⚠️ บูรณาการ: LoadRunner และ Business Process Monitor อ่านเฉพาะข้อมูลที่บันทึกไว้ภายในธุรกรรมเท่านั้น

วิธีการใช้งานธุรกรรมใน QTP UFT

In UFT หนึ่ง/QTPคุณสามารถวัดระยะเวลาที่ใช้ในการรันส่วนใดส่วนหนึ่งของการทดสอบได้โดยการกำหนดธุรกรรม คุณกำหนดธุรกรรมภายในการทดสอบของคุณโดยการใส่คำสั่งเริ่มต้นและสิ้นสุดธุรกรรมไว้ในส่วนที่เหมาะสมของการทดสอบ

สามารถแทรกรายการธุรกรรมได้ทุกที่ในสคริปต์ และไม่มีข้อจำกัดเกี่ยวกับจำนวนรายการธุรกรรมที่สามารถเพิ่มลงในการทดสอบได้

⚠️ การตั้งชื่อผลิตภัณฑ์: เครื่องมือดังกล่าวถูกจัดส่งในชื่อ HP QuickTest Professional (QTP(ชื่อบริษัท) กลายเป็น HP จากนั้นก็เป็น Micro Focus Unified Functional Testing และปัจจุบันจำหน่ายโดย OpenTextซึ่งหน้าช่วยเหลือปัจจุบันเรียกมันว่า OpenText การทดสอบการทำงาน การทำธุรกรรมทำงานในลักษณะเดียวกันในทุกเวอร์ชันที่ปล่อยออกมา

วิธีการแทรกรายการธุรกรรมใน QTP?

คุณยังสามารถแทรกธุรกรรมภายในธุรกรรมได้

วิดีโอต่อไปนี้จะแนะนำคุณเกี่ยวกับขั้นตอนในการแทรกธุรกรรมใน UFT หนึ่ง

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

ตัวอย่างเช่น คุณอาจต้องการบันทึกเวลาที่ใช้ไป จองตั๋วเครื่องบิน.

  1. In QTPเลือกสถานที่ที่เหมาะสมที่คุณต้องการเริ่มต้นธุรกรรม
  2. เลือกแทรกเริ่มต้นธุรกรรม เริ่มกล่องโต้ตอบการทำธุรกรรม Box เปิด
  3. ตั้งชื่อธุรกรรมให้เหมาะสม โดยพูดว่า “Booking Time”
  4. มีเพิ่มคำสั่งธุรกรรมเริ่มต้นในการทดสอบ
  5. เลือกสถานะที่คุณต้องการยุติธุรกรรม
  6. คลิกแทรก > สิ้นสุดธุรกรรม
  7. สิ้นสุดกล่องโต้ตอบการทำธุรกรรม Box เปิดด้วยรายการธุรกรรมที่มีอยู่ทั้งหมด
  8. คลิกตกลง มีการเพิ่มใบแจ้งยอดธุรกรรมสิ้นสุด
  9. มาทำการทดสอบกัน
  10. ในผลลัพธ์ ใบแจ้งยอดธุรกรรมสิ้นสุดจะให้เวลาที่ใช้ในการแทรกใบสั่ง

หมายเหตุ กล่องโต้ตอบเดียวกันนี้สามารถเข้าถึงได้จาก การดูคำหลักและขั้นตอน Generator แทรกข้อความเดียวกันโดยไม่ต้องเปิดเมนูแทรก

รายการธุรกรรมในโปรแกรมแก้ไข

กล่องโต้ตอบด้านบนเขียนสองข้อความ วีบีสคริปต์ บรรทัดในการทดสอบ ขอบคุณping การสร้างขั้นตอนเหล่านั้นด้วยตนเองใน Editor จะเร็วกว่าเมื่อคุ้นเคยกับรูปแบบแล้ว และเป็นทางเลือกเดียวเมื่อขั้นตอนต่างๆ ถูกสร้างขึ้นจากโค้ด

Services.StartTransaction "Booking Time"

' the steps that book the flight go here

Services.EndTransaction "Booking Time"

ทั้งสองเมธอดเป็นส่วนหนึ่งของอ็อบเจ็กต์ Services เมธอด start รับอาร์กิวเมนต์หนึ่งตัว ส่วนเมธอด end รับอาร์กิวเมนต์ตัวที่สองได้ (ไม่บังคับ)

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

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

  • รถยนต์ — ผ่านเว้นแต่จะมีข้อผิดพลาดเกิดขึ้นระหว่างสองคำสั่ง นี่คือค่าเริ่มต้น
  • ส่ง — จะจบลงด้วยสถานะผ่านเสมอ
  • ล้มเหลว — จบลงด้วยสถานะล้มเหลวเสมอ
Services.StartTransaction "Booking Time"
Wait 1
Services.EndTransaction "Booking Time", Pass

การอ่านผลลัพธ์การทำธุรกรรม

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

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

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

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

ธุรกรรมแบบซ้อนและแบบกระจาย

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

มีกฎสองข้อที่ช่วยให้การทำรังปลอดภัย

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

ธุรกรรมแบบกระจายศูนย์นั้นก้าวไปไกลกว่านั้นและครอบคลุมการทดสอบสองแบบ: บริการ.เริ่มธุรกรรมแบบกระจาย เปิดใช้งานในการทดสอบครั้งแรกและ บริการ.สิ้นสุดธุรกรรมแบบกระจาย ปิดในขั้นตอนที่สอง โดยจับคู่ด้วยรหัสเฉพาะ แทนที่จะใช้ชื่อ ฟังก์ชันนี้มีไว้สำหรับ Business Process Monitor และ โหลดรันเนอร์ สถานการณ์ที่อ่านเฉพาะข้อมูลที่บันทึกไว้ภายในธุรกรรมและละเว้นทุกอย่างที่อยู่นอกเหนือธุรกรรมนั้น

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

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

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

กำหนดเวลาการดำเนินการที่ไม่เกี่ยวข้องด้วย Mercuryตั้งเวลา แล้วส่งค่าไปยัง Services.AddWastedTime เวลาที่เสียไปจะถูกหักออกจากทุกธุรกรรมที่เปิดอยู่ ดังนั้นระยะเวลาที่รายงานจึงสะท้อนเฉพาะโฟลว์ที่กำลังทดสอบอยู่เท่านั้น

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

ใน LoadRunner Controller แทนที่จะเป็นหน้าต่าง Run Results เฉพาะขั้นตอนที่อยู่ในธุรกรรมเท่านั้นที่จะถูกส่งไป ดังนั้นสิ่งใดก็ตามที่อยู่นอกเหนือคู่เริ่มต้นและสิ้นสุดจะไม่ปรากฏในรายงานประสิทธิภาพ

ใช่แล้ว Services.SetTransaction รับค่าชื่อ ระยะเวลาเป็นวินาที และสถานะ ซึ่งช่วยให้สคริปต์บันทึกค่าที่คำนวณเองแทนที่จะเป็นค่าที่เครื่องมือจับเวลาไว้

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

ใช่. นักบิน GitHub ดำเนินการเติมเต็มคู่ Services.StartTransaction และ Services.EndTransaction จากข้อความแสดงความคิดเห็น แม้ว่าชื่อธุรกรรมและค่าคงที่สถานะยังคงต้องตรวจสอบกับหลักการตั้งชื่อที่ใช้อยู่ก็ตาม

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

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