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

หากคุณมีส่วนของโค้ดที่ต้องใช้ซ้ำหลายครั้งในการทดสอบ คุณอาจต้องการสร้างฟังก์ชันที่ผู้ใช้กำหนดเอง การใช้ฟังก์ชันที่ผู้ใช้กำหนดเองจะทำให้การทดสอบของคุณสั้นลง ออกแบบ อ่าน และบำรุงรักษาได้ง่ายขึ้น
ไลบรารีฟังก์ชันของคุณเองใน Micro Focus UFT สามารถมี วีบีสคริปต์ ฟังก์ชัน รูทีนย่อย โมดูล ฯลฯ
คุณต้องทำตามเพียง 3 ขั้นตอนง่ายๆ เพื่อใช้งานฟังก์ชันจากไลบรารีในการทดสอบของคุณ
ไลบรารีฟังก์ชันแตกต่างจาก การกระทำ in UFTฟังก์ชันนี้ไม่มีคลังเก็บอ็อบเจ็กต์หรือเอกสารข้อมูลเฉพาะของตัวเอง แต่การกระทำหรือการทดสอบใดๆ ก็สามารถเรียกใช้ฟังก์ชันนี้ได้เมื่อเชื่อมโยงกับไลบรารีแล้ว
การคัดลอกและวางขั้นตอนเดียวกันลงในทุกๆ การกระทำจะเพิ่มภาระงานในการบำรุงรักษา เพราะการเปลี่ยนแปลงเพียงครั้งเดียวจะต้องทำซ้ำในทุกๆ สำเนา ไลบรารีฟังก์ชันช่วยแก้ปัญหานี้ได้โดยการรวมตรรกะเหล่านั้นไว้ในที่เดียว ซึ่งการกระทำหรือการทดสอบใดๆ ในโครงการสามารถเรียกใช้ได้
3 ขั้นตอนง่ายๆ ในการใช้ฟังก์ชันจากไลบรารีใน UFT/QTP
ขั้นตอน 1) สร้างไลบรารีฟังก์ชันใหม่ใน UFT or QTP โดยเลือก ไฟล์ > สร้างใหม่ > ไลบรารีฟังก์ชัน มันจะเปิดขึ้นในแท็บใหม่ QTP.
เรามาสร้างฟังก์ชันง่ายๆ ที่แสดงกล่องข้อความกันเถอะ
Function Demo MsgBox "This is a Test Function" End Function
ทุกครั้งที่มีการเรียกใช้ฟังก์ชันนี้ กล่องข้อความจะปรากฏขึ้น ไฟล์เดียวสามารถบรรจุฟังก์ชันได้หลายฟังก์ชัน ดังนั้นให้บันทึกไฟล์เพียงครั้งเดียวและนำกลับมาใช้ซ้ำได้ในการทดสอบหลายครั้ง UFT บันทึกไลบรารีฟังก์ชันด้วย .qfl โดยค่าเริ่มต้นจะเป็นส่วนขยาย แม้ว่าจะเป็นแบบธรรมดาก็ตาม .vbs ไฟล์ก็ใช้งานได้เช่นกัน ดังที่ส่วนถัดไปจะอธิบาย
ขั้นตอน 2) เชื่อมโยงไลบรารีกับการทดสอบของคุณ เปิด ไฟล์ > การตั้งค่า > ทรัพยากร > เชื่อมโยงไลบรารีฟังก์ชัน แล้วคลิก เพิ่มเลือกไฟล์ไลบรารีฟังก์ชัน แล้วคลิก OK.
ขั้นตอน 3) ขั้นตอนสุดท้ายคือการเรียกใช้ฟังก์ชันภายในสคริปต์ทดสอบ เมื่อเชื่อมโยงไลบรารีแล้ว การเรียกใช้ฟังก์ชันก็ง่ายเพียงแค่พิมพ์ping ชื่อของมันและการส่งอาร์กิวเมนต์ที่จำเป็นต่างๆ ดังแสดงด้านล่าง
' Call the function from the associated library
Demo()
UFT ตั้งอยู่ ทดลอง ในไลบรารีที่เกี่ยวข้องและเรียกใช้งานราวกับว่าเขียนขึ้นในเครื่องทดสอบโดยตรง
หมายเหตุที่สำคัญ
- การใช้ COM และ DCOM ช่วยให้คุณสามารถสร้างฟังก์ชันขั้นสูงได้อย่างมาก
- ในความเป็นจริง ฟีเจอร์หลายอย่างที่จัดหาโดย QTP สามารถเขียนโค้ดได้โดยใช้ VBScript
- เราเคยเห็นวิศวกรระบบอัตโนมัติที่สร้างโปรเจ็กต์ VB มากกว่าโปรเจ็กต์ระบบอัตโนมัติ
- คำแนะนำของเราคือการมุ่งเน้นไปที่การทำงานอัตโนมัติ 100% แทนที่จะอวดทักษะ VB ของคุณ
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ประเภทไฟล์ไลบรารีฟังก์ชัน: .qfl เทียบกับ .vbs
UFT ไม่บังคับให้คุณใช้รูปแบบไฟล์เดียวสำหรับไลบรารีฟังก์ชัน โปรแกรมแก้ไขไลบรารีฟังก์ชันจะบันทึกไฟล์ใหม่ด้วยรูปแบบไฟล์ใดรูปแบบหนึ่ง .qfl ส่วนขยายโดยค่าเริ่มต้น และ UFT นอกจากนี้ยังรับข้อความธรรมดาได้ด้วย .vbs ไฟล์ที่สร้างขึ้นในโปรแกรมแก้ไขโค้ดใดๆ ก็ตาม เพราะว่า QTP/UFT ไลบรารีฟังก์ชันนั้นก็คือ VBScript ธรรมดาที่จัดเก็บไว้ในดิสก์นั่นเอง รูปแบบทั้งสองทำงานเหมือนกันทุกประการในระหว่างการทำงาน
| ด้าน | ไฟล์ .QFL | ไฟล์ .VBS |
|---|---|---|
| ที่สร้างด้วย | UFT โปรแกรมแก้ไขไลบรารีฟังก์ชัน | โปรแกรมแก้ไขข้อความหรือโค้ดใดๆ ก็ได้ |
| เปิดออกด้านนอก UFT | ไม่ | ใช่ ในรูปแบบข้อความธรรมดา |
| ความเป็นมิตรต่อระบบควบคุมเวอร์ชัน | ถูก จำกัด | ดีกว่า เพราะความแตกต่างอ่านง่ายกว่า |
| วิธีการเชื่อมโยง | เช่นเดียวกันสำหรับทั้งสอง | เช่นเดียวกันสำหรับทั้งสอง |
การเลือกนั้นส่วนใหญ่ขึ้นอยู่กับขั้นตอนการทำงานของทีมมากกว่าฟังก์ชันการใช้งาน ไลบรารีเฉพาะกิจที่สร้างขึ้นอย่างรวดเร็วภายใน UFT ใช้งานได้ดี .qflในขณะที่ไลบรารีที่ดูแลรักษาใน Git, SVN หรือระบบควบคุมเวอร์ชันอื่นๆ มักจะถูกเก็บไว้ในรูปแบบไฟล์ต้นฉบับ .vbs ไฟล์ข้อความธรรมดาจะทำให้การเปรียบเทียบความแตกต่างระหว่างโค้ดอ่านง่ายกว่ามากในระหว่างการตรวจสอบโค้ด ทั้งสองรูปแบบรองรับคุณสมบัติ VBScript อย่างครบถ้วน รวมถึงคลาส การจัดการข้อผิดพลาด และการสร้างอ็อบเจ็กต์ COM และทั้งสองรูปแบบเชื่อมโยงกับการทดสอบในลักษณะเดียวกันทุกประการ ดังที่ส่วนถัดไปจะอธิบาย
การเปลี่ยนนามสกุลไฟล์ไม่ได้เปลี่ยนแปลงเนื้อหาภายในไฟล์ ดังนั้นการแปลงไฟล์ที่มีอยู่แล้วจึงไม่เปลี่ยนแปลงเนื้อหาภายใน .qfl ไฟล์ไปที่ .vbsหรือในทางกลับกัน ก็คือการเปลี่ยนชื่อไฟล์แล้วเชื่อมโยงไฟล์ที่เปลี่ยนชื่อแล้วเข้ากับการทดสอบอีกครั้ง
วิธีเชื่อมโยงไลบรารีฟังก์ชันกับการทดสอบ
ขั้นตอนที่ 2 ด้านบนใช้กล่องโต้ตอบทรัพยากร แต่ UFT ที่จริงแล้ว มีหลายวิธีในการเชื่อมโยงไลบรารีฟังก์ชันกับชุดทดสอบ และการเลือกวิธีที่เหมาะสมนั้นขึ้นอยู่กับว่าการเชื่อมโยงนั้นควรเป็นแบบถาวรหรือใช้ได้เฉพาะกับการทดสอบครั้งเดียวเท่านั้น ชุดทดสอบหนึ่งสามารถเชื่อมโยงไลบรารีได้มากกว่าหนึ่งไลบรารีในเวลาเดียวกัน และ UFT โหลดไฟล์เหล่านั้นตามลำดับที่ปรากฏในรายการทรัพยากร
- หน้าต่างโต้ตอบไลบรารีฟังก์ชันที่เกี่ยวข้อง (GUI): เปิดไฟล์ > การตั้งค่า > ทรัพยากร > เชื่อมโยงไลบรารีฟังก์ชัน คลิก เพิ่ม และเลือกไฟล์ UFT ระบบจะจัดเก็บการเชื่อมโยงนี้ไว้ภายในตัวทดสอบเอง ดังนั้นไลบรารีจะโหลดโดยอัตโนมัติทุกครั้งที่เปิดการทดสอบ นี่คือวิธีการที่แสดงในขั้นตอนที่ 2 ข้างต้น และใช้งานได้ดีในฐานะตัวเลือกเริ่มต้นสำหรับไลบรารีใด ๆ ที่การทดสอบทุกครั้งในโปรเจ็กต์ต้องการ
- คำสั่ง LoadFunctionLibrary: เรียกใช้เมธอด LoadFunctionLibrary “path” จากภายในสคริปต์เพื่อแนบไลบรารีในระหว่างการทำงานโดยไม่ต้องแก้ไขหน้าต่าง Resources UFT โดยจะจัดการกับไลบรารีเหมือนกับการเชื่อมโยงแบบใช้บทสนทนาตลอดการทำงานที่เหลือ ซึ่งสะดวกเมื่อเส้นทางของไลบรารีถูกกำหนดแบบไดนามิก
- คำสั่ง ExecuteFile: ExecuteFile “path” จะเรียกใช้ไฟล์สคริปต์และเปิดเผยฟังก์ชันต่างๆ ให้กับการทำงานในปัจจุบัน แต่ UFT ไม่ลงทะเบียนไฟล์เป็น tracเนื่องจากเป็นทรัพยากรที่ถูกปิดใช้งาน จึงไม่ปรากฏในส่วน "ไลบรารีฟังก์ชันที่เกี่ยวข้อง" ในการตั้งค่าการทดสอบ
- แบบจำลองวัตถุอัตโนมัติ (AOM): ไฟล์ VBScript ภายนอกสามารถเรียกใช้งานได้ UFTเปิดการทดสอบ และเพิ่มไลบรารีลงใน Test.Settings.Resources.Libraries ด้วยวิธีการเขียนโปรแกรม สคริปต์การสร้างหรือการปรับใช้มักใช้วิธีนี้ในการกำหนดค่าไลบรารีเดียวกันสำหรับการทดสอบหลายสิบรายการในครั้งเดียว
' Load a library at run time from inside a script LoadFunctionLibrary "C:\Automation\CommonFunctions.qfl" ' ExecuteFile works the same way, but UFT does not ' track the file as an associated resource ExecuteFile "C:\Automation\CommonFunctions.qfl"
ไม่ว่าคุณจะเลือกใช้วิธีใดก็ตาม ไลบรารีจะต้องถูกเชื่อมโยงเพียงครั้งเดียวต่อการทดสอบสำหรับวิธีการ GUI และ AOM ในขณะที่ LoadFunctionLibrary และ ExecuteFile จะต้องทำงานอีกครั้งทุกครั้งที่สคริปต์ทำงาน เนื่องจากเป็นคำสั่ง VBScript ทั่วไป ไม่ใช่การตั้งค่าที่บันทึกไว้
เมื่อไม่ต้องการใช้งานไลบรารีใดอีกต่อไปแล้ว ให้ลบออกจากรายการทรัพยากรแทนที่จะปล่อยให้มันเชื่อมโยงอยู่ เนื่องจากไลบรารีที่ไม่ได้ใช้งานอาจบดบังฟังก์ชันที่มีชื่อเดียวกันซึ่งคุณเพิ่มเข้าไปในไลบรารีอื่นในภายหลังได้
แนวปฏิบัติที่ดีที่สุดสำหรับการเขียน UFT/QTP ไลบรารีฟังก์ชัน
ไลบรารีฟังก์ชันจะคุ้มค่าก็ต่อเมื่อทั้งทีมสามารถไว้วางใจและดูแลรักษาได้ แนวทางปฏิบัติเหล่านี้จะช่วยให้ไลบรารีมีความน่าเชื่อถือเมื่อเติบโตขึ้น
- ใช้ Option Explicit: เพิ่มบรรทัดนี้เป็นบรรทัดแรกของทุกไลบรารี ดังนั้น UFT แจ้งเตือนเมื่อพบตัวแปรที่สะกดผิด แทนที่จะสร้างตัวแปรใหม่โดยไม่แจ้งให้ทราบล่วงหน้า
- ควรตั้งชื่อฟังก์ชันให้ไม่ซ้ำกัน: หากไลบรารีที่เกี่ยวข้องสองไลบรารี กำหนดฟังก์ชันที่มีชื่อเดียวกัน UFT ระบบจะเรียกใช้ตัวที่โหลดล่าสุด ดังนั้นชื่อซ้ำกันจะทำให้เกิดการทำงานที่เงียบและยากต่อการตรวจจับtracและแมลง
- ส่งคืนค่าแทนการกำหนดค่าตายตัว: รับพารามิเตอร์และส่งคืนผลลัพธ์ ดังตัวอย่างด้านล่าง เพื่อให้ฟังก์ชันเดียวกันสามารถใช้กับการทดสอบหลายครั้งแทนที่จะเป็นเพียงครั้งเดียว
- หลีกเลี่ยงข้อความBox ในสคริปต์การผลิต: กล่องข้อความจะหยุดการทำงานชั่วคราว จนกว่าจะมีคนคลิกตกลง ใช้งาน Reporter.ReportEvent แต่สถานะผ่าน ไม่ผ่าน และคำเตือน จะถูกบันทึกเข้าไปในโครงสร้างผลลัพธ์โดยตรงโดยไม่ต้องหยุดping การวิ่ง
- จัดกลุ่มตามโดเมน ไม่ใช่ตามความสะดวก: ควรแยกฟังก์ชันการล็อกอิน ฟังก์ชันฐานข้อมูล และฟังก์ชันช่วยการใช้งาน UI ไว้ในไฟล์ที่ต่างกัน เพื่อให้การทดสอบแต่ละครั้งสามารถเชื่อมโยงเฉพาะสิ่งที่จำเป็นจริงๆ เท่านั้น
- ควรควบคุมเวอร์ชันของไลบรารีต่างๆ: จัดเก็บไฟล์ไลบรารีฟังก์ชันไว้ในที่เก็บเดียวกันกับส่วนที่เหลือของโปรเจ็กต์การทำงานอัตโนมัติ เพื่อให้การย้อนกลับของโปรเจ็กต์จะคืนค่าฟังก์ชันที่ใช้ร่วมกันทั้งหมดด้วย
Function AddNumbers(ByVal num1, ByVal num2) AddNumbers = num1 + num2 End Function Dim result result = AddNumbers(10, 20) Reporter.ReportEvent micPass, "Sum Calculation", "The result is " & result
การปลูกฝังนิสัยเหล่านี้ตั้งแต่เนิ่นๆ มีค่าใช้จ่ายน้อย แต่การปรับใช้พฤติกรรมเหล่านี้กับห้องสมุดขนาดใหญ่ที่ไม่มีการจัดการในภายหลังนั้นมีค่าใช้จ่ายสูงกว่ามาก
