Testování automatizace loutkářů: Kurz 6

Puppeteer je framework založený na node js knihovně, který je dostupný jako open-source. Může být použit pro nástroje pro škrábání webu. Používá se také pro nástroje pro automatizaci testování. V současné době se používání Puppeteer rychle zvyšuje v prostoru automatizovaného testování softwaru. K pochopení je nutná základní znalost příkazového řádku, Javascriptu a struktury HTML DOM loutkářský výukový program. Celý tutoriál je rozdělen do níže uvedených článků. 

Výukový program pro loutkáře

Výukový program Tosca č. 1: Loutkář - přehled

Tosca konzultace # 2: Proměnné prostředí loutkáře

Tosca konzultace # 3: Přehled škrábání webu Puppeteer a Puppeteer Test Automation

Tosca konzultace # 4: Nainstalujte si Puppeteer

Tosca konzultace # 5: Ukázka projektu Loutkář

Výukový program Tosca č. 6: Testování automatizace loutkářů

V tomto tutoriálu „Testování automatizace loutkářů“ vysvětlíme od začátku podrobné kroky pro automatizaci loutkářů. Níže budou vysvětleny níže uvedené funkce, abychom porozuměli testování Puppeteer Automation od nuly -

· Nainstalujte Puppeteer

· Spusťte webovou aplikaci

· Identifikujte vlastnosti objektu z prohlížeče Chrome

· Kroky pro odeslání formuláře - zadejte text, klepněte na událost, ověření

· Zachycení snímku obrazovky

· Spouštět skripty pro Puppeteer Automation

Automatizace loutkářů

K zajištění kvality softwarových produktů je vyžadováno testování. V procesech vývoje softwaru je definováno několik úrovní testování. Chcete-li otestovat funkce softwaru, lze to provést ručně nebo pomocí automatizovaného procesu. Hlavním účelem automatizovaného testování softwaru je -

  • Rychlý cyklus provádění testu.
  • Vyvarujte se šance na lidské chyby.
  • Snižte načasování provádění testu.
  • Zkraťte dobu cyklu uvolnění.
  • Získejte více funkcí bez kompromisů s kvalitou.
  • Vícenásobné provedení lze provést paralelně.

 Puppeteer je knihovna uzlů založená na JavaScriptu, která poskytuje aplikační rozhraní (API) na vysoké úrovni pro ovládání webového prohlížeče Chrome přes protokol Chrome DevTools. Většinu manuálních operací prováděných v prohlížeči Chrome lze automatizovat pomocí nástroje Puppeteer. Puppeteer je tedy dobrou volbou pro rychlé a snadnější testování jednotek ve webových aplikacích. 

Přístup k testování automatizace loutkářů:

Níže jsou vysvětleny kroky spojené s automatizačním testem Puppeteer - 

Krok 1 # Určete scénář funkčního testu:

Ukážeme krok za krokem přístup k provedení automatizace Puppeteer pro níže uvedený scénář - 

· Spusťte webový prohlížeč.

· Vyvolejte webovou aplikaci Amazon.

  • Vyhledejte knihu „Testovací kniha“.
  • Přidejte knihu do košíku z výsledku.
  • Otevřete košík a zkontrolujte, zda je kniha v košíku k dispozici.
  • Pořiďte obrazovku a zavřete prohlížeč.

Krok 2 # Nainstalujte Puppeteer a vytvořte testovací případ:

Vytvořte prázdný soubor javascript jako „sample_script.js“ v konkrétní složce. Zde budeme kořenovou složku považovat za SampleProject. K instalaci Puppeteer použijeme příkaz - „npm install puppeteer“. Postup instalace trvá nějakou dobu na základě rychlosti sítě. Stáhne přibližně 350 MB dat. Po instalaci bude do ukázkové kořenové složky projektu Puppeteer vytvořena složka node_modules, která obsahuje různé komponenty loutkáře a soubor package-lock.json.

Krok 3 # Zachyťte vlastnosti identifikace testovaného objektu:

Můžeme zachytit identifikační vlastnosti pomocí nástroje pro vývojáře webového prohlížeče Chrome. Při analýze různých vlastností, jako jsou id, name, XPath atd., Vybereme tu správnou, kterou lze použít při skriptování k provádění jakýchkoli operací. V tomto výukovém programu „Testování automatizace loutkářů“ použijeme ve skriptu XPath. Níže uvedené kroky k získání XPATH nebo jiných vlastností,

1. Otevřete Nástroje pro vývojáře, které jsou k dispozici v části „Nabídka -> Další nástroje“, a přejděte na kartu Prvky.

2. Pomocí nástroje Finder (kliknutím na ikonu šipky v levém horním rohu karty Elements) zvýrazněte testovací objekt z aplikace. Zde zkontrolujeme vyhledávací pole.

