Python命令行定時(shí)任務(wù)自動化工作流程
1.使用場景
定時(shí)執(zhí)行jmeter腳本,通過python定時(shí)器隔一段時(shí)間執(zhí)行命令行命令。
2.庫
os、datetime、threading
(1)利用threading.Timer()定時(shí)器實(shí)現(xiàn)定時(shí)任務(wù)
Timer方法 | 說明 |
---|---|
Timer(interval, function, args=None, kwargs=None) | 創(chuàng)建定時(shí)器 |
cancel() | 取消定時(shí)器 |
start() | 使用線程方式執(zhí)行 |
join(self, timeout=None) | 等待線程執(zhí)行結(jié)束 |
timer最基本理解就是定時(shí)器,可以啟動多個(gè)定時(shí)任務(wù),這些定時(shí)器任務(wù)是異步執(zhí)行,所以不存在等待順序執(zhí)行問題。
3.運(yùn)行腳本
jmeter執(zhí)行命令行
jmeter -n -t 腳本名稱.jmx -l 腳本報(bào)告名稱.jtl
參數(shù)說明:
- n 非GUI模式,命令行模式(表示在非GUI模式下運(yùn)行)
- -t 測試文件, 要運(yùn)行的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è)置測試完成后生成測試報(bào)表
- -o 指定測試報(bào)表生成的文件夾,文件夾必須為空/不存在
- -H 代理主機(jī)(設(shè)置jmeter使用的代理主機(jī))
- -P 代理端口(設(shè)置jmeter使用的代理端口)
- -X 退出(non-gui模式下測試結(jié)束時(shí)退出)
4.腳本
import os from datetime import datetime from threading import Timer # 定時(shí)任務(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常用的定時(shí)任務(wù)
while True:+sleep()
threading.Timer定時(shí)器
Timeloop庫執(zhí)行定時(shí)任務(wù)
調(diào)度模塊sched
調(diào)度模塊schedule
任務(wù)框架APScheduler
分布式消息系統(tǒng)celery執(zhí)行定時(shí)任務(wù)
使用windows自帶的定時(shí)任務(wù)
6.四種方法用python調(diào)用命令行
(1)os.system
import os a=os.system("ls") a
運(yùn)行程序會顯示輸出,返回值a為程序退出碼
(2)os.popen
import os a=os.popen("ls") a.readline()
返回值為一個(gè)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)
此時(shí),可以用多個(gè)命令控制子進(jìn)程。也可以用subprocess.PIPE,將自進(jìn)程輸入輸出連接……
(4)commands
import commands commands.getoutput('ls')
返回程序輸出
到此這篇關(guān)于Python命令行定時(shí)任務(wù)自動化工作流程的文章就介紹到這了,更多相關(guān)Python命令行定時(shí)任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python實(shí)現(xiàn)定時(shí)任務(wù)的九種方案總結(jié)
- Python apscheduler實(shí)現(xiàn)定時(shí)任務(wù)的方法詳解
- python中實(shí)現(xiàn)定時(shí)任務(wù)的幾種方案
- Python中實(shí)現(xiàn)定時(shí)任務(wù)詳解
- Python實(shí)現(xiàn)自動定時(shí)登錄校園網(wǎng)
- Python定時(shí)執(zhí)行程序問題(schedule)
- 一文詳解Python定時(shí)任務(wù)觸發(fā)
- Windows下創(chuàng)建定時(shí)任務(wù)執(zhí)行Python腳本的方法實(shí)現(xiàn)
相關(guān)文章
在 Linux/Mac 下為Python函數(shù)添加超時(shí)時(shí)間的方法
這篇文章主要介紹了在 Linux/Mac 下為Python函數(shù)添加超時(shí)時(shí)間,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Python3調(diào)用微信企業(yè)號API發(fā)送文本消息代碼示例
這篇文章主要介紹了Python3調(diào)用微信企業(yè)號API發(fā)送文本消息代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11淺析如何在Python中使用結(jié)構(gòu)模式匹配
在Python 3.10中引入了模式匹配語法,允許我們在應(yīng)用程序中使用強(qiáng)大的新編程技術(shù)進(jìn)行決策,下面我們就來講講如何在Python中使用結(jié)構(gòu)模式匹配吧2023-08-08Python Opencv實(shí)戰(zhàn)之印章提取的實(shí)現(xiàn)
很多時(shí)候我們需要電子版的章,但有些同學(xué)并不會通過Photoshop摳圖獲取。因此本文將利用Python OpenCV來實(shí)現(xiàn)印章的提取,感興趣的可以了解一下2022-03-03python爬蟲開發(fā)之Beautiful Soup模塊從安裝到詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python爬蟲開發(fā)之Beautiful Soup模塊詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03