ผู้รายงาน.รายงานเหตุการณ์ใน UFT/QTP พร้อมตัวอย่าง

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

ผู้รายงาน.รายงานเหตุการณ์ใน UFT/QTP ส่งข้อความแสดงผลการทำงาน (ผ่าน ไม่ผ่าน คำเตือน และข้อมูล) ที่กำหนดเองไปยังโปรแกรมดูผลการทำงาน (Run Results Viewer) โดยตรง โดยใช้ค่าคงที่สถานะ micPass, micFail, micDone และ micWarning ทำให้ผู้ทดสอบได้รับบันทึกทีละขั้นตอนที่อ่านง่ายเกี่ยวกับสิ่งที่สคริปต์อัตโนมัติทำจริง ๆ

  • 🎯 ความหมาย: Reporter.ReportEvent จะเขียนสถานะและข้อความที่กำหนดเองลงในรายงาน UFT โครงสร้างผลลัพธ์แบบต้นไม้ โดยไม่ขึ้นอยู่กับจุดตรวจสอบภายในระบบ
  • 🧩 ไวยากรณ์: เมธอดนี้รับค่า EventStatus, ReportStepName, Details และ ImageFilePath (ซึ่งเป็นตัวเลือกเสริม) ตามลำดับ
  • 🚦 ค่าคงที่สถานะ: micPass, micFail, micDone และ micWarning แต่ละตัวเลือกจะกำหนดสีของขั้นตอนและว่าสถานะการทำงานจะเปลี่ยนแปลงหรือไม่
  • 🖼️ จอ: ส่งพาธของภาพบิตแมปที่บันทึกไว้เป็นอาร์กิวเมนต์ที่สี่เพื่อแนบรูปภาพไปยังขั้นตอนที่ล้มเหลว
  • ⚙️ คุณสมบัติ: Reporter.Filter, Reporter.ReportPath และ Reporter.RunStatus ช่วยเพิ่มการควบคุมว่าอะไรจะถูกบันทึกและผลลัพธ์จะถูกบันทึกที่ใด
  • 🧪 ตัวอย่าง: ห่อ ReportEvent ไว้ภายในเงื่อนไข If…Then เพื่อให้แต่ละขั้นตอนรายงานผลว่าผ่านหรือไม่ผ่านจากผลลัพธ์ที่แท้จริง
  • ???? กรอง: ตั้งค่า Reporter.Filter เป็น rfEnableErrorsAndWarnings ระหว่างการรัน CI เพื่อป้องกันไม่ให้ขั้นตอนที่ผ่านแล้วไปบดบังความล้มเหลวที่แท้จริง
  • 📊 รายงานที่กำหนดเอง: ผสานไฟล์ results.xml เข้ากับ XSL หรือไลบรารี VBScript เพื่อแสดงผลลัพธ์ในรูปแบบที่ผู้มีส่วนได้ส่วนเสียคาดหวัง

Reporter.ReportEvent คืออะไรใน UFT/QTP?

Reporter.ReportEvent เป็นวิธีการมาตรฐานที่สร้างขึ้นในระบบ UFT/QTP (ปัจจุบันจำหน่ายในชื่อ) OpenText/ไมโครโฟกัส UFT หนึ่ง) ที่เขียนข้อความที่กำหนดเองและอ่านง่ายลงในหน้าต่างผลการทดสอบโดยตรง ต่างจากผลลัพธ์อัตโนมัติที่แสดงว่าผ่านหรือไม่ผ่านซึ่งเกิดจากจุดตรวจสอบในตัว การเรียกใช้ ReportEvent ช่วยให้ผู้ทดสอบสามารถตัดสินใจได้อย่างแม่นยำว่าจะบันทึกอะไร เมื่อใด และควรติดป้ายกำกับอย่างไร

แจกันดอกไม้โรแมนติกนี้ HP QTP เกี่ยวกับการสอน สาธิตการใช้งานฟังก์ชัน Reporter.ReportEvent และ การจัดรูปแบบผลลัพธ์บทช่วยสอนนี้ขอให้คุณสร้างสคริปต์สั้นๆ และการทำแบบฝึกหัดการเขียนสคริปต์นี้ให้สำเร็จเป็นวิธีที่เร็วที่สุดในการดูการอัปเดตรายงานแบบกำหนดเองที่แสดงผลลัพธ์ในโครงสร้างต้นไม้แบบเรียลไทม์

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

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

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

Guruของฮิต UFT/QTP ซีรีส์นี้กล่าวถึงวิธีการนี้ทันทีหลังจากนั้น คำสั่ง If, Else และ Existsเนื่องจากคำสั่ง Reporter.ReportEvent ส่วนใหญ่จะอยู่ภายในบล็อกเงื่อนไขที่ตัดสินใจว่าผลลัพธ์ควรรายงานเป็น micPass หรือ micFail