Puppeteer Automation Testing - Otevřete nástroj pro vývojáře Chrome
Puppeteer Automation Testing - Otevřete nástroj pro vývojáře Chrome

3. Analyzujte zvýrazněný zdrojový kód a určete vlastnosti přání. Chcete-li získat vlastnost XPATH testovaného objektu, klikněte pravým tlačítkem na zvýrazněnou část a kliknutím na „Kopírovat-> Kopírovat Xpath“ zkopírujte vlastnost XPATH do schránky.

Testování automatizace loutkářů - kopírování XPath
Testování automatizace loutkářů - kopírování XPath

4. Nyní vložte Xpath do textového pole vyhledávače a stisknutím klávesy Enter zkontrolujte, zda Xpath jednoznačně identifikuje objekt.

Testování automatizace loutkářů - zkontrolujte XPath
Testování automatizace loutkářů - zkontrolujte XPath

5. Podobně musíme zachytit identifikační vlastnosti i pro další testovaný objekt.

Krok 4 # Kroky vývoje automatizace loutkáře:

Abychom mohli dokončit testovací případ, musíme na webových stránkách provést určité operace. Pro každou z operací jsou k dispozici různé metody. Zde jsou vysvětleny metody, které jsou použity v našem scénáři pro „Testování automatizace loutkářů“.

Spustit aplikaci - Po zahrnutí loutkáře musíme spustit prohlížeč pomocí metody loutkáře - spuštění. Do této metody lze předat odkaz na objekt k definování pro bezhlavý nebo bezhlavý prohlížeč. Pak musíme vytvořit instanci webového prohlížeče, která je nutná pro navigaci v URL. Zde se asynchronní funkce používá k použití klíčového slova await ke zpracování webového synchronizátoru.

//Zahrnout balíček pro loutkáře const puppeteer = require('loutkář'); (async () => { //spuštění bezhlavého prohlížeče const browser = wait puppeteer.launch({ headless: true }); //Vytvoření instance prohlížeče const page = wait browser.newPage(); //Přejděte na stránku url wait page.goto('https://www.amazon.in/'); })()

Celé testování proběhne v bezhlavém prohlížeči. Pokud chceme otevřít headful prohlížeč, musíme objekt předat metodě spuštění jako „{Headless: false}“.

Zkontrolujte existenci - Musíme použít metodu page.waitForXpath který zkontroluje existenci Xpath a vrátí odkaz na testovaný objekt. Testováním návratové reference můžeme v testovacím případě přidat ověřovací bod.

\tlet searchBox = wait page.waitForXPath("//*[@id='twotabsearchtextbox']",{ viditelné: true });
\tif (searchBox === null) //Ověření testovacího objektu
\t{
\t\tconsole.log('Obrazovka Amazonu se nezobrazuje');
\t}

Zadejte data - Za použití typ metodou odkazu na tento objekt můžeme zadat text.

čekat searchBox.type("Zkušební kniha");

Klikněte na Prvek  - Podobně pomocí cvaknutí metoda jakéhokoli odkazu na objekt, můžeme provádět operace kliknutí.

let btnSearch = wait page.waitForXPath("//*/input[@id='nav-search-submit-button']",{visible:true }); btnSearch.click();

Tisk zprávy v konzole  - Pomocí metody konzole.logmůžeme jakoukoli zprávu v konzole vytisknout jako výstup.

console.log('Bylo vygenerováno zpoždění konzoly');

Viz nová karta - Použití metod page.target a browser.waitforTarget, můžeme zkontrolovat a uložit odkaz na novou kartu do proměnné.

\tconst pageTarget = page.target();
\tconst newTarget = wait browser.waitForTarget(target => target.opener() === pageTarget);
\t//získáte nový objekt stránky:
\tconst page2 = wait newTarget.page();

Snímání snímku - Pomocí metody strana. Snímek obrazovky, byl pořízen snímek konkrétní stránky a uložen podle názvu souboru uvedeného jako argument.

wait page.screenshot({ cesta: 'screenshot1.png' });

Zavřít stránku a prohlížeč - Pomocí metody zavřítmůžeme zavřít webovou stránku i prohlížeč.

\tawait page.close(); \tawait browser.close();

Čekací doba - V určitých případech existuje požadavek čekat na načtení stránky nebo dokončení jakékoli závislé úlohy; musíme pozastavit provádění na předem definovaný čas. K tomu můžeme použít stránka.waitForTimeout metoda, která může pozastavit provádění na základě hodnoty (v mili-sekundách) předané argumentem.

čekat na stránku.waitForTimeout(2000);

Nyní jsme se dozvěděli o základních technických krocích k automatizaci našeho funkčního scénáře. Na základě těchto znalostí můžeme projít testovacím případem Puppeteer Automation níže. Podrobný přehled nejčastěji používaných tříd a metod bude vysvětlen v následujících příspěvcích.

