(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Bonjour,
Je peine depuis plus de 3 semaines à trouver le moyen de tester en SQUASH_TA DSL que l'on obtient bien le message "Votre login ou mot de passe est invalide !"
J'ai essayé :
ASSERT _temp.result IS contain $(Votre login ou mot de passe est invalide !)
_temp.result est issu de exemples dont je me suis servi dans les exemple du site squashtest.
Par avance, merci pour votre aide.
Je peine depuis plus de 3 semaines à trouver le moyen de tester en SQUASH_TA DSL que l'on obtient bien le message "Votre login ou mot de passe est invalide !"
J'ai essayé :
ASSERT _temp.result IS contain $(Votre login ou mot de passe est invalide !)
_temp.result est issu de exemples dont je me suis servi dans les exemple du site squashtest.
Par avance, merci pour votre aide.
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Bonjour,
Pouvez-vous m'indiquer de quel exemple vous vous êtes inspiré ?
Mais encore, quel est votre projet?
J'ai l'impression que vous tentez de faire un test d'application web via le DSL SquashTA. Si tel est le cas, sachez que ceci n'est pas le rôle du DSL, mais des plugins (Sahi ou Selenium) intégrés à Squash TA.
Il vous faudra alors utiliser les macro-commandes (shortcuts) Selenium et sahi directement dans vos test.ta (executer un script de test automatisé qui contiendrait l'assertion de vérification du message d'erreur)
voici deux tutos qui pourraient vous aider :
1/ Sahi : https://sites.google.com/a/henix.fr/wik ... a-and-sahi
2/ Selenium : https://sites.google.com/a/henix.fr/wik ... d-selenium
Bon week-end,
Quentin
Pouvez-vous m'indiquer de quel exemple vous vous êtes inspiré ?
Mais encore, quel est votre projet?
J'ai l'impression que vous tentez de faire un test d'application web via le DSL SquashTA. Si tel est le cas, sachez que ceci n'est pas le rôle du DSL, mais des plugins (Sahi ou Selenium) intégrés à Squash TA.
Il vous faudra alors utiliser les macro-commandes (shortcuts) Selenium et sahi directement dans vos test.ta (executer un script de test automatisé qui contiendrait l'assertion de vérification du message d'erreur)
voici deux tutos qui pourraient vous aider :
1/ Sahi : https://sites.google.com/a/henix.fr/wik ... a-and-sahi
2/ Selenium : https://sites.google.com/a/henix.fr/wik ... d-selenium
Bon week-end,
Quentin
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Bonjour Monsieur Quentin,
D'abord merci pour votre message.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Etape A :
Je me suis inspiré au départ -effectivement- de votre exemple :
2/ Selenium : sites.google.com/a/henix.fr/wiki-squash-...uash-ta-and-selenium
Puis, du fait que je réalisais, que je me dirigeais vers une voie peut-être sans issue,
(Puisque vraisemblablement, dans cet exemple du tutorial 3,
nous avons le sentiment que -pour le "rejouage" de la capture de la partie web-, il ne fait que rejouer sans vraiment tester des valeurs ou message d’erreurs IHM attendus -sauf mal vu de ma part- ).
~~~~~~~~~~~~~~~
Or, mon étude de faisabilité et d'évaluation de la gamme "SQUASH" se demandait :
Si le Produit évalué(toujours SQUASH TA ici) était en capacité
1 de récupérer les message d'erreur IHM attendus
2 de comparer le message d'erreur IHM attendue avec le message d'erreur "trappé" obtenu
3 de déclarer OK (Vert, test réussi), de déclarer KO (rouge, test échoué obtenu "Votre user ou mot de passe est incorect" au lieu de "Votre login ou mot de passe est invalide !")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Etape B :
Puis je me suis dirigé vers cette exemple qui test vraisemblablement des mots clef attendus au travers d'un command.bat propageant en sorti deux séries de phrases :
https://sites.google.com/a/henix.fr/wik ... --commands
Mais non approprié (effectivement, exemple DSL pas conçu pour aider à gérer et trapper de la sortie texte d' IHM/Web.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Le projet est une étude de faisabilité sur la capacité de la gamme SQUASH en fonctionnel (métier) tests Management dans le contexte de pouvoir rejouer automatiquement et quotidiennement une batterie de test fonctionnels sur des applications WEB Java, WEB Javascript ou autre, WEB PHP, bref tout ce qui est IHM Web sur poste de travail PC.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ceci nous permettra de mettre en valeur le produit avec la suite qui s'en suit dans la force de proposition auprès des clients.
Mais pour cela, nous devons en avoir une certaine maitrise et l'étudier sur les critères attendu.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dans un premier temps, nous n'attendons pas la gamme SQUASH TEST au niveau de la performance, mais sur la puissance IHM voire dans un deuxième temps introspective à vérifier la fiabilité des composants logiciels associés à l'IHM (BDD, MQ systemes, ESB, LDAP,....).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Si vous pouvez nous aider à évaluer le produit avec ou sans DSL sur la faisabilité suivante :
1 de récupérer les message d'erreur IHM attendus
2 de comparer le message d'erreur IHM attendue avec le message d'erreur "trappé" obtenu
3 de déclarer OK (Vert, test réussi
obtenu
"Votre login ou mot de passe est invalide !"
attendu
"Votre login ou mot de passe est invalide !")
4 Ou de déclarer KO (rouge, test échoué
obtenu
"Votre user ou mot de passe est incorrect"
attendu
"Votre login ou mot de passe est invalide !")
Agréez, Monsieur, mes sincères salutations.
Maurice Olivier BERDAH
Etude, Ban de tests et Qualification
D'abord merci pour votre message.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Etape A :
Je me suis inspiré au départ -effectivement- de votre exemple :
2/ Selenium : sites.google.com/a/henix.fr/wiki-squash-...uash-ta-and-selenium
Puis, du fait que je réalisais, que je me dirigeais vers une voie peut-être sans issue,
(Puisque vraisemblablement, dans cet exemple du tutorial 3,
nous avons le sentiment que -pour le "rejouage" de la capture de la partie web-, il ne fait que rejouer sans vraiment tester des valeurs ou message d’erreurs IHM attendus -sauf mal vu de ma part- ).
~~~~~~~~~~~~~~~
Or, mon étude de faisabilité et d'évaluation de la gamme "SQUASH" se demandait :
Si le Produit évalué(toujours SQUASH TA ici) était en capacité
1 de récupérer les message d'erreur IHM attendus
2 de comparer le message d'erreur IHM attendue avec le message d'erreur "trappé" obtenu
3 de déclarer OK (Vert, test réussi), de déclarer KO (rouge, test échoué obtenu "Votre user ou mot de passe est incorect" au lieu de "Votre login ou mot de passe est invalide !")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Etape B :
Puis je me suis dirigé vers cette exemple qui test vraisemblablement des mots clef attendus au travers d'un command.bat propageant en sorti deux séries de phrases :
https://sites.google.com/a/henix.fr/wik ... --commands
Mais non approprié (effectivement, exemple DSL pas conçu pour aider à gérer et trapper de la sortie texte d' IHM/Web.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Le projet est une étude de faisabilité sur la capacité de la gamme SQUASH en fonctionnel (métier) tests Management dans le contexte de pouvoir rejouer automatiquement et quotidiennement une batterie de test fonctionnels sur des applications WEB Java, WEB Javascript ou autre, WEB PHP, bref tout ce qui est IHM Web sur poste de travail PC.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ceci nous permettra de mettre en valeur le produit avec la suite qui s'en suit dans la force de proposition auprès des clients.
Mais pour cela, nous devons en avoir une certaine maitrise et l'étudier sur les critères attendu.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dans un premier temps, nous n'attendons pas la gamme SQUASH TEST au niveau de la performance, mais sur la puissance IHM voire dans un deuxième temps introspective à vérifier la fiabilité des composants logiciels associés à l'IHM (BDD, MQ systemes, ESB, LDAP,....).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Si vous pouvez nous aider à évaluer le produit avec ou sans DSL sur la faisabilité suivante :
1 de récupérer les message d'erreur IHM attendus
2 de comparer le message d'erreur IHM attendue avec le message d'erreur "trappé" obtenu
3 de déclarer OK (Vert, test réussi
obtenu
"Votre login ou mot de passe est invalide !"
attendu
"Votre login ou mot de passe est invalide !")
4 Ou de déclarer KO (rouge, test échoué
obtenu
"Votre user ou mot de passe est incorrect"
attendu
"Votre login ou mot de passe est invalide !")
Agréez, Monsieur, mes sincères salutations.
Maurice Olivier BERDAH
Etude, Ban de tests et Qualification
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Rebonjour Monsieur,
Pour plus de précision, Voici ce que j'ai utilisé :
L'appelé C_EUGENA_MDP_KO.java =>
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxProfile;
import java.io.File;
public class C_EUGENA_MDP_KO {
private FirefoxBinary binary = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
private FirefoxProfile profile = new FirefoxProfile();
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver(binary,profile);
baseUrl = "https://www.eugena.fr";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void Logintest() throws Exception {
driver.get(baseUrl);
driver.findElement(By.cssSelector("button.navbar-toggle")).click();
driver.findElement(By.id("extranet")).click();
driver.findElement(By.name("username")).clear();
driver.findElement(By.name("username")).sendKeys("mon_nom_de_login");
driver.findElement(By.name("password")).clear();
driver.findElement(By.name("password")).sendKeys("mauvais_mot_@_de_passe_##@");
driver.findElement(By.name("submit")).click();
}
@After
public void tearDown() throws Exception {
// driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
____________________________________________________________________________________________
Et l'appeleur :
C_EUGENA_MDP_OK.ta
SETUP :
LOAD selenium AS _temp.file
CONVERT _temp.file TO script.java(compile) AS _temp.compiled
CONVERT _temp.compiled TO script.java.selenium2(script) USING $(C_EUGENA_MDP_OK) AS _temp.selenium
TEST :
EXECUTE execute WITH _temp.selenium AS _temp.result
ASSERT _temp.result IS success
TEARDOWN :
______________________________________________________________________
Bien à vous.
Pour plus de précision, Voici ce que j'ai utilisé :
L'appelé C_EUGENA_MDP_KO.java =>
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxProfile;
import java.io.File;
public class C_EUGENA_MDP_KO {
private FirefoxBinary binary = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
private FirefoxProfile profile = new FirefoxProfile();
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver(binary,profile);
baseUrl = "https://www.eugena.fr";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void Logintest() throws Exception {
driver.get(baseUrl);
driver.findElement(By.cssSelector("button.navbar-toggle")).click();
driver.findElement(By.id("extranet")).click();
driver.findElement(By.name("username")).clear();
driver.findElement(By.name("username")).sendKeys("mon_nom_de_login");
driver.findElement(By.name("password")).clear();
driver.findElement(By.name("password")).sendKeys("mauvais_mot_@_de_passe_##@");
driver.findElement(By.name("submit")).click();
}
@After
public void tearDown() throws Exception {
// driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
____________________________________________________________________________________________
Et l'appeleur :
C_EUGENA_MDP_OK.ta
SETUP :
LOAD selenium AS _temp.file
CONVERT _temp.file TO script.java(compile) AS _temp.compiled
CONVERT _temp.compiled TO script.java.selenium2(script) USING $(C_EUGENA_MDP_OK) AS _temp.selenium
TEST :
EXECUTE execute WITH _temp.selenium AS _temp.result
ASSERT _temp.result IS success
TEARDOWN :
______________________________________________________________________
Bien à vous.
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Bonjour M. Berdah,
Effectivement votre projet est parfaitement réalisable avec Squash TA. Selon les compétences de vos équipes, vous pourriez utiliser les solutions Selenium ou Sahi pour l'écriture de vos scripts automatisés, et l'utilisation du framework Squash TA vous permettrait la gestion de vos environnements de tests ainsi que la maîtrise de vos jeux de données (en entrée et sortie de test). Enfin, Squash TA vous fournirait un rapport post-exécution avec en vert les tests OK ; en rouge les tests KO.
Je vois que vous avez opté pour Selenium. Mais l'écriture de votre script de test ne me paraît pas correct. Sachez que vous pouvez réaliser vos assertions directement dans votre code java (de préférence dans une seule et même méthode du @test. (ex d'assertion : assertEquals(alert.getText(), "Votre login ou mot de passe est invalide !").
Pour ce qui est de votre script .ta. Il existe des macro-commandes pour l'exécution de script sélénium. Je vous propose celle-ci :
TEST :
# EXECUTE_SELENIUM2 {votre_repertoire_de_scripts_java} WITH MAIN CLASS C_EUGENA_MDP_KO.java
Dans le cadre du support en ligne, je ne peux malheureusement pas rédiger le cas de test pour vous, ni réaliser votre étude d'opportunité.
Néanmoins, pour l'organisation d'un POC ou l'inscription à une formation Squash TA et Selenium, je vous invite à contacter nos équipes dédiées : contact@squashtest.com
Très cordialement,
Quentin.
Effectivement votre projet est parfaitement réalisable avec Squash TA. Selon les compétences de vos équipes, vous pourriez utiliser les solutions Selenium ou Sahi pour l'écriture de vos scripts automatisés, et l'utilisation du framework Squash TA vous permettrait la gestion de vos environnements de tests ainsi que la maîtrise de vos jeux de données (en entrée et sortie de test). Enfin, Squash TA vous fournirait un rapport post-exécution avec en vert les tests OK ; en rouge les tests KO.
Je vois que vous avez opté pour Selenium. Mais l'écriture de votre script de test ne me paraît pas correct. Sachez que vous pouvez réaliser vos assertions directement dans votre code java (de préférence dans une seule et même méthode du @test. (ex d'assertion : assertEquals(alert.getText(), "Votre login ou mot de passe est invalide !").
Pour ce qui est de votre script .ta. Il existe des macro-commandes pour l'exécution de script sélénium. Je vous propose celle-ci :
TEST :
# EXECUTE_SELENIUM2 {votre_repertoire_de_scripts_java} WITH MAIN CLASS C_EUGENA_MDP_KO.java
Dans le cadre du support en ligne, je ne peux malheureusement pas rédiger le cas de test pour vous, ni réaliser votre étude d'opportunité.
Néanmoins, pour l'organisation d'un POC ou l'inscription à une formation Squash TA et Selenium, je vous invite à contacter nos équipes dédiées : contact@squashtest.com
Très cordialement,
Quentin.
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Rebonjour Monsieur Quentin,
Je vous remercie pour votre retour.
Mais le rapport considère :
Que bien que le test se soit déroulé à 100%, eh bien, le rapport ne déclare voir aucune Failures ou Errors.
Pourtant, J'ai effectivement essayé la phylosophie du code que vous me suggérez, par exemple comme suit, mais pour SQUASH pas moyen d'y faire, le test est vu comme "Successes".
Outre cela, je n'ai aucun moyen sous l'IDE Eclipse Oxygen de valider mon code puisque l'artefact semble inhiber l’assistance automatique au code (que l'on a chez Eclipse avec ctrl + espace par exemple pour proposer les méthodes d'un objet (Je suis en en vol à vue (comme dans les années 90 :P :
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxProfile;
import java.io.File;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class C_RATP_MDP_KO {
private FirefoxBinary binary = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
private FirefoxProfile profile = new FirefoxProfile();
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver(binary,profile);
baseUrl = "https://monsite:8185/login";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void Logintest() throws Exception {
String expectedStr = "XXXXXX_MESSAGE_D_ERREUR_BIDON_XXXXX";
System.out.println("AAAA DEBUT AAAA");
System.out.println("AAAAA expecteStr=[" + expecteStr + "]");
driver.get(baseUrl);
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("JESSICA");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("bidon$");
driver.findElement(By.id("submitButton")).click();
driver.findElement(By.name("submit")).click();
Alert alert = driver.switchTo().alert();
WebElement wm_element=driver.findElement(By.className("alert alert-danger"));
System.out.println("AAAAA [" + wm_element + "]");
[b]assertEquals(expectedStr,wm_element);[/b]
}
@After
public void tearDown() throws Exception {
driver.quit();
System.out.println("AAAA FIN AAAA");
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
Je vous remercie pour votre retour.
Mais le rapport considère :
Que bien que le test se soit déroulé à 100%, eh bien, le rapport ne déclare voir aucune Failures ou Errors.
Pourtant, J'ai effectivement essayé la phylosophie du code que vous me suggérez, par exemple comme suit, mais pour SQUASH pas moyen d'y faire, le test est vu comme "Successes".
Outre cela, je n'ai aucun moyen sous l'IDE Eclipse Oxygen de valider mon code puisque l'artefact semble inhiber l’assistance automatique au code (que l'on a chez Eclipse avec ctrl + espace par exemple pour proposer les méthodes d'un objet (Je suis en en vol à vue (comme dans les années 90 :P :
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxProfile;
import java.io.File;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class C_RATP_MDP_KO {
private FirefoxBinary binary = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
private FirefoxProfile profile = new FirefoxProfile();
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver(binary,profile);
baseUrl = "https://monsite:8185/login";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void Logintest() throws Exception {
String expectedStr = "XXXXXX_MESSAGE_D_ERREUR_BIDON_XXXXX";
System.out.println("AAAA DEBUT AAAA");
System.out.println("AAAAA expecteStr=[" + expecteStr + "]");
driver.get(baseUrl);
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("JESSICA");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("bidon$");
driver.findElement(By.id("submitButton")).click();
driver.findElement(By.name("submit")).click();
Alert alert = driver.switchTo().alert();
WebElement wm_element=driver.findElement(By.className("alert alert-danger"));
System.out.println("AAAAA [" + wm_element + "]");
[b]assertEquals(expectedStr,wm_element);[/b]
}
@After
public void tearDown() throws Exception {
driver.quit();
System.out.println("AAAA FIN AAAA");
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
- Pièces jointes
-
- SQUASH_Rapport.png (280.67 Kio) Consulté 3585 fois
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
C'est à dire :
Que je veux déclencher une failure ou erreur (que m'importe, mais surtout lui faire constater que le message attendu :
XXXXXX_MESSAGE_D_ERREUR_BIDON_XXXXX
n'est pas celui affiché par le site/application web :
"Informations d'identification fournies non valides"
Agrèez mes cordiales salutations.
Que je veux déclencher une failure ou erreur (que m'importe, mais surtout lui faire constater que le message attendu :
XXXXXX_MESSAGE_D_ERREUR_BIDON_XXXXX
n'est pas celui affiché par le site/application web :
"Informations d'identification fournies non valides"
Agrèez mes cordiales salutations.
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Rebonjour,
Voici le code qui a su extraire le message d'erreur :
Le System.out.println("@AFTER AAAAA sTEXTEALERT=[" + sTEXTEALERT + "]"); renvoit bien dans la console Eclipse/Oxygen :
@AFTER AAAAA sTEXTEALERT=[Informations d'identification fournies non valides]
Mais, le rapport SQUASH dit toujours qu'il ne voit pas d'erreur fonctionnelle (failures ou errors).
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxProfile;
import java.io.File;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class C_RATP_MDP_KO {
private FirefoxBinary binary = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
private FirefoxProfile profile = new FirefoxProfile();
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver(binary,profile);
baseUrl = "https://monsite:8183/login";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void Logintest() throws Exception {
// String expectedStr = "Informations d'identification fournies non valides";
String expectedStr = "@TEST XXXXXX_MESSAGE_D_ERREUR_BIDON_XXXXX";
System.out.println("@TEST AAAA DEBUT AAAA");
System.out.println("@TEST AAAAA expectedStr=[" + expectedStr + "]");
// log.info("XXXX");
driver.get(baseUrl);
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("ANAIS");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("bidon$");
driver.findElement(By.id("submitButton")).click();
driver.findElement(By.name("submit")).click();
WebElement wm_element=driver.findElement(By.className("alert-danger"));
String sTEXTEALERT=wm_element.getText();
System.out.println("@TEST AAAAA sTEXTEALERT=[" + sTEXTEALERT + "]");
assertEquals(expectedStr,sTEXTEALERT);
// Assert.assertTrue(wm_element.contains(expectedStr));
}
@After
public void tearDown() throws Exception {
// String expectedStr = "Informations d'identification fournies non valides";
String expectedStr = "XXXAFTERXXX_MESSAGE_D_ERREUR_BIDON_XXXXX";
System.out.println("@AFTER XXXXX DEBUT AAAA");
System.out.println("@AFTER XXXXX expectedStr=[" + expectedStr + "]");
WebElement wm_element=driver.findElement(By.className("alert-danger"));
String sTEXTEALERT=wm_element.getText();
System.out.println("@AFTER AAAAA sTEXTEALERT=[" + sTEXTEALERT + "]");
assertEquals(expectedStr,sTEXTEALERT);
// Assert.assertTrue(wm_element.contains(expectedStr));
driver.quit();
System.out.println("@AFTER XXXAXX FIN AAAA");
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
Voici le code qui a su extraire le message d'erreur :
Le System.out.println("@AFTER AAAAA sTEXTEALERT=[" + sTEXTEALERT + "]"); renvoit bien dans la console Eclipse/Oxygen :
@AFTER AAAAA sTEXTEALERT=[Informations d'identification fournies non valides]
Mais, le rapport SQUASH dit toujours qu'il ne voit pas d'erreur fonctionnelle (failures ou errors).
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxProfile;
import java.io.File;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class C_RATP_MDP_KO {
private FirefoxBinary binary = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
private FirefoxProfile profile = new FirefoxProfile();
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver(binary,profile);
baseUrl = "https://monsite:8183/login";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void Logintest() throws Exception {
// String expectedStr = "Informations d'identification fournies non valides";
String expectedStr = "@TEST XXXXXX_MESSAGE_D_ERREUR_BIDON_XXXXX";
System.out.println("@TEST AAAA DEBUT AAAA");
System.out.println("@TEST AAAAA expectedStr=[" + expectedStr + "]");
// log.info("XXXX");
driver.get(baseUrl);
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("ANAIS");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("bidon$");
driver.findElement(By.id("submitButton")).click();
driver.findElement(By.name("submit")).click();
WebElement wm_element=driver.findElement(By.className("alert-danger"));
String sTEXTEALERT=wm_element.getText();
System.out.println("@TEST AAAAA sTEXTEALERT=[" + sTEXTEALERT + "]");
assertEquals(expectedStr,sTEXTEALERT);
// Assert.assertTrue(wm_element.contains(expectedStr));
}
@After
public void tearDown() throws Exception {
// String expectedStr = "Informations d'identification fournies non valides";
String expectedStr = "XXXAFTERXXX_MESSAGE_D_ERREUR_BIDON_XXXXX";
System.out.println("@AFTER XXXXX DEBUT AAAA");
System.out.println("@AFTER XXXXX expectedStr=[" + expectedStr + "]");
WebElement wm_element=driver.findElement(By.className("alert-danger"));
String sTEXTEALERT=wm_element.getText();
System.out.println("@AFTER AAAAA sTEXTEALERT=[" + sTEXTEALERT + "]");
assertEquals(expectedStr,sTEXTEALERT);
// Assert.assertTrue(wm_element.contains(expectedStr));
driver.quit();
System.out.println("@AFTER XXXAXX FIN AAAA");
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Bonjour,
Pouvez-vous m'envoyer les configurations de build maven que vous utiliser pour le "run"?
Quentin
Pouvez-vous m'envoyer les configurations de build maven que vous utiliser pour le "run"?
Quentin
(SQUASH_TA).Comment tester "Votre login ou mot de passe est invalide !"
Rebonjour Monsieur Quentin,
Ci-joint le pom.xml.
Merci !
Cordialement
Maurice Olivier
Ci-joint le pom.xml.
Merci !
Cordialement
Maurice Olivier
- Pièces jointes
-
- C_MONJAVA.txt
- (3.94 Kio) Téléchargé 160 fois