ไวยากรณ์ Reporter.ReportEvent และค่า EventStatus

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

Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]

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

มูลค่า คงที่ ผลกระทบต่อผลลัพธ์ ผลกระทบต่อสถานะการทำงาน
0 ไมค์พาส ขั้นตอนดังกล่าวแสดงเป็น "ผ่าน" ในแผนผังผลลัพธ์ ไม่มีการเปลี่ยนแปลง การทดสอบยังคงผ่านตามปกติ
1 ไมค์ล้มเหลว ขั้นตอนดังกล่าวแสดงเป็น "ล้มเหลว" ในแผนผังผลลัพธ์ สถานะการทำงานโดยรวมเปลี่ยนเป็น ล้มเหลว
2 ไมค์เสร็จแล้ว ขั้นตอนจะแสดงเป็นข้อความให้ข้อมูล สถานะผ่าน/ไม่ผ่าน ไม่มีการเปลี่ยนแปลง
3 micWarning ขั้นตอนดังกล่าวแสดงเป็นคำเตือน สถานะผ่าน/ไม่ผ่าน ไม่มีการเปลี่ยนแปลง

แต่ละค่าคงที่สามารถส่งผ่านเป็นค่าตัวเลขแทนชื่อได้เช่นกัน ดังนั้น Reporter.ReportEvent 1, “Step”, “Detail” มีพฤติกรรมเหมือนกับทุกประการ Reporter.ReportEvent micFail, “Step”, “Detail”การใช้ค่าคงที่ที่มีชื่อจะทำให้สคริปต์อ่านง่ายขึ้น ซึ่งผู้ทดสอบคนอื่นจะดูแลรักษาในภายหลัง

โดยทั่วไป สคริปต์จะมีการเรียกใช้ ReportEvent หลายครั้งภายในแอ็กชันเดียว เช่น รายการ micDone ก่อนที่แอ็กชันจะเริ่มต้น รายการ micPass หรือ micFail สำหรับการตรวจสอบคีย์ และรายการ micWarning เพิ่มเติมสำหรับสิ่งผิดปกติใดๆ ที่ตรวจพบระหว่างทาง

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

วิธีใช้งาน Reporter.ReportEvent: ตัวอย่างการใช้งานจริง

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

If Browser("Guru99 Demo").Page("Guru99 Demo").WebButton("Login").Exist(5) Then
    Reporter.ReportEvent micPass, "Login button check", "Login button was found on the page"
Else
    Reporter.ReportEvent micFail, "Login button check", "Login button was not found on the page"
End If

ซึ่งสะท้อนรูปแบบที่แสดงไว้ใน Guruของฮิต คำสั่งเงื่อนไข VBScript ในบทเรียนนี้ บล็อก If…Then…Else จะเลือกผลลัพธ์ระหว่างสองอย่าง โดยความแตกต่างเพียงอย่างเดียวคือ แต่ละสาขาจะเรียก Reporter.ReportEvent เพื่อบันทึกผลลัพธ์ด้วย

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

Reporter.ReportEvent micDone, "Enter search text", "Typed 'UFT tutorial' into the search box"
errorImage = "C:\Results\SearchDelay.png"
Browser("Guru99 Demo").CaptureBitmap errorImage, True
Reporter.ReportEvent micWarning, "Search response time", "Results took longer than 5 seconds to load", errorImage

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

ทีมที่เรียกใช้ ReportEvent จากสคริปต์หลายๆ ตัว มักจะย้ายตรรกะนี้ไปไว้ในฟังก์ชัน VBScript ที่ใช้ร่วมกัน เช่น LogStep(status, name, details) เพื่อให้ทุกสคริปต์สร้างโครงสร้างผลลัพธ์ที่สอดคล้องกันโดยไม่ต้องทำซ้ำบล็อก If…Then เดิมๆ

คุณสมบัติของอ็อบเจ็กต์ Reporter: Filter, ReportPath และ RunStatus

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

อสังหาริมทรัพย์ วัตถุประสงค์ การใช้งานทั่วไป
ตัวกรอง ควบคุมประเภทเหตุการณ์ที่จะถูกเขียนลงในผลลัพธ์ Reporter.Filter = rfEnableErrorsAndWarnings จะซ่อนขั้นตอนที่ผ่านไปแล้วในการทำงานระยะยาว
รายงานเส้นทาง อ่านอย่างเดียว; ส่งคืนโฟลเดอร์ที่เก็บผลลัพธ์ของการทำงานปัจจุบัน โฟลเดอร์ผลลัพธ์ = เส้นทางรายงานของผู้รายงาน
สถานะการทำงาน อ่านอย่างเดียว; ส่งคืนสถานะผ่าน/ไม่ผ่านปัจจุบันของการทดสอบจนถึงปัจจุบัน หาก Reporter.RunStatus = micFail ให้ดำเนินการ Exit

