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

ჯერ შედით ფრეიმში, შემდეგ აირჩიეთ მართვის ელემენტი.

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

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

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

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

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

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

ჯერ დოკუმენტი განსაზღვრეთ, შემდეგ ელემენტი

გვერდის ლოკატორები მთავარ ფრეიმში მუშაობს. iframe-ს ცალკე დოკუმენტი აქვს. ფრეიმის ლოკატორით შედით, შემდეგ ელემენტი ხელმისაწვდომი სახელით მოძებნეთ. ეს ორი არე ტესტს ეკრანის კოორდინატების გარეშე გასაგებს ხდის.

const preferences = page.frameLocator('iframe[title="Demo preferences"]');
await preferences.getByLabel('Display name').fill('Demo reader');
await preferences.getByRole('button', { name: 'Save', exact: true }).click();
await expect(preferences.getByRole('status')).toHaveText('Saved: Demo reader');
await expect(page.getByRole('status')).toHaveText('Outer page unchanged');

მაგალითი გულისხმობს დასახელებულ iframe-ს, ხელმისაწვდომ ველს და სტატუსს ორივე დოკუმენტში. expect Playwright-ის ტესტების გამშვებიდან შემოიტანეთ. ბოლო შემოწმება გარე გვერდზე შემთხვევით მოქმედებას ხილულს ხდის, ნაცვლად ნებისმიერი შენახვის წარმატებად მიჩნევისა.

iframe-ის სათაური აქ ლოკალური მაგალითის შეთანხმებაა და არა უნივერსალური რჩევა. აირჩიეთ იდენტიფიკატორი, რომლის მნიშვნელობას პროდუქტი შეინარჩუნებს. თუ რამდენიმე კომპონენტს იგივე სათაური აქვს, უნიკალური მფლობელი ჯერ არ არის განსაზღვრული. გუნდს დაეკითხეთ და პირველ ფრეიმს ნუ აირჩევთ.

ბუნდოვანებამ მკაფიო შეცდომა გამოიწვიოს

FrameLocator-ის API აღწერს შეცდომას, როცა სელექტორი რამდენიმე ფრეიმს ემთხვევა. ეს ინფორმაციაა: შესაძლოა ახალი კომპონენტი დაემატა ან სელექტორი არასდროს ყოფილა უნიკალური.

first() ან nth() ავტომატურად არ დაამატოთ. მდებარეობა ზოგჯერ მოთხოვნაა, მაგრამ ჯერ დაადასტურეთ. პირველი ფრეიმის მუდმივი არჩევა ტესტს წარმატებულად დატოვებს მაშინაც, როცა წინ უცხო კომპონენტი გამოჩნდება.

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

შედეგი მტკიცებულების საზღვრებში შეამოწმეთ

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

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

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

დატოვეთ კონკრეტული განხილვის ჩანაწერი

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

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

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

გვერდის ლოკატორი ყველა iframe-ში შედის?

გვერდის მოქმედებები მთავარ ფრეიმში მუშაობს. ჯერ საჭირო iframe-ში შედით.

ბუნდოვანი სელექტორისას პირველი ფრეიმი უნდა ავირჩიოთ?

მხოლოდ თუ მდებარეობა შეთანხმებული მოთხოვნაა. სხვა შემთხვევაში კუთვნილების წესი გაასწორეთ.

წყაროები