python写自动化运行脚本_[Python] 【Python3】教你写页游自动化Python脚本 1.界面篇(模仿某键精灵)...

[Python] 纯文本查看 复制代码#!/usr/bin/python3

# coding=utf-8

import codecs

import os

import sys

import time

import traceback

import win32con

import win32evtlog

import win32evtlogutil

import winerror

from datetime import datetime

def getAllEvents(companyId, pickUplogTypes, basePath):

"""

"""

if not companyId:

serverName = "未列出主机"

else:

serverName = companyId

for logtype in pickUplogTypes:

path = os.path.join(basePath, "%s_%s_日志.log" % (serverName, logtype))

print('输出日志位置为:', path)

getEventLogs(companyId, logtype, path)

# ----------------------------------------------------------------------

def getEventLogs(companyId, logtype, logPath):

"""

Get the event logs from the specified machine according to the

logtype (Example: Application) and save it to the appropriately

named log file

"""

print("载入%s事件" % logtype)

log = codecs.open(logPath, encoding='utf-8', mode='w')

line_break = '-' * 80 + '\n'

log.write("服务器:%s 日志事件类型:%s " % (companyId, logtype))

log.write("创建时间: %s \n" % datetime.now().strftime("%Y-%m-%d %H:%S:%M"))

log.write(line_break)

# 读取本机的,system系统日志

hand = win32evtlog.OpenEventLog(None, logtype)

# 获取system日志的总行数

total = win32evtlog.GetNumberOfEventLogRecords(hand)

print("%s总日志数量为%s" % (logtype, total))

flags = win32evtlog.EVENTLOG_BACKWARDS_READ | win32evtlog.EVENTLOG_SEQUENTIAL_READ

events = win32evtlog.ReadEventLog(hand, flags, 0)

# 错误级别类型

# evt_dict = {win32con.EVENTLOG_AUDIT_FAILURE: 'EVENTLOG_AUDIT_FAILURE',

# win32con.EVENTLOG_AUDIT_SUCCESS: 'EVENTLOG_AUDIT_SUCCESS',

# win32con.EVENTLOG_INFORMATION_TYPE: 'EVENTLOG_INFORMATION_TYPE',

# win32con.EVENTLOG_WARNING_TYPE: 'EVENTLOG_WARNING_TYPE',

# win32con.EVENTLOG_ERROR_TYPE: 'EVENTLOG_ERROR_TYPE'}

evt_dict = {win32con.EVENTLOG_WARNING_TYPE: '警告',

win32con.EVENTLOG_ERROR_TYPE: '错误',

win32con.EVENTLOG_AUDIT_FAILURE: '审核失败',

win32con.EVENTLOG_AUDIT_SUCCESS: '审核成功',

win32con.EVENTLOG_INFORMATION_TYPE: '信息'

}

try:

events = 1

while events:

events = win32evtlog.ReadEventLog(hand, flags, 0)

for ev_obj in events:

the_time = ev_obj.TimeGenerated.Format() # '12/23/99 15:54:09'

time_obj = datetime.strptime(the_time, '%c')

evt_id = int(winerror.HRESULT_CODE(ev_obj.EventID))

computer = str(ev_obj.ComputerName)

cat = ev_obj.EventCategory

# seconds=date2sec(the_time)

record = ev_obj.RecordNumber

msg = win32evtlogutil.SafeFormatMessage(ev_obj, logtype)

source = str(ev_obj.SourceName)

nowtime = datetime.today()

daySpace = nowtime.__sub__(time_obj).days

if not ev_obj.EventType in evt_dict.keys():

evt_type = "未知"

else:

evt_type = str(evt_dict[ev_obj.EventType])

if evt_type in pickUpEventTypes and evt_id in pickUpEventIDs and daySpace <= needDaySpace:

log.write("计算机名:%s\n" % computer)

log.write("记录编码:%s\n" % record)

log.write("事件时间: %s\n" % time_obj)

log.write("事件ID:%s | 事件类别: %s\n" % (evt_id, evt_type))

log.write("来源: %s\n" % source)

log.write(msg + '\n')

log.write(line_break)

except:

print(traceback.print_exc(sys.exc_info()))

print("日志文件创建完成:%s" % logPath)

if __name__ == "__main__":

companyId = 1204 # None = local machine

needDaySpace = 7 # 需要几天前的事件日志

pickUplogTypes = ["System"] # 目前只获取日志名称为:系统的日志

# EventTypes = ['win32con.EVENTLOG_WARNING_TYPE', 'win32con.EVENTLOG_ERROR_TYPE',

# 'win32con.EVENTLOG_INFORMATION_TYPE', 'win32con.EVENTLOG_AUDIT_FAILURE', 'win32con.EVENTLOG_AUDIT_SUCCESS']

pickUpEventTypes = ['错误'] # 需要提取的类别列表

pickUpEventIDs = [7, 8, 9, 14, 6008] # 需要提取的事件ID列表

# pickUplogTypes = ["System", "Application", "Security"]

getAllEvents(companyId, pickUplogTypes, ".\\") # todo需要修改输出位置

# print()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于自动化测试脚本Python 是一个非常流行和强大的选择。你可以使用 Python 的一些库和框架来编自动化测试脚本,如下所示: 1. 使用 unittest 框架:Python 自带的 unittest 框架是一个用于编单元测试的强大工具。你可以使用它来组织和运行测试用例,并断言预期结果。编测试类和测试方法,然后执行测试用例。 2. 使用 Pytest 框架:Pytest 是另一个流行的 Python 测试框架,它简化了测试用例的编和执行。与 unittest 相比,Pytest 提供了更多的灵活性和便利性,例如自动发现测试文件和函数,参数化测试等。 3. 使用 Selenium 库:Selenium 是一个用于浏览器自动化的库,可用于模拟用户与网进行交互。你可以使用 Selenium 来编自动化测试脚本,检查网的元素、表单提交、点击操作等。Selenium 还支持多种浏览器,如 Chrome、Firefox 等。 4. 使用 Requests 库:如果你需要对 API 进行自动化测试,可以使用 requests 库来发送 HTTP 请求并验证响应。这个库使得编 API 测试用例变得简单,并且可以处理不同类型的请求,如 GET、POST、PUT 等。 5. 使用 Pyautogui 库:Pyautogui 是一个用于控制鼠标和键盘的库,可以让你编自动化脚本来模拟用户的输入和操作。可以使用 Pyautogui 来编测试脚本,模拟用户在应用程序界面上的各种操作。 这只是一些常见的工具和库,可以帮助你开始编 Python 自动化测试脚本。根据你的具体需求和项目要求,可能还会有其他适合的工具和库可供选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值