/**
 * Vyhledávání @name na Amazonu
 */
const puppeteer = require('loutkář');
const reportPath = 'C:\\\\LambdaGeeks\\\\puppteer_proj_sample\\\\output\\\\';
const screenshot = 'screen1.png';
// Používá se k exportu souboru do souboru .docx
Snaž se {
  (async () => {
    const browser = wait puppeteer.launch({ headless: false });
    const pageNew = wait browser.newPage()
    wait pageNew.setViewport({ šířka: 1280, výška: 800 });
    wait pageNew.goto('https://www.amazon.in/');
\t//Zadejte vyhledávací kritéria
\tlet searchBox = wait page.waitForXPath("//*[@id='twotabsearchtextbox']",{ viditelné: true });
\tif (searchBox === null)
\t{
\t\tconsole.log('Obrazovka Amazonu se nezobrazuje');
\t}
\telse{\t\t
\t\tawait searchBox.type("Testovací kniha");
\t\tconsole.log('Vyhledávací kritéria byla zadána');
\t} \t\t
\t//Kliknutí na tlačítko hledání
\tlet btnSearch = wait pageNew.waitForXPath("//*/input[@id='nav-search-submit-button']",{ viditelné: true });
\tif (btnSearch === null)
\t{
\t\tconsole.log('Tlačítko Hledat se nezobrazuje');
\t}
\telse{
\t\tawait btnSearch.click();
\t\tconsole.log('Kliknutí na tlačítko hledání');
\t}\t
\t//Klikněte na konkrétní výsledek hledání
\tlet myBook = wait pageNew.waitForXPath("//*[contains(text(),'Selenium Testing Tools Cookbook Second Edition')]",{ viditelné: true })
\tif (myBook === null)
\t{
\t\tconsole.log('Kniha není dostupná');
\t}
\telse{
\t\tawait myBook.click();
\t\tconsole.log('Pro objednání klikněte na konkrétní knihu');
\t} \t
\t// Zjistěte, zda se otevřela nová karta
\tconst pageTarget = pageNew.target();
\tconst newTarget = wait browser.waitForTarget(target => target.opener() === pageTarget);
\t//získáte nový objekt stránky:
\tconst page2 = čekat na newTarget.pageNew();\t
\tawait page2.setViewport({ šířka: 1280, výška: 800 });
\t
\t//Přidat do košíku
\tlet addToCart = wait page2.waitForXPath("//*/input[@id='add-to-cart-button']",{ viditelné: true });
\tif (addToCart === null)
\t{
\t\tconsole.log('Tlačítko Přidat do košíku není dostupné');
\t}
\telse{
\t\tconsole.log('Klikněte na tlačítko přidat do košíku');
\t\tawait addToCart.click();\t\t
\t} \t\t
\t//Ověřte proces přidání do košíku\t
\tlet successMessage = wait page2.waitForXPath("//*[contains(text(),'Přidáno do košíku')]",{ viditelné: true });
\tif (successMessage === null)
\t{
\t\tconsole.log('Položka není přidána do košíku');
\t}
\telse{
\t\tconsole.log('Položka byla úspěšně přidána do košíku');\t\t
\t} \t\t
\t// Zachyťte číslo košíku
\tlet cartCount = wait page2.waitForXPath("//*/span[@id='nav-cart-count']",{ viditelné: true});
\tlet value = wait page2.evaluate(el => el.textContent, cartCount)
\tconsole.log('Počet košíku: ' + hodnota);
\tcartCount.focus();
\tawait page2.screenshot({ cesta: snímek obrazovky });
\t
\tawait pageNew.waitForTimeout(2000);
\twait page2.close();
\tawait pageNew.close();
    čekat browser.close();
  })()
} catch (chyba) {
  console.error(err)
}

Krok 5 # Provedení testu automatizace loutkáře:

Můžeme zahájit provádění pomocí příkazu uzel sample_script.js prostřednictvím příkazového řádku. Během provádění se otevře prohlížeč Chromium, který automaticky provede funkční kroky a uloží snímek obrazovky poslední stránky. Snímek obrazovky a výstup z konzoly budou vypadat níže.

Testování automatizace loutkářů - výstup z konzoly
Testování automatizace loutkářů - výstup z konzoly
Testování automatizace loutkářů - zachycená obrazovka
Testování automatizace loutkářů - zachycená obrazovka

Závěr:

V celém tomto výukovém programu pro testování automatizace loutkářů jsme se dozvěděli o podrobných krocích o testování automatizace loutkářů. V dalším tutoriálu Puppeteer se dozvíme podrobný přehled nejčastěji používaných tříd a metod loutkáře. prosím klikněte zde navštívit referenční portál pro tento tutoriál Puppeteer. 

Zanechat komentář