สวัสดีทุกคน. เรากำลังค่อยๆ โผล่ออกมาจากเงามืดและดำเนินบทความเกี่ยวกับผลิตภัณฑ์ของเราต่อไป หลังจาก
การติดตั้ง
เริ่มต้นด้วยความซ้ำซากจำเจ แอปพลิเคชั่นนี้พร้อมใช้งานและทดสอบจริงบนสามแพลตฟอร์ม - Linux, Windows, MacOS คุณสามารถดาวน์โหลดตัวติดตั้งสำหรับระบบปฏิบัติการที่คุณสนใจได้
สถานการณ์การทดลอง
เราเลือกสถานการณ์มาตรฐานต่อไปนี้เป็นหัวข้อทดสอบของเรา:
- เข้าสู่ระบบ: ผู้ใช้ - ผู้ดูแลระบบ, รหัสผ่าน - รหัสผ่าน
- เพิ่มรายการใหม่
- มาตรวจสอบว่าเพิ่มบันทึกอย่างถูกต้องแล้ว
เราจะทดสอบต่อไป
การสร้างโครงการและพยายามสร้างเอนทิตีโดยไม่ได้รับอนุญาต
ก่อนอื่น เรามาสร้างโปรเจ็กต์ใหม่กันก่อน (เนื้อไม่มีมัน->โครงการใหม่). หากคุณเปิดแอปพลิเคชันเป็นครั้งแรก โปรเจ็กต์ใหม่จะเปิดขึ้นโดยอัตโนมัติ ขั้นแรกให้ลองส่งคำขอสร้างบันทึกใหม่ (ในกรณีที่การสร้างบันทึกสามารถทำได้โดยไม่ได้รับอนุญาต) เลือกรายการจากเมนูบริบทโหนดโครงการ เพิ่มโหนด -> ขั้นตอนคำขอ. ตั้งชื่อโหนดเป็น สร้างโพสต์. ด้วยเหตุนี้ โหนดใหม่จะถูกสร้างขึ้นในแผนผังและแท็บสำหรับโหนดนี้จะเปิดขึ้น มาตั้งค่าพารามิเตอร์คำขอต่อไปนี้:
- ประเภทคำขอ: POST
- URL:
https://testmace-quick-start.herokuapp.com/posts - เนื้อหาคำขอ: json พร้อมค่า
{"title": "New testmace quick start post"}
หากคุณทำทุกอย่างถูกต้องอินเทอร์เฟซจะมีลักษณะดังนี้:
อย่างไรก็ตาม หากเราพยายามดำเนินการตามคำขอ เซิร์ฟเวอร์จะส่งคืนรหัส 401 และหากไม่ได้รับอนุญาต เราจะไม่ได้รับสิ่งใดบนเซิร์ฟเวอร์นี้ โดยทั่วไปตามที่คาดไว้)
การเพิ่มคำขออนุญาต
ดังที่ได้กล่าวไปแล้ว เรามีจุดสิ้นสุด POST /login
ซึ่งใช้ json เป็นเนื้อหาคำขอของแบบฟอร์ม: {"username": "<username>", "password": "<password>"}
ที่ไหน username
и password
(อีกครั้งจากย่อหน้าเบื้องต้นด้านบน) มีความหมาย admin
и password
ตามลำดับ ในการตอบสนอง จุดสิ้นสุดนี้จะส่งคืน json เหมือนกับ {"token": "<token>"}
. เราจะใช้เพื่อการอนุญาต มาสร้างกันเถอะ ขั้นตอนคำขอ โหนดที่มีชื่อ เข้าสู่ระบบจะทำหน้าที่เป็นบรรพบุรุษ โครงการ โหนด ใช้การลากและวาง ย้ายโหนดที่กำหนดในแผนผังให้สูงกว่าโหนด สร้างโพสต์. มาตั้งค่าพารามิเตอร์ต่อไปนี้เป็นคำขอที่สร้างขึ้นใหม่:
- ประเภทคำขอ: POST
- URL:
https://testmace-quick-start.herokuapp.com/login - เนื้อหาคำขอ: json พร้อมค่า
{"username": "admin", "password": "password"}
มาดำเนินการตามคำขอและรับรหัสที่สองในร้อยพร้อมโทเค็นในการตอบกลับ บางสิ่งเช่นนี้:
การปรับโครงสร้างใหม่: การลบโดเมนที่ซ้ำกัน
จนถึงขณะนี้คำขอไม่ได้เชื่อมโยงกับสคริปต์เดียว แต่นี่ไม่ใช่ข้อเสียเปรียบเพียงอย่างเดียว หากคุณมองอย่างใกล้ชิด คุณจะสังเกตเห็นว่าอย่างน้อยโดเมนก็ซ้ำกันในคำขอทั้งสอง ไม่ดี. ถึงเวลาที่ต้องปรับโครงสร้างส่วนนี้ของสคริปต์ในอนาคตใหม่ แล้วตัวแปรจะช่วยเราในเรื่องนี้
ในการประมาณครั้งแรก ตัวแปรจะมีบทบาทเช่นเดียวกับในเครื่องมือและภาษาการเขียนโปรแกรมอื่นที่คล้ายคลึงกัน - กำจัดความซ้ำซ้อน เพิ่มความสามารถในการอ่าน ฯลฯ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับตัวแปรได้ใน
มากำหนดตัวแปรในระดับโหนดโครงการกัน domain
ด้วยความหมาย https://testmace-quick-start.herokuapp.com
. สำหรับสิ่งนี้มีความจำเป็น
- เปิดแท็บด้วยโหนดนี้แล้วคลิกไอคอนเครื่องคิดเลขที่มุมขวาบน
- คลิกที่ + เพิ่มตัวแปร
- ป้อนชื่อตัวแปรและค่า
ในกรณีของเรา กล่องโต้ตอบที่มีตัวแปรที่เพิ่มเข้ามาจะมีลักษณะดังนี้:
ตกลง. ตอนนี้ เนื่องจากการสืบทอด เราสามารถใช้ตัวแปรนี้ในลูกหลานของระดับการซ้อนใดๆ ได้ ในกรณีของเรานี่คือโหนด เข้าสู่ระบบ и สร้างโพสต์. หากต้องการใช้ตัวแปรในช่องข้อความ คุณต้องเขียน ${<variable_name>}
. ตัวอย่างเช่น URL สำหรับเข้าสู่ระบบจะถูกแปลงเป็น ${domain}/login
ตามลำดับสำหรับ สร้างโพสต์ url ของโหนดจะมีลักษณะดังนี้ ${domain}/posts
.
ดังนั้น ตามหลักการ DRY เราได้ปรับปรุงสถานการณ์เล็กน้อย
บันทึกโทเค็นลงในตัวแปร
เนื่องจากเรากำลังพูดถึงตัวแปร เรามาขยายหัวข้อนี้กันสักหน่อย ในขณะนี้ ในกรณีที่เข้าสู่ระบบสำเร็จ เราได้รับโทเค็นการอนุญาตจากเซิร์ฟเวอร์ ซึ่งเราจะต้องใช้ในการร้องขอครั้งต่อไป มาบันทึกโทเค็นนี้เป็นตัวแปรกัน เพราะ ค่าของตัวแปรจะถูกกำหนดระหว่างการทำงานของสคริปต์ เราใช้กลไกพิเศษสำหรับสิ่งนี้ -
ก่อนอื่น เรามาทำการร้องขอการเข้าสู่ระบบกันก่อน ในแท็บ แยกวิเคราะห์ ตอบเลื่อนเคอร์เซอร์ไปเหนือโทเค็นและในเมนูบริบท (ซึ่งเรียกว่าด้วยปุ่มเมาส์ขวาหรือคลิกที่ปุ่ม ... ) เลือกรายการ กำหนดให้กับตัวแปร. กล่องโต้ตอบจะปรากฏขึ้นพร้อมกับฟิลด์ต่อไปนี้:
- เส้นทาง — ส่วนใดของคำตอบที่ได้รับ (ในกรณีของเราคือ
body.token
) - ค่าปัจจุบัน — ค่าใดที่อยู่ตามเส้นทาง (ในกรณีของเรานี่คือค่าโทเค็น)
- ชื่อตัวแปร — ชื่อของตัวแปรที่ ค่าปัจจุบัน จะถูกเก็บรักษาไว้ ในกรณีของเรามันจะเป็น
token
- โหนด — ตัวแปรจะถูกสร้างขึ้นในบรรพบุรุษคนใด ชื่อตัวแปร. มาเลือกโครงการกัน
กล่องโต้ตอบที่เสร็จสมบูรณ์มีลักษณะดังนี้:
ตอนนี้ทุกครั้งที่โหนดถูกดำเนินการ เข้าสู่ระบบ ตัวแปรไดนามิก token
จะได้รับการอัปเดตด้วยค่าใหม่จากการตอบกลับ และตัวแปรนี้จะถูกเก็บไว้ใน โครงการ โหนด และด้วยการสืบทอด จะพร้อมใช้งานสำหรับผู้สืบทอด
ในการเข้าถึงตัวแปรไดนามิก คุณต้องใช้ $dynamicVar
. ตัวอย่างเช่น หากต้องการเข้าถึงโทเค็นที่เก็บไว้ คุณต้องโทร ${$dynamicVar.token}
.
เราส่งโทเค็นการอนุญาตไปยังคำขอ
ในขั้นตอนก่อนหน้านี้ เราได้รับโทเค็นการอนุญาต และสิ่งที่เราต้องทำคือเพิ่มส่วนหัว Authorization
ด้วยความหมาย Bearer <tokenValue>
ในการร้องขอทั้งหมดที่ต้องได้รับอนุญาตรวมทั้ง สร้างโพสต์. มีหลายวิธีในการทำเช่นนี้:
- คัดลอกโทเค็นด้วยตนเองและเพิ่มส่วนหัวการให้สิทธิ์ให้กับคำขอที่สนใจ วิธีการนี้ใช้งานได้ แต่การใช้งานนั้นจำกัดเฉพาะคำขอประเภท "ทำแล้วโยนทิ้ง" เท่านั้น ไม่เหมาะสำหรับการเรียกใช้สคริปต์ซ้ำๆ
- ใช้ฟังก์ชันการทำงาน
การอนุญาต . - ที่จะใช้
ส่วนหัวเริ่มต้น
การใช้วิธีที่สองดูเหมือนจะชัดเจน แต่ในบริบทของบทความนี้ วิธีการนี้ไม่... ไม่น่าสนใจ จริงๆ แล้ว: กลไกการอนุญาตบวกลบนั้นคุ้นเคยกับคุณจากเครื่องมืออื่น ๆ (แม้ว่าเราจะมีสิ่งที่คล้ายกันก็ตาม
อีกสิ่งหนึ่งคือส่วนหัวเริ่มต้น! โดยสรุป ส่วนหัวเริ่มต้นคือส่วนหัว HTTP ที่สืบทอดมาซึ่งจะถูกเพิ่มลงในคำขอตามค่าเริ่มต้น เว้นแต่จะปิดใช้งานอย่างชัดเจน การใช้ฟังก์ชันนี้ทำให้คุณสามารถใช้การอนุญาตที่กำหนดเองหรือกำจัดความซ้ำซ้อนในสคริปต์ได้ ลองใช้คุณสมบัตินี้เพื่อส่งโทเค็นในส่วนหัว
ก่อนหน้านี้ เราได้บันทึกโทเค็นลงในตัวแปรไดนามิกอย่างรอบคอบ $dynamicVar.token
ที่ระดับโหนดโครงการ สิ่งที่เหลืออยู่คือทำสิ่งต่อไปนี้:
- กำหนดชื่อเริ่มต้น
Authorization
ด้วยความหมายBearer ${$dynamicVar.token}
ที่ระดับโหนดโครงการ ในการดำเนินการนี้ในอินเทอร์เฟซโครงการของโหนด คุณต้องเปิดกล่องโต้ตอบพร้อมส่วนหัวเริ่มต้น (ปุ่ม ส่วนหัว ที่มุมขวาบน) และเพิ่มชื่อที่เกี่ยวข้อง กล่องโต้ตอบที่มีค่าที่กรอกจะมีลักษณะดังนี้:
- ปิดการใช้งานส่วนหัวนี้จากคำขอเข้าสู่ระบบ สิ่งนี้เป็นสิ่งที่เข้าใจได้: ในขณะที่เข้าสู่ระบบ เรายังไม่มีโทเค็น และเราจะติดตั้งพร้อมกับคำขอนี้ ดังนั้นในอินเทอร์เฟซการเข้าสู่ระบบของคำขอในแท็บ ส่วนหัว вобласти รับการถ่ายทอด ยกเลิกการเลือกส่วนหัวการอนุญาต
นั่นคือทั้งหมดที่ ตอนนี้ส่วนหัวการอนุญาตจะถูกเพิ่มให้กับคำขอทั้งหมดที่เป็นลูกของโหนดโครงการ ยกเว้นโหนดการเข้าสู่ระบบ ปรากฎว่าในขั้นตอนนี้ เรามีสคริปต์พร้อมแล้ว และสิ่งที่เราต้องทำคือเปิดใช้งานมัน คุณสามารถรันสคริปต์ได้โดยเลือก วิ่ง ในเมนูบริบทของโหนดโครงการ
ตรวจสอบความถูกต้องของการสร้างโพสต์
ในขั้นตอนนี้ สคริปต์ของเราสามารถเข้าสู่ระบบและสร้างโพสต์โดยใช้โทเค็นการอนุญาต อย่างไรก็ตาม เราจำเป็นต้องตรวจสอบให้แน่ใจว่าโพสต์ที่สร้างขึ้นใหม่มีชื่อที่ถูกต้อง โดยพื้นฐานแล้วสิ่งที่เหลืออยู่คือทำสิ่งต่อไปนี้:
- ส่งคำขอเพื่อรับโพสต์โดย id
- ตรวจสอบว่าชื่อที่ได้รับจากเซิร์ฟเวอร์ตรงกับชื่อที่ส่งเมื่อสร้างโพสต์
มาดูขั้นตอนแรกกัน เนื่องจากค่า ID ถูกกำหนดระหว่างการเรียกใช้สคริปต์ คุณจึงต้องสร้างตัวแปรไดนามิก (ลองเรียกมันว่า postId
) จากโหนด สร้างโพสต์ ที่ระดับโหนดโครงการ เรารู้วิธีการทำเช่นนี้แล้ว เพียงอ้างอิงถึงส่วนนี้ บันทึกโทเค็นลงในตัวแปร. สิ่งที่เหลืออยู่คือการสร้างคำขอเพื่อรับโพสต์โดยใช้รหัสนี้ เมื่อต้องการทำเช่นนี้ เรามาสร้าง RequestStep กัน รับโพสต์ ด้วยพารามิเตอร์ต่อไปนี้:
- ประเภทคำขอ: GET
- URL: ${domain}/posts/${$dynamicVar.postId}
เพื่อดำเนินการขั้นตอนที่ 2 เราจำเป็นต้องทำความคุ้นเคย Compare
การยืนยันกับผู้ปฏิบัติงาน equal
. มีหลายวิธีในการสร้างการยืนยัน:
- ยาว. สร้างโหนดการยืนยันด้วยตนเองจากเมนูบริบทของโหนด RequestStep ในโหนดการยืนยันที่สร้างขึ้น ให้เพิ่มการยืนยันความสนใจและกรอกข้อมูลในฟิลด์
- เร็ว. สร้างโหนดการยืนยันพร้อมกับการยืนยันจากการตอบสนองของโหนด RequestStep โดยใช้เมนูบริบท
ลองใช้วิธีที่สอง กรณีของเราก็จะหน้าตาประมาณนี้
สำหรับผู้ที่ไม่เข้าใจ นี่คือสิ่งที่เกิดขึ้น:
- ทำการร้องขอในโหนด รับโพสต์
- ในแท็บ แยกวิเคราะห์ รับสายเรียกเมนูบริบทแล้วเลือก สร้างการยืนยัน -> เปรียบเทียบ -> เท่ากัน
ยินดีด้วย เราได้สร้างการทดสอบครั้งแรกของเราแล้ว! ง่ายใช่มั้ย? ตอนนี้คุณสามารถรันสคริปต์ได้อย่างสมบูรณ์และเพลิดเพลินกับผลลัพธ์ สิ่งที่เหลืออยู่คือการปรับโครงสร้างใหม่เล็กน้อยแล้วนำออก title
ให้เป็นตัวแปรที่แยกจากกัน แต่เราจะทิ้งสิ่งนี้ไว้ให้คุณเป็นการบ้าน)
ข้อสรุป
ในคู่มือนี้ เราได้สร้างสถานการณ์สมมติฉบับเต็มและในขณะเดียวกันก็ตรวจสอบคุณลักษณะบางอย่างของผลิตภัณฑ์ของเราด้วย แน่นอนว่าเราไม่ได้ใช้ฟังก์ชันทั้งหมด และในบทความต่อไปนี้ เราจะให้ภาพรวมโดยละเอียดเกี่ยวกับความสามารถของ TestMace คอยติดตาม!
ป.ล. สำหรับผู้ที่ขี้เกียจเกินกว่าจะทำซ้ำทุกขั้นตอน เราได้บันทึกไว้แล้ว
ที่มา: will.com