Le Framework Basic Mobile IOS est un framework d'automation de test mobile basé sur Appium et TestNG, contenant Allure Report et qui s'exécute sur les devices et simulateurs IOS.
Si vous souhaitez tester une application mobile de préférence sur IOS
et Mac
.
🌟Si vous êtes TESTEUR AUTOMATICIEN
et que vous voulez apprendre à automatiser des tests fonctionnels.
🌟Si vous êtes un RECRUTEUR
pour évaluer les compétences de nos testeurs automaticiens talentueux.
🌟 Ou encore si vous êtes un PARTICULIER
ou une ENTREPRISE
à la recherche de solution répondant à vos besoins d'automatisation en test alors ce framework est fait pour vous!
🎁 Ce framework permet d'exécuter vos tests en séquentiel sur le périphérique IOS de votre choix, que ce soit un device physique ou un simulateur IOS et également sur la plateforme Mac.
🎁 Vous pouvez consulter un rapport détaillé des tests avec Allure report.
🏷️Architecture et Présentation du framework
🏷️Technologies et outils utilisés
🏷️Fonctionnalités
🏷️Environnement de développement
🏷️Installation du framework
🏷️Pré-requis
🏷️Exécution du framework
🏷️Reporting
🏷️Mise à jour et adaptation du Framework
🏷️Déboggage et Maintenance
📦framework-basic-mobile-ios
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂resources
┃ ┃ ┃ ┗ 📜config.properties
┃ ┣ 📂test
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┣📂FrameworkSimpleIos
┃ ┃ ┃ ┃ ┣ 📂base
┃ ┃ ┃ ┃ ┃ ┗ 📜BaseTest.java
┃ ┃ ┃ ┃ ┣ 📂pages
┃ ┃ ┃ ┃ ┃ ┗ 📜LoginPage.java
┃ ┃ ┃ ┃ ┃ ┗ 📜MenuPage.java
┃ ┃ ┃ ┃ ┃ ┗ 📜ProductPage.java
┃ ┃ ┃ ┃ ┃ ┗ 📜SettingsPage.java
┃ ┃ ┃ ┃ ┃ ┣ 📂tests
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoginTests.java
┃ ┃ ┃ ┃ ┃ ┣ 📂utils
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TestUtils.java
┃ ┃ ┣ 📂resources
┃ ┃ ┃ ┃ ┣ 📂app
┃ ┃ ┃ ┃ ┃ ┗ 📑app.MyRNDemoApp.app
┃ ┃ ┃ ┃ ┣ 📂data
┃ ┃ ┃ ┃ ┃ ┗ 📑loginUsers.json
┃ ┃ ┃ ┃ ┣ 📂strings
┃ ┃ ┃ ┃ ┃ ┗ 📑strings.xml
┃ ┃ ┃ ┃ ┗ 📑allure.properties
┃ ┃ ┣ 📂Test-output
┃ ┃ ┃ ┗ 📂allure-report
┃ ┃ ┃ ┗ 📂allure-results
┣ 📑pom.xml
┣ 📑README.md
┣ 📑testng.xml
➡️IntelliJ - IDE
➡️Appium - Mobile Automation library
➡️Maven - Build automation tool
➡️Java - Programming language
➡️TestNG - Unit testing framework
➡️Allure Reports - Reporting framework
✅ Abstraction layer pour les intérations UI (click, sendkeys, ...)
✅ Paramétrisation par les fichier TestNG XML et config.properties
✅ Abstraction layer pour les jeux de données
✅ Abstraction layer pour les textes statiques
✅ Exécution sur devices physiques (et/ou Simulateur )iOS
✅ Démarrage automatique programmé du serveur Appium
Logiciel | version | Description | Macbook |
---|---|---|---|
Java JDK | JAVA 11 | Dowloadable here | X |
Android SDK via Android studio | current available | Dowloadable here | X |
Node.js | 18.15.0 | Dowloadable here | X |
npm | 9.5.0 | Downloaded with node.js | X |
appium | 2.0.0-beta.59 | terminal: npm install -g appium@next | X |
appium client (wd) | current available | terminal: npm install wd | X |
Carthage | - | terminal: brew install carthage | X |
libimobiledevice | current available | terminal : brew install libimobiledevice | X |
Xcode | - | Downloadable via App Store | X |
Authorize-ios | current available | terminal : npm install authorize-ios | X |
ios-deploy | current available | terminal : npm install ios-deploy | X |
ideviceinstaller | current available | terminal : npm install ideviceinstaller | X |
maven | 3.8.6 | terminal : brew install maven | X |
🟥 NB: POUR EXÉCUTER CE FRAMEWORK, VOUS DEVEZ AVOIR UNE BONNE CONNEXION INTERNET !
-
Devices
- 📌Device physique
Pré-requis Obligatoire Mode développeur activé sur le device x Débogage usb activé x Connexion internet activée x Device déverouillé x Device connecté au poste via usb x - 📌Simulateur :
- Le simulateur doit être lancé et en bon état de marche
-
Remplir les informations concernant le device utilisé pour les tests automatisés
Les informations concernant les caractéristiques du device sont a modifier dans le fichier config.properties (path_du_repertoire_du_framework/src/main/resources/config.properties)- Mettre a jour le paramètre platformName
- Mettre a jour le paramètre udid: Il est récupérable depuis le terminal (Le device doit etre connecté a l'ordinateur(device physique) ou démarré (device virtuel))
# Terminal xcrun simctl list
- Mettre la jour la variable emulator:
- True (Simulator)
- False (Real device)
-
Depuis l'IDE:
Depuis un éditeur de code, lancer l'exécution du fichier testng.xml -
Depuis la CLI (Command Line Interface = invite de commandes):
Commandes a exécuter depuis un terminal:
cd project_repository
mvn clean test
Les différents rapports et artefacts resultants de l'exécution des tests seront disponnibles dans le dossier:
- test-output/allure-report
-
Ajouter la(les) nouvelle(s) application(s) dans le dossier apps (chemin d'accès: src/test/resources/apps)
-
Mettre a jour les informations de l'application dans le fichier config.properties(chemin d'accès: src/main/resources/config.properties)
Variable value AppLocation app_path BundleId apk_BundleId udid apk_package_name
La redaction des tests se fera dans le dossier tests (chemin d'accès: src/test/FrameworkSimpleIos/tests ) grâce au page Object Design pattern. Les pages du Page OBject Design pattern seront ,quand à elles , définies dans le dossier pages (chemin d'accès: src/test/java/FrameworkSimpleAndroid/pages)
- Erreur suite à une tentative de Build module : Vérifier que l'environnement de travail et l'IDE sont bien paramétrés pour Java 11
- Erreur suite à une tentative de maven compile : Vérifier que l'environnement de travail et l'IDE sont bien paramétrés pour Java 11
- Dépendances: Régulièrement vérifier le fichier pom.xml pour s'assurer que les dependances sont a jour, si non les mettre a jour. Site de téléchargement des dépendances maven : https://mvnrepository.com