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

API-შემოწმებამ ბრაუზერის cookies შეიძლება გამოიყენოს.

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

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

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

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

ტესტი ავტორიზებულ გვერდს ხსნის და API-ს კითხულობს. სხვა ვინაობა ჰგონია, რადგან ღილაკი არ მონაწილეობდა. Playwright-ში მოთხოვნის კონტექსტმა ბრაუზერის cookies შეიძლება გამოიყენოს. API დამოუკიდებელ ავტორიზაციის საზღვარს ავტომატურად არ ქმნის.

გზამკვლევი APIRequestContext-ს, ლოკალურ სერვერსა და გამოგონილ demo_session-ს იყენებს. ნამდვილი წვდომა ან ანგარიში არ არსებობს. საცავს ვაჩვენებთ და არა წესის გვერდის ავლას.

შექმნილი კონტექსტი განსაზღვრეთ

browserContext.request და page.request ბრაუზერის cookies-ს იზიარებს. მოთხოვნა აგზავნის, პასუხი განაახლებს. განზრახ საერთო სესიისთვის სასარგებლოა, მტკიცებულების განმარტებაზე კი მოქმედებს.

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

const shared = await page.request.get('http://localhost:4181/who');
expect(await shared.text()).toBe('demo_session=fixture');

const isolated = await request.newContext();
try {
  const response = await isolated.get('http://localhost:4181/who');
  expect(await response.text()).toBe('no demo cookie');
} finally {
  await isolated.dispose();
}

სერვერი და გამოგონილი cookie-იანი ბრაუზერი საჭიროა. request და expect Playwright-იდან შემოიტანეთ. სერვერი მხოლოდ ამ cookie-ს აცხადებს. ნამდვილი სესიის სათაურები არ გამოაქვეყნოთ.

დამოუკიდებლობა განსაზღვრეთ

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

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

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

პასუხის ეფექტი ხილული გახადეთ

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

ტესტი მეორე გამოგონილ cookie-ს აყენებს და ბრაუზერში პოულობს. იზოლირებული კონტექსტი ცალკე რჩება. ეს მექანიზმია და არა ყველა სესიის შეფასება.

დროებითი კონტექსტი დახურეთ. API პასუხის სხეულს კითხვისთვის ინახავს და dispose-ით ათავისუფლებს. ჯერ საჭირო მტკიცებულება წაიკითხეთ.

ვინაობის საზღვარი ჩაწერეთ

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

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

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

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

page.request ცალკე cookies-ს იყენებს?

არა. შესაბამისი ბრაუზერის კონტექსტის საცავს იზიარებს.

იზოლაცია ანონიმური წვდომის წესს ავტომატურად ამტკიცებს?

არა. სრული პარამეტრები და ნამდვილი endpoint-ის მოლოდინებია საჭირო.

წყაროები