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 遠(yuǎn)程執(zhí)行,啟動遠(yuǎn)程服務(wù)器(non-gui模式下啟動remote-hosts配置的所有遠(yuǎn)程代理機(jī))
- -R 遠(yuǎn)程執(zhí)行,(non-gui模式下啟動指定的機(jī)器(IP:PORT)作為代理機(jī))
- -e 設(shè)置測試完成后生成測試報表
- -o 指定測試報表生成的文件夾,文件夾必須為空/不存在
- -H 代理主機(jī)(設(shè)置jmeter使用的代理主機(jī))
- -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ù)(壓測腳本)/階梯拼團(tuán)多維表格20230418.jmx -l /Users/liyinchi/workspace/功能測試/好慷/測試數(shù)據(jù)(壓測腳本)/階梯拼團(tuán)多維表格20230418-result.jtl")
print(a)
# 執(zhí)行器
def func():
task()
t = Timer(60*1, func)
t.start()
func()執(zhí)行結(jié)果:

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)建子進(jìn)程,
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對象來進(jìn)行操作。subprocess
import subprocess
child = subprocess.Popen('ping -c4 blog.linuxeye.com',shell=True)此時,可以用多個命令控制子進(jìn)程。也可以用subprocess.PIPE,將自進(jìn)程輸入輸出連接……
(4)commands
import commands
commands.getoutput('ls')返回程序輸出
到此這篇關(guān)于Python命令行定時任務(wù)自動化工作流程的文章就介紹到這了,更多相關(guān)Python命令行定時任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決python3 requests headers參數(shù)不能有中文的問題
今天小編就為大家分享一篇解決python3 requests headers參數(shù)不能有中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)
這篇文章主要介紹了Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
urllib和BeautifulSoup爬取維基百科的詞條簡單實例
這篇文章主要介紹了urllib和BeautifulSoup爬取維基百科的詞條簡單實例,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Python Pickle 實現(xiàn)在同一個文件中序列化多個對象
今天小編就為大家分享一篇Python Pickle 實現(xiàn)在同一個文件中序列化多個對象,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python selenium實現(xiàn)智聯(lián)招聘數(shù)據(jù)爬取
這篇文章主要介紹了python selenium實現(xiàn)智聯(lián)招聘數(shù)據(jù)爬取,需要的朋友可以參考下2021-04-04
Python網(wǎng)絡(luò)爬蟲出現(xiàn)亂碼問題的解決方法
這篇文章主要為大家詳細(xì)介紹了Python網(wǎng)絡(luò)爬蟲出現(xiàn)亂碼問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01

