QA The Other Wayხარისხის უზრუნველყოფა AI-ის მიერ დაწერილი ტესტების ეპოქაში. QA The Other Way.
პრაქტიკული QA

HTTP-ის შეცდომაც HTTP-ის პასუხია.

მოთხოვნის დიაგნოსტიკისას წარუმატებელი სტატუსი ტრანსპორტის ჩავარდნისგან გამოყავით.

5 კითხვა: წუთიQA The Other Way
ავტორის სქემა HTTP-შეცდომასა და შეწყვეტილ ტრანსპორტს აცალკევებს.
ავტორის სარედაქციო ილუსტრაცია.
საილუსტრაციო ვიდეო ამ სტატიისთვის. ინგლისური ტექსტი ეკრანზე; აირჩიეთ სუბტიტრები ამ ენისთვის.

ნათარგმნი გამოცემა. ტექნიკური იდენტიფიკატორები რჩება თავდაპირველ ფორმაში.

მოთხოვნის დიაგნოსტიკისას წარუმატებელი სტატუსი ტრანსპორტის ჩავარდნისგან გამოყავით.
ლოკალური მაგალითი გამოგონილი მონაცემებით, არა კლიენტის ან მომწოდებლის ინტერფეისი.

პანელი არ იტვირთება და ტესტი requestfailed-ს ელოდება. არაფერი მოდის: სერვერმა HTTP-შეცდომა დააბრუნა. მოვლენის არყოფნა წარმატებას არ ამტკიცებს. ტესტი არასწორ საზღვარს ეკითხებოდა.

გზამკვლევი Playwright-ის ქსელის დოკუმენტაციას და Page-ს იყენებს ლოკალური მოთხოვნებით: კონტროლირებული 503 და განზრახ route-abort. კლიენტის endpoint ან ნამდვილი ავარია არ არსებობს. სტატუსი და ტრანსპორტი ცალკეა.

სტატუსი პირდაპირ წაიკითხეთ

API request, response და requestfinished-ს დასრულებისთვის აღწერს. HTTP-შეცდომა პასუხია და არა requestfailed. ტრანსპორტი შეიძლება დასრულდეს, პროდუქტის დაპირება კი დაირღვეს.

const pending = page.waitForResponse(response =>
  response.url().endsWith('/demo-unavailable')
);
await page.getByRole('button', { name: 'Load demo panel' }).click();
const response = await pending;
expect(response.status()).toBe(503);
await expect(page.getByRole('status')).toHaveText('Demo service unavailable');

ღილაკი და კონტროლირებული სერვერი საჭიროა. ინტერფეისი შეცდომას აცხადებს. 503-ს მოლოდინი უარყოფითი მაგალითისთვის სწორია და არა რეალური წარმატებული გზისთვის.

ლოდინი მოქმედებამდე დაიწყეთ. endpoint და ვინაობა შეთანხმებით აირჩიეთ. ფართო დამმუშავებელმა უცხო პასუხი შეიძლება მტკიცებულებად მიიღოს.

requestfailed თავისი კითხვისთვის გამოიყენეთ

ის ნორმალური დასრულებული პასუხის არყოფნას აღწერს, მაგალითად ტრანსპორტის ჩავარდნას. სხვა მაგალითი route.abort()-ს იყენებს. მოწმდება არჩეული URL და შეცდომის აღწერა და არა ყველა ბრაუზერის ერთნაირი ტექსტი.

შეწყვეტა სერვერის 503 არ არის. სახელები და მოლოდინები ცალკეა. თუ ორივე გამეორებას მოითხოვს, აღდგენა ორივე პარამეტრში მიზეზების შერევის გარეშე შეამოწმეთ.

ერთი მოვლენა წარმოების მიზეზს არ ადგენს. კვლევას ეხმარება, სერვერს, ქსელის ნაბიჯს ან პოლიტიკას არ ასახელებს. მტკიცებულებები ნებადართულ გარემოში შეადარეთ.

ტრანსპორტი და პროდუქტი არ აურიოთ

პასუხს დასაშვები სტატუსი და არასწორი ჩანაწერი ან სხეული შეიძლება ჰქონდეს. სტატუსი შეთანხმების ნაწილია. შიგთავსი და UI მაგალითის გაფართოების გარეშე შეამოწმეთ.

სერვერი დასრულებულ 503-ს requestfailed-ის გარეშე ითვლის. შეწყვეტა requestfailed-ს იძლევა. ეს მოვლენების მნიშვნელობაა და არა საიმედოობის გაზომვა ან გარე ავარია.

არყოფნის გამო დაწკაპება არ გაიმეოროთ. სერვერს მოქმედება უკვე მიღებული შეიძლება ჰქონდეს და გამეორება დუბლირებს. ჯერ საზღვარი და ნებადართული გამეორება განსაზღვრეთ.

კონკრეტული ტერმინები შეინარჩუნეთ

endpoint, სტატუსი ან მოვლენა, UI-შედეგი და უცნობი ჩაწერეთ. ეს ქსელი გაფუჭდაზე სასარგებლოა. კერძო URL და მონაცემები გაზიარებამდე დაიცავით.

დასრულებული ტრანსპორტი მარტო ბიზნესშედეგს არ ამტკიცებს. პროდუქტს სწორი ჩანაწერი, შიგთავსი ან გამოსადეგი აღდგენა შეიძლება სჭირდებოდეს. ანგარიშში დადასტურებული და უცნობი ცალკე უნდა ჩანდეს. ლოკალური მაგალითი გარე მომსახურების ავარიის მიზეზს არ ადგენს; ცნობილი მონაცემებით ორ მოვლენას აცალკევებს, რომ შემდგომ ტესტებში არ აირიოს.

AnyTest კვლევის შემდეგ განსახილველ ტესტებს აღწერს. იკითხეთ სწორი მოვლენა და აღდგენა. ქსელის განხორციელება არ არის დაპირებული. წარუმატებელი პასუხი დასრულებული პასუხის არყოფნისგან განასხვავეთ.

არჩეული URL-ის მოვლენა სხვა მოთხოვნის მტკიცებულებას არ უნდა მიეწეროს. ამიტომ მოქმედებამდე ლოდინი და კონკრეტული საზღვარი საჭიროა.

საერთო კითხვები

HTTP 503 ავტომატურად requestfailed-ს იწვევს?

არა. პასუხია; სტატუსი პირდაპირ შეამოწმეთ.

requestfinished პროდუქტის წარმატებას ამტკიცებს?

არა. ტრანსპორტი, სტატუსი, შიგთავსი და შედეგი განსხვავდება.

წყაროები