ทำความเข้าใจเกี่ยวกับ SystemUtil.Run, SetSecure, Set และ Type: QTP/UFT
⚡ สรุปอย่างชาญฉลาด
SystemUtil.Run คือ UFT คำสั่งหนึ่งใช้เปิดไฟล์หรือแอปพลิเคชันเมื่อเริ่มต้นเซสชันการทำงาน ในขณะที่คำสั่ง Set, SetSecure และ Type จะส่งค่าและปุ่มกดเข้าไปในหน้าต่างที่เปิดขึ้น
SystemUtil.Run ใน UFT
การทดสอบ GUI ที่บันทึกไว้ทุกครั้งจำเป็นต้องมีขั้นตอนแรกคือการแสดงแอปพลิเคชันที่กำลังทดสอบบนหน้าจอ OpenText การทดสอบการทำงาน (UFT วัน (เดิมชื่อ ไมโคร โฟกัส) UFT และเดิมทีคือ HP QTPขั้นตอนนั้นคือ ระบบยูทิลิตี้รันมาทำความเข้าใจโค้ดต่อไปนี้กัน
SystemUtil.Run "C:\Program Files\HP\samples\flight\app\flight.exe" Dialog("Login").WinEdit("Agent Name:").Set "Guru" Dialog("Login").WinEdit("Agent Name:").Type micTab Dialog("Login").WinEdit("Password:").SetSecure "4af272a62666d2e" Dialog("Login").WinButton("OK").Click Window("Flight Reservation").Close
- ขั้นตอนแรกคือ คำสั่ง SystemUtil.Run ซึ่งถูกใช้งานโดยค่าเริ่มต้น UFT/QTP เพื่อเปิดแอปพลิเคชัน ในระหว่างการบันทึกโดยใช้ Windows เมนู Start เราไปที่ "การจองเที่ยวบินแอปพลิเคชัน “ ในเวลานั้น ไมโครโฟกัส” UFT ระบุตำแหน่งของไฟล์ปฏิบัติการและแทรกคำสั่ง SystemUtil.Run เพื่อเปิดไฟล์นั้น
- บรรทัดที่ 2 คือ การตั้งชื่อเอเจนต์เป็น Guru ตามที่แสดงในหน้าจอที่ใช้งานอยู่
- บรรทัดที่ 3 กำลังกดปุ่ม Tab บนแป้นพิมพ์เพื่อนำโฟกัสจากฟิลด์ชื่อตัวแทนไปยังฟิลด์รหัสผ่านซึ่งเป็นขั้นตอนนี้ ผู้ใช้งานที่เป็นมนุษย์จำเป็นต้องใช้การกดปุ่ม Tab หรือคลิกเพื่อเลือกวัตถุที่ต้องการบนหน้าจอ ในทางกลับกัน การทดสอบอย่างรวดเร็ว สามารถระบุวัตถุได้โดยตรงโดยใช้คุณสมบัติของวัตถุ และไม่จำเป็นต้องมีการดำเนินการ "หลบหลีก" เหล่านี้เราสามารถลบขั้นตอนนี้ออกได้ เนื่องจาก UFT ผู้ใช้ยังคงสามารถตั้งค่าช่องรหัสผ่านได้โดยไม่ต้องดำเนินการนี้
- บรรทัดที่ 4 กำลังตั้งรหัสผ่านเป็น Mercury. UFT หนึ่งในนั้นคือระบบที่เข้ารหัสรหัสผ่านโดยอัตโนมัติ เข้ามาในขณะที่บันทึก เพื่อหลีกเลี่ยงการละเมิดความปลอดภัย ค่านี้ไม่สามารถถอดรหัสได้ กล่าวคือ ไม่มีทางกู้คืนค่าเดิมโดยใช้ข้อมูลที่เข้ารหัสนี้ คุณสามารถเข้ารหัสรหัสผ่านอย่างชัดเจนโดยใช้เครื่องมือเข้ารหัสรหัสผ่าน เพื่อจุดประสงค์ในการเรียนรู้ เราจะใช้รหัสผ่านในรูปแบบดิบ และการดำเนินการจะเปลี่ยนเป็นตั้งค่า
- บรรทัดที่ 5 กำลังคลิกปุ่มตกลง
- บรรทัดที่ 6 กำลังปิดหน้าต่าง
⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: เส้นทางที่บันทึกไว้ข้างต้นชี้ไปยังสิ่งเก่า C:\Program Files\HP\samples\flight ตำแหน่งที่ HP ใช้ QTPแอปพลิเคชันตัวอย่างสำหรับการจองเที่ยวบินยังคงมาพร้อมกับ UFT อันแรก แต่จะอยู่ในโฟลเดอร์การติดตั้งปัจจุบัน ดังนั้นเส้นทางจริงในสคริปต์ที่บันทึกไว้ในวันนี้จะแตกต่างออกไป
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ไวยากรณ์และอาร์กิวเมนต์ของ SystemUtil.Run
บรรทัดที่บันทึกไว้ข้างต้นใช้เพียงอาร์กิวเมนต์แรกเท่านั้น แต่เมธอดนี้รับได้ถึงห้าอาร์กิวเมนต์ การทราบอาร์กิวเมนต์ทั้งหมดจะทำให้ SystemUtil.Run จากไฟล์บันทึกกลายเป็นขั้นตอนการเรียกใช้งานที่คุณสามารถเขียนด้วยตนเองได้
SystemUtil.Run file, [params], [dir], [op], [mode]
| ข้อโต้แย้ง | ต้อง? | สิ่งที่มันไม่ |
| ไฟล์ | ต้อง | ชื่อไฟล์หรือแอปพลิเคชันที่จะเรียกใช้งาน ไฟล์ที่ไม่สามารถเรียกใช้งานได้จะเปิดขึ้นในแอปพลิเคชันที่เกี่ยวข้อง |
| params | สามารถเลือกหรือไม่เลือกก็ได้ | พารามิเตอร์ที่ส่งไปยังแอปพลิเคชันเมื่อ ไฟล์ เป็นไฟล์ที่สามารถเรียกใช้งานได้ ค่าเริ่มต้นคือสตริงว่าง |
| dir | สามารถเลือกหรือไม่เลือกก็ได้ | ไดเร็กทอรีเริ่มต้นสำหรับแอปพลิเคชันหรือไฟล์ ค่าเริ่มต้นคือสตริงว่าง |
| op | สามารถเลือกหรือไม่เลือกก็ได้ | คำสั่งที่จะดำเนินการ: เปิด แก้ไข สำรวจ ค้นหา หรือพิมพ์ ค่าว่างหมายถึงการเปิด |
| โหมด | สามารถเลือกหรือไม่เลือกก็ได้ | จำนวนเต็มที่ควบคุมวิธีการแสดงผลหน้าต่างเมื่อเปิดขึ้น ค่าเริ่มต้นคือ 1 |
การขอ op ข้อโต้แย้งนี้เป็นข้อโต้แย้งที่ผู้ทดสอบส่วนใหญ่ไม่เคยค้นพบ มันสอดคล้องกับคำกริยาเดียวกัน Windows โปรแกรม Explorer มีตัวเลือกให้เลือกเมื่อคลิกขวา
| ค่า op | ผล |
| เปิด | เปิดไฟล์ โฟลเดอร์ หรือไฟล์ปฏิบัติการที่ระบุชื่อไว้ ไฟล์. |
| แก้ไข | เรียกใช้โปรแกรมแก้ไขและเปิดเอกสารเพื่อแก้ไข การดำเนินการจะล้มเหลวหากไฟล์ไม่ใช่เอกสารที่แก้ไขได้ |
| explore | สำรวจโฟลเดอร์ที่ระบุชื่อไว้ใน ไฟล์. |
| พบ | เริ่มการค้นหาจากเส้นทางโฟลเดอร์ที่ระบุ |
| พิมพ์ | พิมพ์เอกสารที่ระบุชื่อไว้ใน ไฟล์หากไฟล์ไม่สามารถพิมพ์ได้ การดำเนินการจะล้มเหลว |
ใช้เพื่อการ โหมดค่าที่สำคัญในชีวิตประจำวัน ได้แก่ 0 (ซ่อนหน้าต่างและเปิดหน้าต่างอื่น), 1 (เปิดและแสดงผลในขนาดดั้งเดิม), 2 (เปิดแบบย่อ) และ 3 (เปิดแบบเต็มจอ) ค่าที่สูงกว่าจะควบคุมการโฟกัสและพฤติกรรมการคืนค่า และไม่ค่อยจำเป็นในการทดสอบ
ตัวอย่างการใช้งาน SystemUtil.Run: แอปพลิเคชัน, เบราว์เซอร์ และไฟล์
ตัวอย่างด้านล่างแสดงข้อโต้แย้งทีละข้อ เพื่อให้คุณเห็นว่าแต่ละตำแหน่งเพิ่มอะไรบ้าง คัดลอกตัวอย่างเหล่านี้ลงในแอ็กชันใหม่และเรียกใช้ทีละบรรทัด
1) เฉพาะไฟล์ — รูปแบบที่สั้นที่สุดและใช้งานได้จริง ไฟล์ปฏิบัติการที่อยู่ในเส้นทางระบบไม่จำเป็นต้องมีโฟลเดอร์ และเอกสารจะเปิดขึ้นในแอปพลิเคชันใดก็ได้ Windows ได้ลงทะเบียนแล้ว
SystemUtil.Run "notepad.exe" SystemUtil.Run "C:\Data\Orders.txt"
2) ไฟล์พร้อมพารามิเตอร์ — สิ่งใดก็ตามที่แอปพลิเคชันยอมรับได้ในบรรทัดคำสั่ง จะถูกใส่ไว้ตรงนี้ นี่คือวิธีการเปิดเบราว์เซอร์ไปยังที่อยู่เฉพาะ แทนที่จะเป็นหน้าแรก
SystemUtil.Run "notepad.exe", "C:\Data\Orders.txt"
3) การเพิ่มไดเร็กทอรี — มีประโยชน์เมื่อแอปพลิเคชันไม่ยอมเริ่มต้นทำงาน เว้นแต่ว่าโฟลเดอร์ของแอปพลิเคชันนั้นจะอยู่ในไดเร็กทอรีการทำงาน
SystemUtil.Run "flight.exe", "", "C:\Program Files\HP\samples\flight\app\"
4) การเพิ่ม op — ไฟล์เดียวกัน แต่ได้ผลลัพธ์ต่างกันสี่แบบ
SystemUtil.Run "C:\Data\Orders.txt", "", "", "edit" SystemUtil.Run "C:\Data", "", "", "explore" SystemUtil.Run "C:\Data", "", "", "find" SystemUtil.Run "C:\Data\Orders.txt", "", "", "print"
5) โหมดการเพิ่ม — เปิดหน้าต่างให้เต็มหน้าจอ เพื่อไม่ให้ขั้นตอนต่อไปถูกบดบังด้วยปุ่มควบคุมที่ซ่อนอยู่บางส่วน
SystemUtil.Run "notepad.exe", "C:\Data\Orders.txt", "", "open", 3
เนื่องจากหน้าต่างที่เปิดขึ้นมานั้นกลายเป็นวัตถุทดสอบธรรมดา บรรทัดถัดไปจึงสามารถควบคุมมันได้ทันที เอกสารอย่างเป็นทางการได้จับคู่คำสั่ง Run กับ Type และ Close ในลักษณะนี้อย่างชัดเจน
SystemUtil.Run "C:\type.txt", "", "", "" Window("Text:=type.txt - Notepad").Type "happy days" Window("Text:=type.txt - Notepad").Close
โปรดสังเกตคำอธิบาย ข้อความ:= ในรูปแบบโค้ดตัวอย่างนั้น ไม่จำเป็นต้องมีรายการในคลังเก็บข้อมูล แนวคิดเดียวกันนี้ได้อธิบายไว้โดยละเอียดใน การเขียนโปรแกรมเชิงพรรณนาและเส้นทางที่กำหนดไว้ตายตัวเช่นที่กล่าวมาข้างต้น มักจะเก็บรักษาไว้ได้ดีกว่า ตัวแปรสภาพแวดล้อม ดังนั้นสคริปต์เดียวจึงทำงานบนทุกเครื่อง
Set, SetSecure และ Type: ควรใช้วิธีใด
บรรทัดที่ 2 ถึง 4 ของสคริปต์ที่บันทึกไว้ใช้สามวิธีที่แตกต่างกันในช่องแก้ไขประเภทเดียวกัน วิธีเหล่านี้ไม่สามารถใช้แทนกันได้ และการเลือกวิธีที่ผิดเป็นสาเหตุทั่วไปที่ทำให้ขั้นตอนผ่านไปโดยไม่มีการป้อนข้อมูลใดๆ
| วิธี | สิ่งที่มันส่งมา | ใช้เมื่อ |
| ชุด | เขียนค่าข้อความธรรมดาลงในช่องข้อมูลโดยตรง | การป้อนข้อมูลตามปกติ รวมถึงการใส่รหัสผ่านที่คุณยินดีที่จะให้คนอื่นอ่านได้ |
| ตั้งค่าความปลอดภัย | เขียนสตริงที่เข้ารหัสแล้วซึ่ง UFT ถอดรหัสในระหว่างการทำงาน | ช่องป้อนรหัสผ่านใดๆ ก็ตาม ค่าของมันจะไม่ปรากฏในสคริปต์หรือผลลัพธ์เลย |
| ประเภท | ส่งข้อมูลการกดแป้นพิมพ์แบบดิบๆ รวมถึงปุ่มต่างๆ เช่น micTab | พฤติกรรมของแป้นพิมพ์เป็นส่วนหนึ่งของการทดสอบ หรือตัวควบคุมจะตอบสนองเฉพาะต่อการกดปุ่มจริงเท่านั้น |
ตามที่คำอธิบายระบุไว้ การกดปุ่ม Tab ในบรรทัดที่ 3 เกิดขึ้นได้ก็เพราะโปรแกรมบันทึกเสียงจับพฤติกรรมของมนุษย์ได้เท่านั้น UFT เราสามารถระบุช่องรหัสผ่านได้จากคุณสมบัติของมัน ดังนั้นการลบบรรทัดนั้นจึงไม่ทำให้เกิดการเปลี่ยนแปลงใดๆ หากเปลี่ยน SetSecure เป็น Set การเข้าสู่ระบบแบบเดียวกันก็จะยังคงใช้งานได้โดยมีรหัสผ่านที่อ่านได้
Dialog("Login").WinEdit("Password:").Set "mercury"
หากต้องการทำในทางกลับกันและเข้ารหัสค่าภายนอกเซสชันการบันทึก ให้ใช้ ตัวเข้ารหัสรหัสผ่านเครื่องมือ GUI มาพร้อมกับ UFT หนึ่ง และการเข้ารหัสแบบเดียวกันนี้สามารถใช้งานได้จากบรรทัดคำสั่งเช่นกัน CryptonCMD.exe -e ในโฟลเดอร์ bin ของผลิตภัณฑ์ ทั้งสองแบบจะสร้างสตริงที่คุณสามารถใส่ลงในอาร์กิวเมนต์ SetSecure หรือลงใน พารามิเตอร์ตารางข้อมูลผู้ขายระบุอย่างชัดเจนว่าการเข้ารหัสนี้ไม่ใช่มาตรฐานด้านความปลอดภัย: มันแค่ซ่อนค่าบนหน้าจอ ไม่ได้ปกป้องข้อมูลลูกค้าที่แท้จริง
เมื่อเชี่ยวชาญวิธีการทั้งสามนี้แล้ว ภาษาที่เหลือก็จะตามมาอย่างรวดเร็ว — พื้นฐานของ VBScript และกว้างขึ้น UFT ชุดบทเรียนหนึ่งชุด ครอบคลุมถึงลูป เงื่อนไข และฟังก์ชันที่นำกลับมาใช้ใหม่ได้ ในขณะที่ Object Spy และ GetROProperty แสดงให้คุณเห็นว่าคุณสมบัติใดบ้าง UFT อันหนึ่งตรงกันพอดี