Reporter.Filter รับค่าได้สี่ค่า: 0 หรือ rfEnableAll แสดงทุกเหตุการณ์และเป็นค่าเริ่มต้น; 1 หรือ rfEnableErrorsAndWarnings ซ่อนขั้นตอนที่ผ่าน; 2 หรือ rfEnableErrorsOnly ซ่อนทั้งขั้นตอนที่ผ่านและคำเตือน; และ 3 หรือ rfDisableAll ปิดการบันทึกผลลัพธ์ทั้งหมด การตรวจสอบ Reporter.RunStatus ระหว่างสคริปต์จะทำให้การทดสอบแยกสาขาตามตรรกะของตัวเองได้ เช่น ข้ามไปping ขั้นตอนที่เหลือในการดำเนินการหลังจากขั้นตอนก่อนหน้านี้ล้มเหลวแล้ว

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

แนวทางปฏิบัติที่ดีที่สุดสำหรับ Reporter.ReportEvent ใน UFT

นิสัยบางอย่างจะช่วยให้การรายงานแบบกำหนดเองมีประโยชน์ แทนที่จะสร้างความวุ่นวาย

  • ควรใช้ micFail เฉพาะในกรณีที่เกิดความผิดพลาดจริงเท่านั้น: ทุกครั้งที่มีการโทรผิดพลาด (micFail) ค่า Reporter.RunStatus จะเปลี่ยนไปเรื่อยๆ ดังนั้นการใช้ค่านี้เพื่อแก้ไขปัญหาด้านความสวยงามจะซ่อนข้อบกพร่องที่แท้จริงซึ่งอาจเกิดขึ้นในภายหลังระหว่างการทำงานเดียวกัน
  • เขียน ReportStepName ให้เหมือนกับผลลัพธ์ที่คาดหวัง: ผู้ตรวจสอบควรเข้าใจการตรวจสอบได้จากชื่อขั้นตอนเพียงอย่างเดียว โดยไม่ต้องอ่านคอลัมน์รายละเอียด
  • บันทึกภาพหน้าจอเฉพาะเมื่อเกิดข้อผิดพลาดเท่านั้น: การส่งค่า ImageFilePath ในทุกขั้นตอนจะทำให้โฟลเดอร์ผลลัพธ์เต็มเร็วและทำให้การทำงานช้าลงโดยไม่ได้รับประโยชน์มากนัก
  • กรองข้อมูลที่มีสัญญาณรบกวน: ตั้งค่า Reporter.Filter เป็น rfEnableErrorsAndWarnings สำหรับการรันตามกำหนดเวลาหรือการรัน CI เพื่อไม่ให้ขั้นตอนที่ผ่านแล้วบดบังความล้มเหลวที่สำคัญ
  • รวมศูนย์ตรรกะ: Wrap Reporter.ReportEvent เรียกใช้ภายในฟังก์ชันที่สามารถนำกลับมาใช้ใหม่ได้ การกระทำ หรือใช้ไลบรารีฟังก์ชันเพื่อให้สคริปต์ทุกตัวในชุดบันทึกผลลัพธ์ในลักษณะเดียวกัน
  • ส่งออกสำหรับผู้อ่านที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิค: ผสานไฟล์ results.xml กับ XSL ที่กำหนดเองเมื่อผู้มีส่วนได้ส่วนเสียภายนอกทีม QA จำเป็นต้องตรวจสอบผลลัพธ์โดยไม่ต้องเปิดไฟล์อื่น UFT.

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

ReportEvent จะเขียนข้อความธรรมดาลงในโครงสร้างผลลัพธ์ (Results tree) ReportHTMLEvent มีให้ใช้งานตั้งแต่ปี 2008 UFT เวอร์ชัน 12.52 รองรับ HTML ในชื่อขั้นตอนและรายละเอียด ทำให้คุณสามารถทำตัวหนา ใส่สี หรือจัดรูปแบบข้อความในโปรแกรมดูผลลัพธ์การทำงานได้

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

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

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

เครื่องมือตรวจสอบการทำงานที่ขับเคลื่อนด้วย AI สามารถสรุปการทำงานและเน้นความผิดปกติโดยอัตโนมัติ แต่ Reporter.ReportEvent ยังคงให้ชื่อขั้นตอนและสถานะที่ควบคุมโดยนักพัฒนาอย่างแม่นยำ ซึ่งเป็นข้อมูลที่ป้อนให้กับเครื่องมือเหล่านั้น ทีมส่วนใหญ่ใช้ทั้งสองอย่างร่วมกันมากกว่าที่จะแทนที่อย่างใดอย่างหนึ่ง

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