>백엔드 개발 >파이썬 튜토리얼 >Python 명령줄 예약 작업 자동화 워크플로란 무엇입니까?

Python 명령줄 예약 작업 자동화 워크플로란 무엇입니까?

王林
王林앞으로
2023-05-13 17:01:111665검색

1. 사용 시나리오

jmeter 스크립트를 정기적으로 실행하고, 간격을 두고 Python 타이머를 통해 명령줄 명령을 실행합니다.

2. Library

os, datetime, threading

(1) threading.Timer() 타이머를 사용하여 예약된 작업을 구현합니다.

Timer 메서드 Explanation
Timer(간격, 함수, args=None, kwargs=None) 타이머 생성
cancel() 타이머 취소
start() 스레드 모드를 사용하여 실행
join(self, timeout=None) 스레드 실행 종료 대기

타이머에 대한 가장 기본적인 이해는 예약된 여러 작업을 시작할 수 있는 타이머입니다. 이러한 타이머 작업은 비동기적으로 실행되므로 순차적 실행을 기다리는 데 문제가 없습니다.

3. 스크립트 실행

jmeter가 명령줄을 실행합니다

jmeter -n -t 스크립트 이름.jmx -l 스크립트 보고서 이름.jtl

매개변수 설명:

  • n 비GUI 모드, 명령 line 모드 ( GUI 모드가 아닌 모드에서 실행 중임을 나타냄)

  • -t 테스트 파일, 실행할 jmeter 테스트 스크립트 파일 (일반적으로 절대 경로 사용)

  • -l 결과 파일, 결과를 기록하는 파일

  • -h jmeter 도움말 정보 가져오기

  • -r 원격 실행, 원격 서버 시작(GUI 모드가 아닌 원격 호스트로 구성된 모든 원격 에이전트 시작)

  • -R 원격 실행,(시작 GUI 모드가 아닌 지정된 서버 머신(IP: PORT)을 프록시 머신으로)

  • -e 테스트 설정 후 테스트 보고서 생성

  • -o 테스트 보고서가 생성되는 폴더를 지정합니다. 폴더는 비어 있어야 합니다/존재하지 않습니다.

  • - H 프록시 호스트(jmeter가 사용하는 프록시 호스트 설정)

  • -P 프록시 포트(jmeter가 사용하는 프록시 포트 설정)

  • -X 종료 (GUI 모드가 아닌 경우 테스트 종료 후 종료)

4 .Script

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()

실행 결과:

Python 명령줄 예약 작업 자동화 워크플로란 무엇입니까?

5. Python에서 일반적으로 사용되는 예약 작업

while True: +sleep()

threading.Timer 타이머

Timeloop 라이브러리는 예약된 작업을 실행합니다

예약 모듈 sched

예약 모듈 일정

작업 프레임워크 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.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) 명령

import commands
 commands.getoutput('ls')

프로그램 출력으로 돌아가기

위 내용은 Python 명령줄 예약 작업 자동화 워크플로란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제