
ইমেইল টেস্টের অবিশ্বাস্য সংস্করণটি সংক্ষিপ্ত: একটি ঠিকানা তৈরি করুন, পাঁচ সেকেন্ড ঘুমান, প্রথম বার্তা পড়ুন, এবং আশা করুন এটি এই রানটির অন্তর্ভুক্ত।
বিশ্বাসযোগ্য সংস্করণটি এখনও সহজ, তবে এটি ডেলিভারিকে অ্যাসিঙ্ক্রোনাস হিসেবে বিবেচনা করে। এটি একটি অনন্য ঠিকানা তৈরি করে, শুরুর সময় রেকর্ড করে, সময়সীমার মধ্যে পোল করে, উদ্দেশ্যযুক্ত বার্তা মেলে, পণ্যের ক্রিয়াকে যাচাই করে, এবং কোনো কিছু ব্যর্থ হলে পর্যাপ্ত প্রেক্ষাপট রিপোর্ট করে।
URL-এ API কী রাখবেন না
X-API-Key হেডারে GPTMail কী পাঠান। ?api_key= কুয়েরি প্যারামিটারে এটি রাখবেন না। URL গুলি নিয়মিতভাবে ব্রাউজার ইতিহাস, অ্যাক্সেস লগ, মনিটরিং সিস্টেম এবং রেফারার ডেটায় সংরক্ষিত হয়।
X-API-Key: YOUR_API_KEYআপনার CI সিক্রেট ম্যানেজারে কী সংরক্ষণ করুন এবং লগে মাস্ক করুন। অনুসন্ধানের জন্য একটি পাবলিক ডেইলি কী সুবিধাজনক; নিয়ন্ত্রিত অটোমেটেড স্যুটগুলো এমন কী ব্যবহার করা উচিত যার কোটা এবং ব্যবহার আপনি ট্র্যাক করতে পারেন।
বর্তমান এন্ডপয়েন্ট এবং রেসপন্স উদাহরণগুলি GPTMail API ডকুমেন্টেশন পেজে রক্ষণাবেক্ষণ করা হয়।
প্রতিটি রানে একটি ঠিকানা
প্রতিটি স্বতন্ত্রভাবে চালনাযোগ্য টেস্টের জন্য একটি নতুন ঠিকানা তৈরি করুন। পুরো টেস্ট স্যুটের সাথে ভাগ করা ইনবক্স থেকে সঠিকতা নির্ণয় করবেন না।
ঠিকানা, সীনারিও আইডি, পরিবেশ এবং টেস্ট শুরুর সময় রেকর্ড করুন। এই মানগুলো আপনাকে পুরনো বার্তা প্রত্যাখ্যান করতে এবং বার্তা গোপনীয়তা লগ না করে সংঘর্ষ নির্ণয় করতে সহায়তা করে।
নির্দিষ্ট স্লিপ নয়, সময়সীমার বিরুদ্ধে পোল করুন
ইমেইল ডেলিভারির সময় পরিবর্তনশীল। ডেলিভারি দ্রুত হলে নির্দিষ্ট পাঁচ সেকেন্ড স্লিপ অপচয় এবং ধীর হলে অস্থিরতা সৃষ্টি করে।
একটি সীমাবদ্ধ লুপ ব্যবহার করুন:
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 কাজকে নীরবে বাড়িয়ে না দেয়।
সুনির্দিষ্টভাবে মেলান
“ইনবক্সের প্রথম বার্তা” একটি উপযোগী সিলেক্টর নয়। একাধিক সংকেত মেলান:
- প্রাপক এই রানটির জন্য তৈরি করা ঠিকানার সমান;
- সৃষ্টি সময় ট্রিগার সময়ের পরে;
- প্রেরক প্রত্যাশিত সার্ভিসের অন্তর্ভুক্ত;
- বিষয় বা বার্তার ধরন ফ্লোয়ের সাথে মেলে;
- বার্তার আইডি ইতিমধ্যে ব্যবহার করা হয়নি।
যদি প্রেরক একাধিক কোড জারি করতে পারে, সর্বশেষ মেলানো বার্তা নির্বাচন করুন। রিট্রাইগুলো দুর্ঘটনাবশত এটি পুনরায় ব্যবহার না করে, টেস্ট আউটপুটে তার আইডি সংরক্ষণ করুন।
তালিকা মেলানোর পরে মাত্রই পড়ুন
ইনবক্স তালিকা হওয়া উচিত সস্তা ডিসকভারি ধাপ। শুধুমাত্র নির্বাচিত প্রার্থীর জন্য পূর্ণ বার্তা আনুন। এটি অপ্রয়োজনীয় কাজ কমায় এবং অপ্রাসঙ্গিক প্রচারমূলক মেইল পার্স করা থেকে রক্ষা করে।
ব্যবসায়িক ফলাফল যাচাই করুন, শুধুমাত্র ছয়-ডিজিটের স্ট্রিং উপস্থিতি নয়। কোড জমা দিন বা প্রত্যাশিত লিঙ্ক খুলুন, তারপর নিশ্চিত করুন যে অ্যাকাউন্ট সঠিক অবস্থায় পৌঁছেছে।
রেট লিমিটকে সংকেত হিসেবে হ্যান্ডল করুন
যদি API কোটা বা রেট-লিমিট রেসপন্স দেয়, বর্তমান প্রচেষ্টা বন্ধ করুন এবং রিসেট তথ্য প্রকাশ করুন। আক্রমণাত্মক রিট্রাই স্পষ্ট ক্যাপাসিটি সংকেতকে নয়েজে রূপান্তরিত করে এবং অপ্রাসঙ্গিক টেস্টগুলোকে বিলম্বিত করতে পারে।
টেস্ট রানার-এ সমান্তরালতা সীমিত করুন, বিশেষ করে যখন একটি স্যুট একসাথে অনেক ঠিকানা তৈরি করে। শত শত সমসাময়িক পোলিং লুপের তুলনায় ছোট ওয়ার্কার পুল ডিবাগ করা সহজ।
ব্যর্থতা লুকানো ছাড়া ক্লিনআপ করুন
প্রমাণ সংগ্রহের পরে ক্লিনআপ চালানো উচিত। সফল হলে, বার্তা মুছে ফেলুন বা স্বল্প রিটেনশনকে তা পরিচালনা করতে দিন। ব্যর্থ হলে, তদন্তের জন্য যথেষ্ট সময়ের জন্য ঠিকানা এবং বার্তার আইডি সুরক্ষিত CI আর্টিফ্যাক্টে রাখুন, তারপর সেগুলো মুছে ফেলুন।
কখনই ভেরিফিকেশন কোড, প্রাইভেট লিঙ্ক বা সম্পূর্ণ HTML বডি পাবলিক বিল্ড লগে প্রিন্ট করবেন না।
রিট্রাইগুলোকে আইডেমপোটেন্ট করুন
নতুন ঠিকানা দিয়ে টেস্টকে নতুন রান হিসেবে রিট্রাই করুন। একই অ্যাকাউন্ট ও ইনবক্সে একই রিকোয়েস্ট পুনরাবৃত্তি করলে পরিষ্কার অবস্থায় শুরু হবে বলে অনুমান করবেন না। প্রেরক পুরনো কোড অবৈধ করতে পারে, পুনরাবৃত্ত রিকোয়েস্ট থ্রটল করতে পারে, অথবা ডুপ্লিকেট ইনভাইটেশন প্রত্যাখ্যান করতে পারে।
যদি নেটওয়ার্ক রিকোয়েস্ট টাইমআউট হয়, “কোনো রেসপন্স পাওয়া যায়নি” এবং “অপারেশন ঘটেনি” আলাদা করুন। ধ্বংসাত্মক রিট্রাই করার আগে পর্যবেক্ষণযোগ্য অবস্থা পরীক্ষা করুন।
ব্যর্থতার পয়েন্ট রিপোর্ট করুন
একটি উপযোগী অটোমেশন ব্যর্থতা নিম্নলিখিত ধাপগুলোর একটি চিহ্নিত করে:
- ঠিকানা জেনারেশন ব্যর্থ হয়েছে;
- ইমেইল এনকিউ করার আগে পণ্য ক্রিয়া ব্যর্থ হয়েছে;
- সময়সীমার আগে মেলানো বার্তা পৌঁছায়নি;
- বার্তা পৌঁছেছে কিন্তু বিষয়বস্তু মেলেনি;
- ভেরিফিকেশন ক্রিয়া ব্যর্থ হয়েছে;
- ক্লিনআপ ব্যর্থ হয়েছে।
এই শ্রেণীবিভাগ একটি অনিয়মিত “ইমেইল টেস্ট ব্যর্থ”কে এমন কাজের রূপ দেয় যা দলটি দায়িত্ব নিতে পারে।
বৃহত্তর টেস্ট ম্যাট্রিক্সের জন্য, পড়ুন একটি বাস্তব ইমেইল টেস্ট প্ল্যান। ডেলিভারি নির্ণয়ের জন্য, ব্যবহার করুন ভেরিফিকেশন ইমেইল না পৌঁছানো: ত্রুটিপূর্ণ ধাপ খুঁজে বের করুন।