python编写测试小工具-Python与游戏测试(小工具篇)
import datetime
import paramiko
import time
import os
class ScanError(object):
def __init__(self):
self._ssh = paramiko.SSHClient()
self.last_error_log = None
self._init()
def _init(self):
os.chdir("data") # 打算将报错信息保存到data目录下
self._ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self._ssh.connect("192.168.1.10", username="root", password="XXXXXX")
error_log = self.get_error_log(500)
self.last_error_log = error_log
# 检测最近三天有没有报错信息
today = datetime.date.today()
yesterday = today - datetime.timedelta(days=1)
the_day_before_yesterday = today - datetime.timedelta(days=2)
error_log_str = " ".join(error_log)
if error_log_str.find(str(today)) > -1 or error_log_str.find(str(yesterday)) > -1 or error_log_str.find(str(the_day_before_yesterday)) > -1:
self.save_error_log("error.txt", error_log)
print("内网最近三天有错误信息,请查看")
os.popen("error.txt")
def get_error_log(self, num=200):
cmd = "cd /data/www/sg/sg_dev/socket/log&&tail -n {} sg_error.log".format(num)
stdin, stdout, stderr = self._ssh.exec_command(cmd)
error_log = [i.decode("utf-8") for i in stdout.read().splitlines() if i]
return error_log
@staticmethod
def save_error_log(file_name, log: list):
with open(file_name, "w", encoding="utf-8") as f:
f.write(" ".join(log))
def run_forever(self, interval=30, show_error=True):
"""运行检测工具
:param interval: 检测间隔
:param show_error: 是否检测到报错就自动弹出显示
:return:
"""
while 1:
time.sleep(interval)
error_log = self.get_error_log()
if error_log != self.last_error_log and " ".join(set(error_log) - set(self.last_error_log)).find("ERROR") > -1:
self.last_error_log = error_log
file_name = time.strftime("%Y-%m-%d-%H-%M-%S.txt", time.localtime(time.time()))
print("{} 检测到内网有新的错误信息".format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))))
self.save_error_log(file_name, error_log)
if show_error:
os.popen(file_name)
if __name__ == "__main__":
ScanError().run_forever()
python编写测试小工具-Python与游戏测试(小工具篇)相关推荐
- python编写代码_用 Python 编写干净、可测试、高质量的代码
用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...
- 随想录(python编写的计算器和贪吃蛇游戏)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] python除了用来开发server.web之外,一般还可以用来开发客户端,特别是用来做一些de ...
- 使用Python编写一个聪明的尼姆游戏
关于尼姆游戏的介绍请参考上一篇文章:一个傻傻的尼姆游戏及其Python实现,本文使用Python实现一个聪明的尼姆游戏. 在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1--也就是 ...
- python尼姆游戏_使用Python编写一个聪明的尼姆游戏
关于尼姆游戏的介绍请参考上一篇文章:一个傻傻的尼姆游戏及其Python实现,本文使用Python实现一个聪明的尼姆游戏. 在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1--也就是 ...
- python编写安卓脚本,用python+uiautomator写android测试脚本环境的搭建
针对的系统环境 win7,64 python安装和配置 1.从python官方网站下载对应系统的安装包(得到一个.msi文件) 2.运行.msi文件,选择安装路径,安装python 3.完成以后将上面 ...
- python编写登录_通过Python编写一个简单登录功能过程解析
通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...
- 怎么用python编写心形图案,python编程爱心形状turtle
如何利用python画一个爱心 1 from turtle import * 2 def curvemove(): #这个函数是为了绘制爱心上方的曲线 3 for i in range(200): 4 ...
- python编写word_如何使用Python来编辑word
今天老王在使用Python编辑word文件的时候发现了很多小问题,今天就和大家分享下,既然分享都分享了就从最基本的开始讲吧. 要想使用Python编辑word我们一般使用Python-docx库来进行 ...
- python编写poc_分享使用python编写poc,exp的实例教程
在很久很久以,我有一个梦想 但是,后来我发现我的梦想渐渐没有了 于是,昨天我思考了一晚上 觉得我应该有个梦想的! 好了,回到正题.正所谓明人不装暗逼,今天我家开通了公网ip我开森啊,很开森的那种! 额 ...
- 《羊了个羊》测试工程师通关解密到游戏测试常见Bug汇总
前言 几乎是一夜之间,微信小游戏<羊了个羊>火出圈了.两天以来上了不下五次热搜,其话题总览量已经高达17亿,讨论次数也超过了15万次. 全办公室的都在找第二关的攻略,本来我以为这是00后 ...
最新文章
- 三态门有一个信号控制端en_W25Q32JVSSIQ|哪些PCB设计会影响信号质量?
- VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示
- 使用Maven Assembly plugin将依赖打包进jar
- 全方面了解和学习PHP框架
- visudo精确用户赋权(sudo)
- 《MySQL——关于grant赋权以及flush privileges》
- xenserver 安装新硬盘_给Xenserver添加新硬盘
- mysql事务嵌套 php_使用以下代码,MySQL中的PHP“嵌套”事务是否...
- python流程控制框架_Python基础(相关历史、交互、简单流程控制)
- 今夏发布的Terraform 0.12将提供for循环和第一类表达式
- 饭圈出征?《流浪地球》影迷给豆瓣App打一星:来啊互相伤害
- C++之指针探究(十二):指针、下标、数组及其作函数参数
- JY游戏开发,案例之 《下到一百层》,欢迎大家品赏。
- 海外硕士苏明哲回国后哀叹:我美本英硕,找不到工作很难受
- 基础软件“好用”指南:必须跨越这两道鸿沟!
- 【自动化测试selenium】
- Excel VBA之类模块 实例
- Me-tetrazine-Disulfo-Cyanine5,甲基四嗪-磺酸基菁染料Cy5,蓝色固体
- 发电运行技术类毕业论文文献都有哪些?
- 蘑菇街财报:曾经电商第四极的直播末路