
เวอร์ชันที่ไม่น่าเชื่อถือของการทดสอบอีเมลสั้นมาก: สร้างที่อยู่, พัก 5 วินาที, อ่านข้อความแรก, แล้วหวังว่าข้อความนั้นเป็นของการรันนี้
เวอร์ชันที่เชื่อถือได้ยังคงง่าย แต่ถือว่าการส่งเมลเป็นแบบอะซิงโครนัส มันสร้างที่อยู่ที่ไม่ซ้ำกัน, บันทึกเวลาเริ่มต้น, โพลภายในกำหนดเวลา, จับคู่ข้อความที่ต้องการ, ตรวจสอบการกระทำของผลิตภัณฑ์, และรายงานบริบทที่เพียงพอเมื่อมีบางอย่างล้มเหลว
อย่าใส่คีย์ API ลงใน URL
ส่งคีย์ GPTMail ในส่วนหัว X-API-Key อย่าใส่ลงในพารามิเตอร์ query ?api_key= URL มักถูกบันทึกในประวัติการท่องเว็บ, บันทึกการเข้าถึง, ระบบมอนิเตอร์, และข้อมูล referrer
X-API-Key: YOUR_API_KEYเก็บคีย์ไว้ในตัวจัดการความลับของ CI ของคุณและปิดบังในบันทึก คีย์สาธารณะประจำวันสะดวกสำหรับการสำรวจ; ชุดอัตโนมัติที่ควบคุมควรใช้คีย์ที่คุณสามารถติดตามโควต้าและการใช้งานได้
เอนด์พอยต์และตัวอย่างการตอบกลับปัจจุบันถูกดูแลที่ หน้าคำอธิบาย API ของ GPTMail
หนึ่งที่อยู่ต่อการทดสอบ
สร้างที่อยู่ใหม่สำหรับการทดสอบที่สามารถทำงานแยกกันได้ อย่าพึ่งพาความถูกต้องจากกล่องจดหมายที่ใช้ร่วมกันทั่วทั้งชุดทดสอบ
บันทึกที่อยู่, ID ของสถานการณ์, สภาพแวดล้อม, และเวลาเริ่มต้นของการทดสอบ ค่าต่าง ๆ นี้ช่วยให้คุณปฏิเสธข้อความเก่าและวินิจฉัยการชนกันโดยไม่ต้องบันทึกรหัสลับของข้อความ
โพลตามกำหนดเวลา, ไม่ใช่การหยุดค้างที่คงที่
เวลาในการส่งเมลแตกต่างกัน การหยุดค้าง 5 วินาทีคงที่จะเสียเวลาเมื่อส่งเร็วและทำให้ล้มเหลวเมื่อส่งช้า
ใช้ลูปที่จำกัด:
deadline = now + 90 seconds
delay = 2 seconds
while now < deadline:
messages = list inbox
candidate = newest message matching sender, subject, and start time
if candidate exists:
read candidate and continue the product test
wait delay with a small random jitter
delay = min(delay * 1.5, 10 seconds)กำหนดเวลานี้เป็นสัญญาของการทดสอบ กระบวนการรีเซ็ตรหัสผ่านอาจต้องขีดจำกัดที่ต่างจากการพรีวิวจดหมายข่าวจำนวนมาก ให้ขีดจำกัดชัดเจนเพื่อให้การพึ่งพาที่ช้าไม่ขยายเวลางาน CI ทั้งหมดโดยเงียบ ๆ
จับคู่อย่างแม่นยำ
“ข้อความแรกในกล่องจดหมาย” ไม่ใช่ตัวเลือกที่มีประโยชน์ จับสัญญาณหลายอย่าง:
- ผู้รับต้องตรงกับที่อยู่ที่สร้างสำหรับการรันนี้;
- เวลาสร้างต้องหลังจากเวลาเรียกใช้งาน;
- ผู้ส่งต้องเป็นบริการที่คาดหวัง;
- หัวเรื่องหรือประเภทข้อความต้องตรงกับขั้นตอน;
- ID ของข้อความต้องยังไม่ถูกใช้มาก่อน.
เมื่อผู้ส่งสามารถออกหลายโค้ด ให้เลือกข้อความที่ใหม่ที่สุดที่ตรงกัน เก็บ ID ของมันไว้ในผลลัพธ์ของการทดสอบเพื่อให้การลองใหม่ไม่ใช้ซ้ำโดยบังเอิญ
อ่านเฉพาะหลังจากจับคู่รายการ
การแสดงรายการกล่องจดหมายควรเป็นขั้นตอนค้นหาที่ประหยัด ดึงข้อความเต็มเฉพาะสำหรับผู้สมัครที่เลือกเท่านั้น วิธีนี้ลดงานที่ไม่จำเป็นและหลีกเลี่ยงการพาร์สเมลโปรโมชั่นที่ไม่เกี่ยวข้อง
ตรวจสอบผลลัพธ์ทางธุรกิจ ไม่ใช่แค่การมีสตริงหกหลัก ส่งโค้ดหรือเปิดลิงก์ที่คาดไว้ แล้วยืนยันว่าบัญชีเข้าสู่สถานะที่ถูกต้อง
จัดการข้อจำกัดอัตราการเรียกเป็นสัญญาณ
หาก API ส่งคืนการตอบสนองว่าถึงโควต้า หรืออัตราการเรียกจำกัด ให้หยุดการพยายามปัจจุบันและแสดงข้อมูลการรีเซ็ต การลองใหม่อย่างรุนแรงจะทำให้สัญญาณความจุที่ชัดเจนกลายเป็นสัญญาณรบกวนและอาจทำให้การทดสอบอื่นล่าช้า
จำกัดการทำงานพร้อมกันที่ตัวรันการทดสอบ โดยเฉพาะเมื่อชุดทดสอบสร้างหลายที่อยู่พร้อมกัน การใช้พูล worker เล็ก ๆ จะง่ายต่อการดีบักกว่าการมีลูปโพลหลายร้อยอันพร้อมกัน
ทำความสะอาดโดยไม่ซ่อนความล้มเหลว
การทำความสะอาดควรทำหลังจากจับหลักฐานแล้ว หากสำเร็จให้ลบข้อความหรือให้การเก็บรักษาระยะสั้นจัดการ หากล้มเหลวให้เก็บที่อยู่และ ID ของข้อความใน artifacts ของ CI ที่ได้รับการปกป้องนานพอสำหรับการสืบสวน แล้วจึงลบออก
ห้ามพิมพ์โค้ดยืนยัน, ลิงก์ส่วนตัว, หรือเนื้อหา HTML ทั้งหมดลงในบันทึกการสร้างสาธารณะ
ทำให้การลองใหม่เป็นแบบอิดิโมพอเทนท์
ลองทดสอบใหม่เป็นการรันใหม่พร้อมที่อยู่ใหม่ อย่าสมมติว่าการทำซ้ำคำขอเดียวกันต่อบัญชีและกล่องจดหมายเดียวกันจะเริ่มจากสถานะสะอาด ผู้ส่งอาจทำให้โค้ดเก่าไม่ใช้งาน, จำกัดอัตราการลองใหม่, หรือปฏิเสธคำเชิญซ้ำ
หากคำขอเครือข่ายหมดเวลา ให้แยก “ไม่ได้รับการตอบกลับ” กับ “การดำเนินการไม่ได้เกิดขึ้น” ตรวจสอบสถานะที่สังเกตได้ก่อนทำการลองใหม่ที่ทำลายข้อมูล
รายงานจุดที่เกิดความล้มเหลว
ความล้มเหลวของอัตโนมัติที่มีประโยชน์จะระบุหนึ่งในขั้นตอนต่อไปนี้:
- การสร้างที่อยู่ล้มเหลว;
- การกระทำของผลิตภัณฑ์ล้มเหลวก่อนที่อีเมลจะถูกคิว;
- ไม่พบข้อความที่ตรงกันก่อนกำหนดเวลา;
- ข้อความมาถึงแต่เนื้อหาไม่ตรง;
- การกระทำยืนยันล้มเหลว;
- การทำความสะอาดล้มเหลว.
การจัดประเภทนี้ทำให้ “การทดสอบอีเมลล้มเหลว” ที่เป็นเหตุการณ์สุ่มกลายเป็นงานที่ทีมสามารถรับผิดชอบได้
สำหรับเมทริกซ์การทดสอบที่ใหญ่ขึ้น อ่าน แผนการทดสอบอีเมลจริง สำหรับการวินิจฉัยการส่งเมล ใช้ อีเมลยืนยันไม่มาถึง: ค้นหาขั้นตอนที่เสีย.