ویرگول
ورودثبت نام
mizzban
mizzban
mizzban
mizzban
خواندن ۳ دقیقه·۱ روز پیش

3

اینطوری بزن:

---

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ها، ابهام‌ها و ریسک‌ها ارائه می‌دهم.

رابط کاربریسبد خریدمالک محصولتست
۰
۰
mizzban
mizzban
شاید از این پست‌ها خوشتان بیاید