
ელექტრონული ფოსტის ტესტის არასანდო ვერსია მოკლეა: შექმენით მისამართი, დაიძინეთ ხუთ წამი, წაიკითხეთ პირველი შეტყობინება და იმედი გაქვთ, რომ იგი ეკუთვნის ამ გაშვებას.
სანდო ვერსია მაინც მარტივია, თუმცა იგი ელფოსტის მიწოდებას ასრულებს ასინქრონულად. იგი ქმნის უნიკალურ მისამართს, რეგისტრირებს დაწყების დროის, პოლინგს აკეთებს დედლაინის ფარგლებში, ემთხვევა მიზნობრივ შეტყობინებას, ვალიდირებს პროდუქტის ქმედებას და ანგარიშს აძლევს საკმარის კონტექსტს, როდესაც რამე ვერ მოხდება.
API გასაღები URL‑ში არ უნდა იყოს
გაგზავნეთ GPTMail გასაღები X-API-Key ჰედერში. არ ჩასვით იგი ?api_key= მოთხოვნის პარამეტრებში. URL‑ები რეგულარულად ინახება ბრაუზერის ისტორიის, წვდომის ლოგების, მონიტორინგის სისტემებისა და რეფერერის მონაცემებში.
X-API-Key: YOUR_API_KEYშეინახეთ გასაღები CI-ის საიდუმლოების მმართველში და დაფარეთ იგი ლოგებში. საზოგადოებრივი ყოველდღიური გასაღები შესანიშნავია შესწავლისთვის; კონტროლირებული ავტომატიზებული სიუჟეტები უნდა იყენებინათ გასაღები, რომლის კვოტა და გამოყენება შეგიძლიათ თვალყური ადევნოთ.
მიმდინარე საბოლოო წერტილები და პასუხის მაგალითები განახლებულია GPTMail API დოკუმენტაციის გვერდზე.
თითოეულ გაშვებაზე ერთი მისამართი
შექმენით ახალი მისამართი თითოეული დამოუკიდებლად შესრულებადი ტესტისთვის. არ იდგენოთ სწორობა საერთო ინბოქსიდან, რომელიც მთელი ტესტის სიუჟეტის მიერ იყენება.
დარეკორდეთ მისამართი, სცენარის ID, გარემო და ტესტის დაწყების დრო. ეს მნიშვნელობები საშუალებას მოგცემთ უარყოფოთ მოძველებული შეტყობინებები და დიაგნოსტიკას collisions‑ის გარეშე, შეტყობინებების საიდუმლოების ლოგირების გარეშე.
პოლინგი დედლაინის მიხედვით, არა ფიქსირებულ დაძინებით
ელფოსტის მიწოდების დრო იცვლება. ფიქსირებული ხუთ-წამიანი დაძინება როგორც სწრაფი მიწოდებისას ბარგია, ისე ნელი მიწოდებისას არასანდოა.
გამოიყენეთ შეზღუდული ციკლი:
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 აბრუნებს კვოტის ან განაკვეთის ლიმიტის პასუხს, შეწყვიტეთ მიმდინარე ცდა და გამოჩნდეს გადატვირთვის ინფორმაცია. აგრესიული გადატვირთვები ცხადი შესაძლებლობის სიგნალს ხმისგან გადაყენებს და შეიძლება დაგვიანდეს არასაკარგული ტესტები.
შეზღუდეთ თანასწორად გაშვებული პროცესები ტესტის რანერში, განსაკუთრებით როდესაც სიუჟეტი ერთდროულად ქმნის მრავალ მისამართს. პატარა სამუშაოთა პული ადვილია დიბაგინგისთვის, ვიდრე ასობით ერთდროულ პოლინგის ციკლები.
გასუფთავება შეცდომების დამალვის გარეშე
გასუფთავება უნდა შესრულდეს მტკიცებულებების შეგროვების შემდეგ. წარმატების შემთხვევაში, წაშალეთ შეტყობინებები ან დატოვეთ მოკლე შენახვის პერიოდი. შეცდომის შემთხვევაში, დატოვეთ მისამართი და შეტყობინების ID დაცულ CI არტიფაქტებში საკმარისად დროისთვის, რათა მოხდეს გამოკვლევა, შემდეგ კი წაშალეთ.
არასდროს დაბეჭდეთ ვერიფიკაციის კოდები, კერძო ბმულები ან სრულყოფილი HTML შიგთავსი საზოგადოებრივ ბილდ ლოგებში.
გადატვირთვების იდემპოტენტობა
გადატვირთეთ ტესტი როგორც ახალი გაშვება ახალი მისამართით. არ ითვლეთ, რომ იგივე მოთხოვნის განმეორება იმავე ანგარიშზე და ინბოქსზე იწყება სუფთა მდგომარეობით. გამგზავნმა შეიძლება გაუქმოს ძველი კოდები, შეზღუდოს განმეორებული მოთხოვნები, ან უარყოს დუბლირებული მოწვევა.
თუ ქსელის მოთხოვნა დროის გასვლის გამო, განსხვავეთ “პასუხი არ მიღებულია” და “ოპერაცია არ მოხდა”. შეამოწმეთ დაკვირვებადი მდგომარეობა დესტრუქციული გადატვირთვის დაწყებამდე.
შეცდომის წერტილის მოხსენება
სასარგებლო ავტომატიზაციის შეცდომა იდენტიფიცირებს ერთ-ერთი შემდეგი ეტაპის:
- მისამართის გენერაცია ჩავარდა;
- პროდუქტის ქმედება ჩავარდა ელფოსტის რიგში დასაყენებამდე;
- შესაბამისი შეტყობინება არ მოვიდა დედლაინამდე;
- შეტყობინება მოვიდა, მაგრამ მისი შინაარსი არ დაემატა;
- ვერიფიკაციის ქმედება ჩავარდა;
- გასუფთავება ჩავარდა.
ეს კლასიფიკაცია გადაყავს ინტერმიტენტურ “ელფოსტის ტესტი ჩავარდა” სამუშაოზე, რომელსაც გუნდი შეიძლება მიიღოს.
დიდი სატესტო მატრიცისთვის, წაიკითხეთ რეალური ელფოსტის სატესტო გეგმა. მიწოდების დიაგნოსტიკისთვის გამოიყენეთ ვერიფიკაციის ელფოსტა არ მოდის: იპოვეთ დაზიანებული ნაბიჯი.