bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


nodejs_selenium

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
nodejs_selenium [2025/02/04 17:08]
enric_mieza_sanchez [Exercicis]
nodejs_selenium [2025/02/04 18:36] (actual)
enric_mieza_sanchez [Test 02 : login ok]
Línia 264: Línia 264:
 \\ \\
  
-==== Test 02 : formulari buit ====+==== Test 00 : formulari buit ====
  
 Aquest exemple testeja que si deixem buit el nom, ens surt un ''alert'' que ens avisa. Aquest exemple testeja que si deixem buit el nom, ens surt un ''alert'' que ens avisa.
  
-<file javascript 02-nom-buit.js>+<file javascript 00-nom-buit.js>
 // carreguem les llibreries // carreguem les llibreries
 const { BaseTest } = require("./BaseTest.js") const { BaseTest } = require("./BaseTest.js")
Línia 311: Línia 311:
 </file> </file>
  
 +
 +\\
 +
 +
 +==== Test 02 : login ok ====
 +
 +Testeja que podem logar-nos en un //admin panel// de [[Django]].
 +
 +<WRAP important>
 +És molt important **no deixar credencials en els arxius de codi** per raons òbvies.
 +
 +Per selventar aquest problema, aquest exemple utilitza la llibreria ''dotenv'' de NPM, pel què caldrà que la instal·lis:
 +
 +  $ npm install dotenv
 +
 +I crear un arxiu ''.env'' com aquest:
 +  URL=http://localhost:8000
 +  HEADLESS=false
 +  USUARI=el-meu-username
 +  CONTRASENYA=la-contrasenya-secreta
 +</WRAP>
 +
 +<file javascript 02-login-ok.js>
 +
 +// carreguem les llibreries
 +const { BaseTest } = require("./BaseTest.js")
 +const { By, until } = require("selenium-webdriver");
 +const assert = require('assert');
 +
 +//.env
 +require('dotenv').config()
 +console.log(process.env)
 +
 +class MyTest extends BaseTest
 +{
 +    async test() {
 +        // Login test
 +        //////////////////////////////////////////////////////
 +        var site = process.env.URL
 +        var driver = this.driver
 +        await driver.get(site+"/admin/login/");
 +
 +        // 1 cercar login box
 +        let usernameInput = await driver.wait(until.elementLocated(
 +                By.id('id_username')), 10000);
 +        let passwordInput = await driver.wait(until.elementLocated(
 +                By.id('id_password')), 10000);
 +
 +        // 2 posar usuari i pass
 +        usernameInput.sendKeys(process.env.USUARI)
 +        passwordInput.sendKeys(process.env.CONTRASENYA)
 +
 +        // 3 boto send .click()
 +        let sendButton = await driver.wait(until.elementLocated(
 +                By.css('input[value="Iniciar sessió"]')), 10000);
 +        sendButton.click()
 +
 +        // 4 comprovem que hem entrat
 +        let logoutButton = await driver.wait(until.elementLocated(
 +                By.xpath('//button[@type="submit"]')), 10000);
 +        var currentLogoutText = await logoutButton.getText();
 +        var expectedText = "FINALITZAR SESSIÓ";
 +        
 +        // assert verifica que es compleixin condicions concretes
 +        // si no es compleix, llançarà una excepció de test fallit
 +        assert( currentLogoutText==expectedText,
 +                "Login fallit.\n\tTEXT TROBAT="+currentLogoutText+"\n\tTEXT ESPERAT="+expectedText);
 +
 +        console.log("TEST OK");
 +    }
 +}
 +
 +// executem el test
 +
 +(async function test_example() {
 + const test = new MyTest();
 + await test.run();
 + console.log("END")
 +})();
 +</file>
  
 \\ \\
Línia 376: Línia 456:
 Crea els següents tests amb la web que t'ha proporcionat el professor: Crea els següents tests amb la web que t'ha proporcionat el professor:
   * 01 comprovar header h1   * 01 comprovar header h1
-  * 02 fer login amb l'usuari proporcionat+  * 02a fer login amb l'usuari proporcionat 
 +  * 02b intentar login amb usuari incorrecte (ha de refusar el login)
   * 03 entrar i crear un llibre amb el teu nom   * 03 entrar i crear un llibre amb el teu nom
   * 04 entrar i esborrar el llibre amb el teu nom.   * 04 entrar i esborrar el llibre amb el teu nom.
nodejs_selenium.1738688933.txt.gz · Darrera modificació: 2025/02/04 17:08 per enric_mieza_sanchez