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

การกระทำใน คืออะไร UFT/QTP?
สถานะ in UFT/QTP แบ่งการทดสอบออกเป็น “หน่วยเชิงตรรกะ” หรือ “กระบวนการทางธุรกิจ” แต่ละการกระทำจะรวมขั้นตอนต่างๆ เข้าด้วยกันเพื่อทำงานที่สามารถระบุได้ชัดเจน เช่น การเข้าสู่ระบบ การค้นหาเที่ยวบิน หรือการจองตั๋ว การกระทำเหล่านี้ช่วยสร้างสคริปต์ที่มีความยืดหยุ่นและมีประสิทธิภาพมากขึ้น
เมื่อสร้างสคริปต์ใหม่ สคริปต์จะมีเพียงการกระทำเดียว คุณสามารถเพิ่มการกระทำเพิ่มเติมลงใน Micro Focus ของคุณได้ UFT เขียนสคริปต์ตามข้อกำหนด และแต่ละการกระทำที่เพิ่มเข้ามาจะเก็บตรรกะและข้อมูลเฉพาะของตนเองแยกต่างหากจากส่วนที่เหลือของการทดสอบ
การแบ่งสคริปต์ยาวๆ ออกเป็นขั้นตอนย่อยๆ นั้นคุ้มค่าอย่างยิ่งเมื่อต้องการเปลี่ยนแปลงการทดสอบ ผู้ทดสอบสามารถอัปเดตขั้นตอนใดขั้นตอนหนึ่ง เช่น ลำดับการเข้าสู่ระบบ โดยไม่ต้องแก้ไขตรรกะการค้นหาหรือการชำระเงินที่อยู่ในขั้นตอนอื่นๆ การแยกส่วนนี้ยังทำให้ขั้นตอนต่างๆ กลายเป็นส่วนประกอบที่นำกลับมาใช้ใหม่ได้ ซึ่งสคริปต์อื่นๆ สามารถเรียกใช้ได้แทนที่จะบันทึกขั้นตอนเดิมซ้ำอีกครั้ง
ตัวอย่างเช่น สคริปต์การจองเที่ยวบินทั่วไปจะแบ่งออกเป็นสามส่วนอย่างเป็นระเบียบ ได้แก่ การเข้าสู่ระบบ การค้นหาเที่ยวบิน และการจองตั๋ว แต่ละส่วนมีขั้นตอนและข้อมูลเฉพาะของตนเอง ดังนั้นผู้ทดสอบที่ต้องการเพียงแค่ตรวจสอบการเข้าสู่ระบบจึงไม่จำเป็นต้องบันทึกหรือดูแลขั้นตอนการจองทั้งหมดเลย
ประเภทของการกระทำใน UFT/QTP: ใช้ซ้ำได้ ใช้ซ้ำไม่ได้ และใช้งานภายนอก
UFT/QTP รองรับการกระทำสามประเภท และประเภทที่คุณเลือกจะกำหนดว่าการกระทำนั้นสามารถแชร์ระหว่างสคริปต์ได้หรือไม่ หรือจะยังคงเป็นส่วนตัวเฉพาะการทดสอบที่สร้างขึ้นเท่านั้น
| ประเภทการดำเนินการ | สามารถใช้งานได้ที่ไหน | สามารถแก้ไขได้ในการทดสอบการโทร |
|---|---|---|
| นำมาใช้ใหม่ | การทดสอบแบบเดียวกัน หลายครั้ง หรือการทดสอบอื่นๆ | ใช่ จากการทดสอบที่เป็นเจ้าของ |
| ไม่สามารถใช้ซ้ำได้ | เฉพาะการทดสอบที่สร้างขึ้นเท่านั้น และเพียงครั้งเดียวเท่านั้น | มี (ใบกำกับภาษีเต็มรูปแบบ) |
| ภายนอกใช้ซ้ำได้ | เรียกใช้จากการทดสอบอื่นในฐานะการกระทำที่จัดเก็บไว้ร่วมกัน | ไม่ เป็นแบบอ่านอย่างเดียว สามารถแก้ไขได้เฉพาะสำเนาตารางข้อมูลในเครื่องเท่านั้น |
การกระทำที่นำกลับมาใช้ใหม่ได้จะกลายเป็น การกระทำภายนอก ทันทีที่การทดสอบอื่นเรียกใช้แทนที่จะเป็นการทดสอบที่เป็นเจ้าของ การกระทำภายนอกจะยังคงเป็นแบบอ่านอย่างเดียวในการทดสอบที่เรียกใช้ เนื่องจากอาจมีการใช้การกระทำร่วมกันโดยสคริปต์หลายสิบตัวพร้อมกัน และการอนุญาตให้ผู้เรียกใช้ทุกคนแก้ไขขั้นตอนจะทำให้สคริปต์อื่นๆ เสียหาย คุณยังคงสามารถกำหนดพารามิเตอร์การเรียกใช้และทำงานในเครื่องด้วยสำเนาของตารางข้อมูลได้
โดยทั่วไปแล้ว ควรออกแบบแอ็กชันใหม่ให้ไม่สามารถนำกลับมาใช้ซ้ำได้ตราบใดที่ตรรกะของแอ็กชันนั้นยังคงเฉพาะเจาะจงสำหรับการทดสอบเพียงครั้งเดียว Promoทำให้สามารถนำกลับมาใช้ใหม่ได้ทันทีที่สคริปต์ที่สองต้องการขั้นตอนเดียวกัน และคาดหวังว่ามันจะทำงานเหมือนกับการกระทำภายนอกแบบอ่านอย่างเดียวในทันทีที่สคริปต์ที่สองเรียกใช้งานจริง
วิธีการแบ่ง คัดลอก และเรียกใช้แอ็กชันใน UFT
เมื่อกิจกรรมขยายใหญ่ขึ้น ให้...ping ทุกขั้นตอนที่อยู่ในที่เดียวกันทำให้สคริปต์ตรวจสอบข้อผิดพลาดและนำกลับมาใช้ใหม่ได้ยากขึ้น UFT ช่วยให้คุณสามารถแบ่งการกระทำที่มีอยู่เป็นสองวิธีได้ เมื่อการกระทำนั้นเริ่มซับซ้อนเกินไป
- การแยกแบบอิสระ (ระหว่างพี่น้อง): การกระทำที่เลือกจะแบ่งออกเป็นสองการกระทำแยกกัน ซึ่งจะทำงานต่อเนื่องกัน โดยแต่ละการกระทำจะ...ping ตารางข้อมูลท้องถิ่นของตัวเอง
- การแบ่งแบบซ้อนกัน (ระหว่างผู้ปกครองและลูก): การกระทำที่เลือกจะแบ่งออกเป็นการกระทำหลัก ซึ่งขั้นตอนสุดท้ายของการกระทำหลักจะเรียกการกระทำย่อยที่สอง โดยรักษาความสัมพันธ์เชิงตรรกะระหว่างทั้งสองไว้
เมื่อมีการกระทำเกิดขึ้นแล้ว UFT เสนอสามวิธีในการนำการกระทำเข้าสู่การทดสอบจาก สิ่งที่ใส่เข้าไป เมนู:
- เพิ่มคำกระตุ้นการตัดสินใจใหม่: สร้างแอ็กชันว่างเปล่าใหม่ภายในชุดทดสอบปัจจุบัน
- ใส่ข้อความกระตุ้นการดำเนินการ: คัดลอกแอ็กชันที่มีอยู่ทั้งหมด รวมถึงจุดตรวจสอบ การกำหนดพารามิเตอร์ และแท็บตารางข้อมูล ไปยังการทดสอบที่เรียกใช้ สำเนาที่ได้นั้นเป็นอิสระอย่างสมบูรณ์ ดังนั้นการแก้ไขจะไม่ส่งผลกระทบต่อต้นฉบับ และการแก้ไขจะไม่ส่งผลต่อต้นฉบับ คุณสามารถคัดลอกได้ทั้งแอ็กชันที่นำกลับมาใช้ใหม่ได้และแอ็กชันที่ไม่สามารถนำกลับมาใช้ใหม่ได้
- แทรกคำกระตุ้นการตัดสินใจที่มีอยู่: แทรกการเรียกใช้แบบอ่านอย่างเดียวไปยังแอ็กชันที่นำกลับมาใช้ใหม่ได้ ซึ่งจัดเก็บไว้ในชุดทดสอบอื่น สามารถแก้ไขได้เฉพาะในชุดทดสอบที่สร้างขึ้นเท่านั้น ซึ่งจะช่วยให้ผู้เรียกใช้ทุกคนทำงานสอดคล้องกัน และทำให้การบำรุงรักษาชุดทดสอบขนาดใหญ่ทำได้ง่ายขึ้น
ทุกการโทรจะถูกรวบรวมเป็น RunAction คำแถลงในมุมมองของผู้เชี่ยวชาญ:
' Calls Action2, which is stored in Test2, running it for one iteration RunAction "Action2[Test2]", oneIteration
แอ็กชันจะทำงานตามจำนวนครั้งที่ระบุไว้ในคุณสมบัติการเรียกใช้แอ็กชัน ตัวอย่างเช่น หากตั้งค่าให้ Action2 ทำงานทุกครั้งที่มีการวนซ้ำของตารางข้อมูลใน Test2 แต่แอ็กชัน Action1 ที่เรียกใช้ใน Test1 ทำงานเพียงครั้งเดียว Action2 ก็จะยังคงทำงานเพียงครั้งเดียวเช่นกัน เพราะการเรียกใช้นั้นถูกเรียกใช้เพียงครั้งเดียว
💡 เคล็ดลับ: เมื่อการทดสอบประกอบด้วยการกระทำหลายอย่าง ให้เปิด การทดสอบการไหล ใช้เมนู "มุมมอง" เพื่อลากและจัดเรียงลำดับใหม่ การทำเช่นนี้จะเปลี่ยนลำดับของภาพ UFT ดำเนินการตามคำสั่งโดยไม่ต้องแก้ไขขั้นตอนภายในคำสั่งใดๆ เลย
วิดีโอด้านล่างนี้ต่อยอดจากสคริปต์การเข้าสู่ระบบห้าขั้นตอนที่สร้างไว้ในบทเรียนก่อนหน้านี้ การจองเที่ยวบิน และอธิบายขั้นตอนการสร้าง การแบ่ง และการเรียกใช้แอ็กชันตั้งแต่ต้นจนจบ เป็นวิดีโอที่ยาวที่สุดในชุดนี้ UFT/QTP ชุดบทเรียนดังนั้นการจดบันทึกขณะรับชมจึงเป็นประโยชน์
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
วิธีส่งพารามิเตอร์และจัดเก็บค่าผลลัพธ์ระหว่างการดำเนินการต่างๆ
นอกเหนือจากการเรียกใช้งานคำสั่งแล้ว สคริปต์ส่วนใหญ่ในโลกแห่งความเป็นจริงยังต้องส่งข้อมูลเข้าไปและอ่านผลลัพธ์ออกมาด้วย UFT แต่ละการกระทำจะมีพารามิเตอร์อินพุตและเอาต์พุตของตัวเอง รวมถึงวิธีการต่างๆ ในการบันทึกค่าที่ส่งกลับมา
การส่งพารามิเตอร์เข้าและออกจากแอ็กชัน
เช่นเดียวกับ ฟังก์ชันหรือวิธีการ ในภาษาโปรแกรม การกระทำสามารถกำหนดอินพุตและเอาต์พุตได้ พารามิเตอร์พารามิเตอร์นี้ไม่มีความเกี่ยวข้องกับ ทดสอบการกำหนดพารามิเตอร์ข้อมูล ได้กล่าวไว้ก่อนหน้านี้แล้วว่า พารามิเตอร์ในที่นี้เป็นของแอ็กชันเอง ไม่ใช่ของคอลัมน์ในตารางข้อมูล กำหนดค่าจาก แก้ไข > การกระทำ > คุณสมบัติการกระทำหรือโดยการคลิกขวาที่การกระทำในมุมมองคำหลัก ส่งค่าในการเรียกใช้โดยใช้ไวยากรณ์นี้:
' Passes an input value and captures the action's output into myResult RunAction "Action1", oneIteration, "testuser", myResult
การจัดเก็บค่าเอาต์พุตของแอ็กชัน
ขึ้นอยู่กับความต้องการของส่วนที่เหลือของสคริปต์ คุณสามารถเก็บค่าที่ส่งคืนจากการกระทำไว้ในหนึ่งในสามที่ต่อไปนี้:
- ตัวแปร:
RunAction "Action1", oneIteration, "testuser", myResultบันทึกผลลัพธ์โดยตรงในmyResult. - An ตัวแปรสภาพแวดล้อม: สร้างตัวแปรที่ผู้ใช้กำหนดเองภายใต้ ไฟล์ > การตั้งค่า > สภาพแวดล้อมจากนั้นเขียน
RunAction "Action1", oneIteration, "testuser", Environment("env_var"). - คอลัมน์ในตารางข้อมูล:
RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet)บันทึกผลลัพธ์ลงในชีตส่วนกลางโดยตรง
เอกสารข้อมูลระดับโลกและระดับท้องถิ่น
การดำเนินการนี้จะอ่านและเขียนข้อมูลทดสอบผ่านแผ่นงานสองประเภท เอกสารข้อมูลผลิตภัณฑ์ทั่วโลก เป็นเอกลักษณ์เฉพาะสำหรับการทดสอบทั้งหมด การกระทำใดๆ ก็สามารถอ่านหรือเขียนข้อมูลลงในตัวแปรนี้ได้ และตัวแปรนี้จะถูกตั้งชื่อว่า “Global” เสมอ เอกสารข้อมูลท้องถิ่น แต่ละการกระทำจะมีเอกลักษณ์เฉพาะตัว ตั้งชื่อตามการกระทำนั้น และมีเพียงการกระทำนั้นๆ เท่านั้นที่สามารถอ่านหรือเขียนข้อมูลได้
การออกจากแอ็กชันและการควบคุมการวนซ้ำ
เมื่อจำเป็นต้องหยุดการกระทำบางอย่างก่อนกำหนด แทนที่จะปล่อยให้ดำเนินการจนเสร็จสมบูรณ์ UFT ประกอบด้วยข้อความสี่ข้อ:
ExitAction— หยุดการทำงานปัจจุบันเท่านั้นExitActionIteration— หยุดการทำงานในรอบปัจจุบันและไปยังรอบถัดไปExitRun— หยุดการทดสอบทั้งหมดทันทีExitGlobalIteration— หยุดการทดสอบรอบปัจจุบันทั่วโลกและไปยังรอบถัดไป
ขณะดำเนินการก UFT/QTP ต้นฉบับ เมื่อใช้แอ็กชัน โปรดคำนึงถึงการวนซ้ำทั่วโลกและการวนซ้ำเฉพาะที่ เนื่องจากทั้งสองอย่างมีผลต่อจำนวนครั้งที่แอ็กชันทำงานจริง คุณสามารถเปลี่ยนความถี่ในการวนซ้ำของแอ็กชันที่เรียกใช้ได้โดยการเปิด คุณสมบัติการเรียกใช้งาน > เรียกใช้ กดแท็บและตั้งค่าโหมดการวนซ้ำที่นั่น
⚠ ข้อผิดพลาดที่พบบ่อย: แอ็กชันที่ถูกเรียกซึ่งตั้งค่าให้ทำงานในทุกรอบการวนซ้ำภายใน แต่ถูกเรียกใช้จากแอ็กชันแม่ที่ทำงานเพียงครั้งเดียว จะยังคงทำงานเพียงครั้งเดียวเท่านั้น โปรดตรวจสอบจำนวนรอบการวนซ้ำทั่วโลกของแอ็กชันแม่และคุณสมบัติการเรียกใช้แอ็กชันของแอ็กชันลูกก่อนที่จะสรุปว่าแอ็กชันที่ถูกเรียกจะทำงานซ้ำ
