Python命令列定時任務自動化工作流程是什麼

王林
發布: 2023-05-13 17:01:11
轉載
1631 人瀏覽過

1.使用場景

定時執行jmeter腳本,透過python定時器隔一段時間執行命令列指令。

2.庫

os、datetime、threading

(1)利用threading.Timer()定時器實作定時任務

##start()使用執行緒方式執行join(self, timeout=None)等待執行緒執行結束##timer最基本理解就是定時器,可以啟動多個定時任務,這些定時器任務是非同步執行,所以不存在等待順序執行問題。
#Timer方法 說明
#Timer(interval, function, args=None, kwargs=None) 建立定時器
cancel() 取消計時器

3.執行腳本

jmeter執行命令列

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

#參數說明:

    n 非GUI模式,命令列模式(表示在非GUI模式下運行)
  • -t測試文件, 要運行的jmeter測試腳本文件(一般使用絕對路徑)
  • -l 結果文件,記錄結果的文件
  • - h 取得jmeter幫助資訊
  • -r 遠端執行,啟動遠端伺服器(non-gui模式下啟動remote-hosts配置的所有遠端代理機)
  • #-R 遠端執行,(non-gui模式下啟動指定的機器(IP:PORT)作為代理機)
  • -e 設定測試完成後產生測試報表
  • -o 指定測試報表產生的資料夾,資料夾必須為空/不存在
  • -H 代理主機(設定jmeter使用的代理主機)
  • -P 代理埠(設定jmeter使用的代理埠)
  • -X 退出(non-gui模式下測試結束時退出)
  • 4.腳本
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()
登入後複製

執行結果:

##5.python常用的定時任務Python命令列定時任務自動化工作流程是什麼

while 真:sleep()

threading.Timer計時器

Timeloop函式庫執行定時任務

調度模組sched

調度模組schedule

任務框架APScheduler

分散式訊息系統celery執行定時任務

使用windows自帶的定時任務

6.四種方法用python呼叫命令列

(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程式中創建子進程,

subprocess.call()

import subprocess
 subprocess.call(['ls','-l' ])
登入後複製

其中,'ls’對應命令列輸入的命令,-l為對應的操作。回傳程式退出碼,類似os.system

subprocess.check_output('ls')
登入後複製

傳回標準輸出,類似os.popen。

也可以呼叫Popen物件來進行操作。 subprocess

import subprocess
child = subprocess.Popen('ping -c4 blog.linuxeye.com',shell=True)
登入後複製

此時,可以用多個指令控制子程序。也可以用subprocess.PIPE,將自行程輸入輸出連線……

#(4)commands

import commands
 commands.getoutput('ls')
登入後複製
傳回程式輸出

以上是Python命令列定時任務自動化工作流程是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板