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

კონსოლის შეცდომა დაუჭერელი გამონაკლისი არ არის.

კონსოლის შეტყობინება და გვერდის შეცდომა ცალკე შეაგროვეთ, შემდეგ შედეგი ნახეთ.

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

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

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

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

Page API console-ს კონსოლის გამოძახებებისთვის და pageerror-ს დაუჭერელი გამონაკლისებისთვის აღწერს. ConsoleMessage ტიპსა და ტექსტს იძლევა. არხი შეინარჩუნეთ, რომ შეტყობინება გამოგონილ დიაგნოზად არ იქცეს.

მოქმედებამდე მოუსმინეთ

გამოგონილ გვერდზე ერთი ღილაკი console.error-ს იძახებს, მეორე Error-ს გეგმავს. გარე რესურსები ან კლიენტის მონაცემები არ არის. ტესტი დაწკაპუნებამდე ელოდება და შესაბამის არხს ამოწმებს.

const pending = page.waitForEvent('console', message =>
  message.type() === 'error' && message.text() === 'demo diagnostic'
);
await page.getByRole('button', { name: 'Log demo error' }).click();
const message = await pending;
expect(message.text()).toBe('demo diagnostic');

საჭიროა Playwright-ის გამშვები, expect-ის იმპორტი და ადგილობრივი ფიქსტურა. ლოდინი დაწკაპუნებამდე იწყება სწრაფი მოვლენის დასაჭერად. ზუსტ გამოგონილ ტექსტს ეძებს, არა ყველა რეალურ შეცდომას. pageerror ცალკე დაარეგისტრირეთ.

კონტროლირებული console.error შეტყობინებას pageerror-ის გარეშე იძლევა. ცალკე დაგეგმილი throw pageerror-ს მოსალოდნელი ტექსტით ქმნის. ეს ფიქსტურის ქცევაა, არა ყველა ბრაუზერის ან ბიბლიოთეკის პოლიტიკა.

შეგროვება გადაწყვეტილებისგან გამოყავით

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

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

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

დიაგნოსტიკა დაიცავით

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

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

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

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

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

console.error ყოველთვის გამონაკლისია?

არა. შეტყობინებასა და გამონაკლისს სხვადასხვა არხი აქვს.

მოსმენა ტესტს ამარცხებს?

არა. მონაცემებს შემოწმება ან აშკარა წესი უნდა იყენებდეს.

წყაროები