اینطوری بزن:
---
1) نوع تست
این سناریو یک تست ترکیبی از نوع:
api testing + integration testing + stateful workflow testing + ui/e2e testing
است.
---
2) نکته اصلی سؤال
چون APIها stateful هستند، باید کل جریان سفارش به ترتیب تست شود، نه اینکه هر endpoint را جداگانه و مستقل بررسی کنیم.
جریان اصلی:
1. ثبت کاربر
2. افزودن کالا به سبد خرید
3. ثبت سفارش
4. پرداخت
5. مشاهده وضعیت سفارش
---
3) ابهامها
نیازمندی کامل بیان نشده و قبل از تصمیم قطعی باید با تحلیلگر یا مالک محصول رفع ابهام شود؛ مخصوصاً درباره:
endpointها و methodها
request و response هر API
وضعیتهای سفارش
قوانین reject
authentication و authorization
رفتار پرداخت تکراری
روش reset کردن state در Mockoon
---
4) فرضیات
در نبود اطلاعات بیشتر، فرض میکنم:
بعد از ثبت کاربر، userId یا token برمیگردد.
بعد از افزودن کالا، cartId ساخته میشود.
بعد از ثبت سفارش، orderId ساخته میشود.
بعد از پرداخت، وضعیت سفارش به paid یا completed تغییر میکند.
خروجی هر مرحله باید در مرحله بعد استفاده شود.
---
5) مراحل تست با Postman
در Postman یک collection میسازم و requestها را به این ترتیب اجرا میکنم:
1. register user
2. add product to cart
3. create order
4. pay order
5. get order status
در هر مرحله بررسی میکنم:
status code درست باشد.
response body درست باشد.
schema معتبر باشد.
فیلدهای لازم مثل userId, cartId, orderId, paymentId وجود داشته باشند.
state سفارش درست تغییر کند.
دادههای هر مرحله در variable ذخیره شوند و در مرحله بعد استفاده شوند.
---
6) happy path
سناریوی موفق:
کاربر جدید ثبت میشود، کالای معتبر به سبد اضافه میشود، سفارش ساخته میشود، پرداخت موفق انجام میشود و در پایان وضعیت سفارش باید paid یا completed باشد.
---
7) negative / reject scenarios
این سناریوها را تست میکنم:
ثبت کاربر با داده ناقص
ثبت کاربر با email تکراری
افزودن محصول نامعتبر
افزودن کالا با تعداد صفر یا منفی
ثبت سفارش با سبد خرید خالی
پرداخت قبل از ایجاد سفارش
پرداخت با orderId نامعتبر
پرداخت تکراری
مشاهده سفارش کاربر دیگر
ارسال request بدون token
ارسال body ناقص یا اشتباه
در این حالتها باید سیستم خطای مناسب برگرداند و state اشتباه تغییر نکند.
---
8) تست UI با Playwright یا Selenium
بعد از تست API، جریان اصلی را از UI تست میکنم:
1. باز کردن سایت
2. ثبت کاربر
3. انتخاب کالا
4. افزودن به سبد خرید
5. ثبت سفارش
6. پرداخت
7. مشاهده وضعیت سفارش
در UI بررسی میکنم:
پیامهای موفقیت یا خطا درست نمایش داده شوند.
وضعیت سفارش درست نشان داده شود.
UI با API و Mockoon درست کار کند.
---
9) ریسکها
ریسکهای مهم این سناریو:
وابستگی تستها به ترتیب اجرا
خراب شدن تست بهخاطر state قبلی
reset نشدن دادهها در Mockoon
پرداخت تکراری
مشکل authorization و احتمال idor
کافی نبودن mock server نسبت به backend واقعی
flaky شدن تستهای UI
---
10) گزارش نهایی
در گزارش نهایی مینویسم:
چه سناریوهایی تست شد.
کدام سناریوها pass یا fail شدند.
دادهها در هر مرحله چطور منتقل شدند.
state سفارش چطور تغییر کرد.
rejectها درست handle شدند یا نه.
چه ابهامها و ریسکهایی باقی مانده است.
---
جواب نهایی کوتاه برای نوشتن در آزمون
این سناریو یک تست ترکیبی API، integration و UI/E2E برای جریان سفارش فروشگاه آنلاین است. چون APIها stateful هستند، باید مراحل به ترتیب اجرا شوند و خروجی هر مرحله مثل userId، cartId، orderId و paymentId در مرحله بعد استفاده شود.
ابتدا با Postman یک collection میسازم که شامل ثبت کاربر، افزودن کالا به سبد، ثبت سفارش، پرداخت و مشاهده وضعیت سفارش باشد. در هر request علاوه بر status code، response body، schema، business rule، دادههای برگشتی و تغییر state را بررسی میکنم.
مسیر موفق باید نشان دهد کاربر ثبت میشود، کالا به سبد اضافه میشود، سفارش ایجاد میشود، پرداخت موفق انجام میشود و وضعیت سفارش به paid یا completed تغییر میکند.
برای reject هم سناریوهایی مثل cart خالی، محصول نامعتبر، quantity صفر یا منفی، پرداخت قبل از ثبت سفارش، پرداخت تکراری، orderId نامعتبر، body ناقص، token نامعتبر و مشاهده سفارش کاربر دیگر را تست میکنم. در این حالتها سیستم باید خطای مناسب بدهد و state را اشتباه تغییر ندهد.
بعد از تست API، مسیر اصلی را با Playwright یا Selenium از UI اجرا میکنم تا مطمئن شوم رابط کاربری هم درست با Mockoon و APIها کار میکند. در پایان گزارشی از data flow، state transition، سناریوهای pass/fail، rejectها، ابهامها و ریسکها ارائه میدهم.