Maison > Article > développement back-end > Qu'est-ce que le workflow d'automatisation des tâches planifiées en ligne de commande Python ?
Exécutez régulièrement le script jmeter et exécutez les commandes de ligne de commande via le minuteur Python à intervalles réguliers.
os, datetime, threading
(1) Utilisez le minuteur threading.Timer() pour implémenter les tâches planifiées
Méthode Timer | Explication |
---|---|
Timer(intervalle, fonction, args=Aucun, kwargs=Aucun) | Créer un minuteur |
cancel() | Annuler le minuteur |
start() | Utiliser le mode thread pour exécuter |
join(self, timeout=None) | Attendre la fin de l'exécution du thread |
La compréhension la plus élémentaire du minuteur est un minuteur, qui peut démarrer plusieurs tâches planifiées. Ces tâches du minuteur sont exécutées de manière asynchrone, il n'y a donc aucun problème d'attente pour une exécution séquentielle.
jmeter exécute la ligne de commande
jmeter -n -t nom du script.jmx -l nom du rapport du script.jtl
Description du paramètre :
n mode non-GUI, commande mode ligne (indique une exécution en mode non-GUI)
-t fichier de test, le fichier de script de test jmeter à exécuter (utilisez généralement un chemin absolu)
-l fichier de résultats, le fichier qui enregistre les résultats
-h Obtenez les informations d'aide de jmeter
-r Exécution à distance, démarrez le serveur distant (démarrez tous les agents distants configurés par les hôtes distants en mode non-gui)
-R Exécution à distance, (démarrez le serveur spécifié en mode non-gui Machine (IP : PORT) en tant que machine proxy)
-e Générer un rapport de test après avoir configuré le test
-o Spécifiez le dossier dans lequel le rapport de test est généré. Le dossier doit être vide/n'existe pas
- H hôte proxy (définissez l'hôte proxy utilisé par jmeter)
-P proxy port (définissez le port proxy utilisé par jmeter)
-X exit (sortie à la fin du test en mode non-gui)
import os from datetime import datetime from threading import Timer # 定时任务 def task(): now = datetime.now() ts = now.strftime("%Y-%m-%d %H:%M:%S") print(datetime.now()) a = os.system("jmeter -n -t /Users/liyinchi/workspace/功能测试/好慷/测试数据(压测脚本)/阶梯拼团多维表格20230418.jmx -l /Users/liyinchi/workspace/功能测试/好慷/测试数据(压测脚本)/阶梯拼团多维表格20230418-result.jtl") print(a) # 执行器 def func(): task() t = Timer(60*1, func) t.start() func()
résultat d'exécution :
while True : +sleep()
. threading.Timer timer
La bibliothèque Timeloop exécute les tâches planifiées
module de planification planifié
Planification du module de planification
Cadre de tâches APScheduler
Le céleri du système de messagerie distribué exécute les tâches planifiées
Utilisez les tâches planifiées fournies avec Windows
(1) os.system
import os a=os.system("ls") a
L'exécution du programme affichera la sortie La valeur de retour a est le code de sortie du programme
(2) os.popen
import os a=os.popen("ls") a.readline()
La valeur de retour. est un fichier fichier,
file.readlines() est la valeur de retour de la commande
(3) subprocess
Vous pouvez créer un sous-processus dans un programme python,
subprocess.call()
import subprocess subprocess.call(['ls','-l' ])
où, ' ls' correspond à la commande saisie sur la ligne de commande, et -l est l'opération correspondante. Renvoie le code de sortie du programme, similaire à os.system
subprocess.check_output('ls')
Renvoie la sortie standard, similaire à os.popen.
Vous pouvez également appeler l'objet Popen pour effectuer des opérations. subprocess
import subprocess child = subprocess.Popen('ping -c4 blog.linuxeye.com',shell=True)
À ce stade, vous pouvez utiliser plusieurs commandes pour contrôler le sous-processus. Vous pouvez également utiliser subprocess.PIPE pour connecter l'entrée et la sortie de l'auto-processus...
(4) commandes
import commands commands.getoutput('ls')
Retour à la sortie du programme
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!