Contenu : guide
-
- avant-propos
- 1. De l'entrée à la maîtrise de la programmation Python
- 2. Combat réel du projet d'automatisation de l'interface
- 3. Combat réel du projet d'automatisation Web
- 4. Combat réel du projet d'automatisation des applications
- 5. CV des fabricants de premier rang
- 6. Tester et développer le système DevOps
- 7. Outils de test automatisés couramment utilisés
- Huit, test de performance JMeter
- 9. Résumé (petite surprise à la fin)
avant-propos
Solution de test automatisé au sélénium
Solution de base :
utiliser unittest, principalement TestCase (cas de test );
utiliser la modularisation (modularisation de base, extraction de modules communs) ;
utiliser des méthodes basées sur les données (comprenant principalement des formulaires de base de données et la lecture de fichiers) ;
Personnalisez les cas d'utilisation qui doivent être testés, utilisez unittest, utilisez principalement TestSuite (suite de tests) et TextTestRunner (testeur de texte) [ou HTMLTestRunner]
Générer un rapport de test (envoyer le rapport à la boîte aux lettres spécifiée)
La mise en œuvre concrète du plan
Utilisez PyCharm pour créer un nouveau projet PurePython
Créez le dossier suivant (paquet python) dans le projet
TestCase
Data
Common
TestRunner
Report
Implémentez les modules ci-dessus respectivement
Stockez les données dans les données, les fichiers CSV, ou mettez-les dans les données, utilisez le lecteur de données
## 使用csv文件
csv.reader()
## 使用数据库(MySQL),可以参考www.imooc.com的python操作MySQL的视频
cur.fetchall()
En commun, créez un module commun de test pour réaliser des opérations modulaires
## __init__(self, driver: webdriver.Firefox, base_url)
self.common = RanzhiCommon(self.driver, self.base_url)
Créez des cas de test automatisés dans TestCase, faites attention à utiliser unittest.TestCase
def setUp()
def tearDown()
det test_xxx()
Créez des exécuteurs de tests et des suites de tests dans TestRunner, en utilisant unittest.TestSuite et HTMLTestRunner (tierce partie)
test_suite = unittest.TestSuite()
test_suite.addTest(RanzhiLogonTc01("test_xxx"))
html_test_runner = HTMLTestRunner(stream=report_file, title="xxx", description="dddd)
html_test_runner.run(test_suite)
Créez main.py dans le répertoire racine du projet comme entrée principale du projet de test et exécutez le test.
Vérifier le rapport de test
Problèmes possibles avec Selenium
<iframe>
cadre
f1 = find_element_by_css_selector(frame)
switch_to.frame(f1)
<select>
boîte déroulante
s1 = find_element_by_css_selector(select)
ss1 = Select(s1)
ss1.select_by_index(0)
ss1.select_by_value("人事部")
Problème d'encodage utf-8
problème de temps d'attente sleep(5)
cadre de test unitaire
Test de l'unité
unittest.TestCase étapes du processus de test de nettoyage
des conditions préalables assert assertEqual (valeur attendue, résultat réel, message d'erreur)
Exécutez la méthode qui commence par test_
unittest.TestSuite
addTest(xxx("test_batch_login"))
Ajouter des cas de test personnalisés et exécuter
unittest.TextTestRunner
run(suite)
Exécuter les suites de tests créées et maintenues
test_runner test_suite test_case
Scénarios de test de la suite de tests de l'exécuteur de tests
Opération modulaire :
pratique orientée objet :
écrire une classe, qui décrit des méthodes publiques,
instancier cette classe, appeler la méthode de cette classe ;
Le constructeur de la classe doit passer webdriver.Firefox()
self.common = RanzhiCommon(self.browser, self.base_url)
Test basé sur les données :
lisez csv, bouclez chaque ligne de données à exploiter,
lisez MySQL et enregistrez le cas d'utilisation dans MySQL
Problème d'encodage chinois
# coding="utf-8"
Lors de la lecture de csv, ajoutez encoding='utf-8'
csv.reader(open("xxx.csv", "r", –1, encoding="utf-8")
Boucle vers la couche la plus externe
Le problème selon lequel le chemin du fichier ne peut pas être lu dans la console doit utiliser un chemin absolu pour pointer vers le fichier.
Éviter la menace de code tiers et empêcher la modification massive
des cas de test Économiser les coûts de main-d'œuvre (s'il est packagé, chaque ingénieur de test automatisé n'a pas besoin de connaître WebDriver)
Standardiser le fonctionnement des cas d'utilisation automatisés, il suffit d'appeler des modules standard publics .
Ce qui suit est le diagramme de système d'architecture de connaissances d'ingénieur de test logiciel le plus complet en 2023 que j'ai compilé |
1. De l'entrée à la maîtrise de la programmation Python
2. Combat réel du projet d'automatisation de l'interface
3. Combat réel du projet d'automatisation Web
4. Combat réel du projet d'automatisation des applications
5. CV des fabricants de premier rang
6. Tester et développer le système DevOps
7. Outils de test automatisés couramment utilisés
Huit, test de performance JMeter
9. Résumé (petite surprise à la fin)
Si vous voulez atteindre le sommet de la vie, ne laissez pas la paresse et la peur devenir des obstacles ! Mettez de côté vos doutes, lâchez vos chaînes et faites un pas courageux en avant. Ce n'est qu'en osant prendre des risques et en persévérant dans la lutte que nous pourrons créer notre propre éclat !
Tant qu'une flamme ferme est allumée dans le cœur, tout défi peut être surmonté ; si vous continuez à travailler dur, vous récolterez éventuellement des fruits abondants ; sur le chemin de la poursuite de vos rêves, la persévérance est le seul chemin vers le succès.
Ce n'est qu'en faisant de votre mieux que vous pourrez dépasser la limite ; ce n'est qu'en persistant dans la lutte que vous pourrez créer de l'éclat ; ce n'est qu'en n'abandonnant jamais que vous pourrez poursuivre vos rêves ; avancez courageusement et travaillez dur pour laisser votre futur moi vous émouvoir !