Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
nodejs_selenium [2025/02/04 17:10] 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 '' | Aquest exemple testeja que si deixem buit el nom, ens surt un '' | ||
| - | <file javascript | + | <file javascript |
| // carreguem les llibreries | // carreguem les llibreries | ||
| const { BaseTest } = require(" | const { BaseTest } = require(" | ||
| Línia 311: | Línia 311: | ||
| </ | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | |||
| + | ==== 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 '' | ||
| + | |||
| + | $ npm install dotenv | ||
| + | |||
| + | I crear un arxiu '' | ||
| + | URL=http:// | ||
| + | HEADLESS=false | ||
| + | USUARI=el-meu-username | ||
| + | CONTRASENYA=la-contrasenya-secreta | ||
| + | </ | ||
| + | |||
| + | <file javascript 02-login-ok.js> | ||
| + | |||
| + | // carreguem les llibreries | ||
| + | const { BaseTest } = require(" | ||
| + | const { By, until } = require(" | ||
| + | const assert = require(' | ||
| + | |||
| + | //.env | ||
| + | require(' | ||
| + | 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+"/ | ||
| + | |||
| + | // 1 cercar login box | ||
| + | let usernameInput = await driver.wait(until.elementLocated( | ||
| + | By.id(' | ||
| + | let passwordInput = await driver.wait(until.elementLocated( | ||
| + | By.id(' | ||
| + | |||
| + | // 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(' | ||
| + | sendButton.click() | ||
| + | |||
| + | // 4 comprovem que hem entrat | ||
| + | let logoutButton = await driver.wait(until.elementLocated( | ||
| + | By.xpath('// | ||
| + | var currentLogoutText = await logoutButton.getText(); | ||
| + | var expectedText = " | ||
| + | | ||
| + | // 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=" | ||
| + | |||
| + | console.log(" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // executem el test | ||
| + | |||
| + | (async function test_example() { | ||
| + | const test = new MyTest(); | ||
| + | await test.run(); | ||
| + | console.log(" | ||
| + | })(); | ||
| + | </ | ||
| \\ | \\ | ||