溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python命令行定時任務(wù)自動化工作流程是什么

發(fā)布時間:2023-04-25 11:22:56 來源:億速云 閱讀:111 作者:zzz 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Python命令行定時任務(wù)自動化工作流程是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python命令行定時任務(wù)自動化工作流程是什么”吧!

1.使用場景

定時執(zhí)行jmeter腳本,通過python定時器隔一段時間執(zhí)行命令行命令。

2.庫

os、datetime、threading

(1)利用threading.Timer()定時器實現(xiàn)定時任務(wù)

Timer方法說明
Timer(interval, function, args=None, kwargs=None)創(chuàng)建定時器
cancel()取消定時器
start()使用線程方式執(zhí)行
join(self, timeout=None)等待線程執(zhí)行結(jié)束

timer最基本理解就是定時器,可以啟動多個定時任務(wù),這些定時器任務(wù)是異步執(zhí)行,所以不存在等待順序執(zhí)行問題。

3.運行腳本

jmeter執(zhí)行命令行

jmeter -n -t 腳本名稱.jmx -l 腳本報告名稱.jtl

參數(shù)說明:

  • n 非GUI模式,命令行模式(表示在非GUI模式下運行)

  • -t 測試文件, 要運行的jmeter測試腳本文件(一般使用絕對路徑)

  • -l 結(jié)果文件,記錄結(jié)果的文件

  • -h 獲取jmeter幫助信息

  • -r 遠程執(zhí)行,啟動遠程服務(wù)器(non-gui模式下啟動remote-hosts配置的所有遠程代理機)

  • -R 遠程執(zhí)行,(non-gui模式下啟動指定的機器(IP:PORT)作為代理機)

  • -e 設(shè)置測試完成后生成測試報表

  • -o 指定測試報表生成的文件夾,文件夾必須為空/不存在

  • -H 代理主機(設(shè)置jmeter使用的代理主機)

  • -P 代理端口(設(shè)置jmeter使用的代理端口)

  • -X 退出(non-gui模式下測試結(jié)束時退出)

4.腳本

import os
from datetime import datetime
from threading import Timer
# 定時任務(wù)
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/功能測試/好慷/測試數(shù)據(jù)(壓測腳本)/階梯拼團多維表格20230418.jmx -l /Users/liyinchi/workspace/功能測試/好慷/測試數(shù)據(jù)(壓測腳本)/階梯拼團多維表格20230418-result.jtl")
    print(a)
# 執(zhí)行器
def func():
    task()
    t = Timer(60*1, func)
    t.start()
func()

執(zhí)行結(jié)果:

Python命令行定時任務(wù)自動化工作流程是什么

5.python常用的定時任務(wù)

while True:+sleep()

threading.Timer定時器

Timeloop庫執(zhí)行定時任務(wù)

調(diào)度模塊sched

調(diào)度模塊schedule

任務(wù)框架APScheduler

分布式消息系統(tǒng)celery執(zhí)行定時任務(wù)

使用windows自帶的定時任務(wù)

6.四種方法用python調(diào)用命令行

(1)os.system

import os
a=os.system("ls")
a

運行程序會顯示輸出,返回值a為程序退出碼

(2)os.popen

import os
a=os.popen("ls")
a.readline()

返回值為一個file文件,

file.readlines()為命令的返回值

(3)subprocess

可以在python程序中創(chuàng)建子進程,

subprocess.call()

import subprocess
 subprocess.call(['ls','-l' ])

其中,'ls’對應(yīng)命令行輸入的命令,-l為相應(yīng)的操作。返回程序退出碼,類似于os.system

subprocess.check_output('ls')

返回標(biāo)準(zhǔn)輸出,類似于os.popen。

也可以調(diào)用Popen對象來進行操作。subprocess

import subprocess
child = subprocess.Popen('ping -c4 blog.linuxeye.com',shell=True)

此時,可以用多個命令控制子進程。也可以用subprocess.PIPE,將自進程輸入輸出連接……

(4)commands

import commands
 commands.getoutput('ls')

返回程序輸出

感謝各位的閱讀,以上就是“Python命令行定時任務(wù)自動化工作流程是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python命令行定時任務(wù)自動化工作流程是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI