Python测试环境巡检工具
来源:互联网 发布:洛阳市博物馆 知乎 编辑:程序博客网 时间:2024/06/09 20:57
Python测试环境巡检
测试过程中,由于测试环境机器较多且全都是在虚拟机上做的,经常会有某些机器挂掉导致站点访问出错的问题,手动去一个一个Ping实在是麻烦,于是用Python写了一个小脚本,来批量Ping测试。
实现思路:
一、设计要求:
1.目标机器的IP可配置
2.可以一次性Ping多台机器
3.Ping测试的结果可查询
4.如果有Ping不通的机器,可以主动邮件通知
二、设计思路:
1.将需要测试的IP放在一个Txt文本文件中,所有目标机器的IP手动维护在这个文件中
2.将Ping测试的结果放在一个Txt文件中,包括IP,测试结果等
3.主程序要实现,Ping测试和邮件发送两个主要方法
三、代码实现:
1.新建一个Ping文件夹,该文件目录下创建一个host.txt文件,用来维护待测IP
2.新建ping.py,代码如下:
import osimport sendMaildef getIpStatus(): hasFail = False try: Host = open("host.txt", "r") Result = open("result.txt", "w") Result.write("测试环境巡检结果:\n") for line in Host.readlines(): line = line.strip("\n") if "#" in line: Result.write(line +"\n") else: res = os.system("ping " + line) if res == 0: print(line +" 可用...") Result.write(line + " 可用...\n") else: print(line +" 不可用...") Result.write(line + " 不可用...\n") hasFail = True Host.close() Result.close() except: print("Host文件读取失败...") if hasFail: print("有机器无法ping通!") return (True)if __name__ == '__main__': if getIpStatus(): sendMail.sendMail()3.新建sendMail.py实现邮件发送功能
import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Headerdef sendMail(): mail_host="******" #设置邮件服务器 mail_user="******" #用户名 mail_pass="******" #口令 sender = '******' #发送邮件的邮箱 receivers = [******] # 接收邮件的邮箱,可设置为你的QQ邮箱或者其他邮箱,多个邮箱用,分隔开来#创建一个带附件的实例 message = MIMEMultipart() message['From'] = "******" #邮件发送人 message['To'] = "******" #邮件接收人 subject = '测试环境巡检结果' #邮件主题 message['Subject'] = Header(subject, 'utf-8') #邮件正文内容 message.attach(MIMEText('测试环境巡检有机器未能ping通,详细结果见附件……', 'plain', 'utf-8'))# 构造附件1,传送附件文件 att1 = MIMEText(open("result.txt", 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream'# 这里的filename可以任意写,写什么名字,邮件中显示什么名字 att1["Content-Disposition"] = 'attachment; filename="Result.txt"' message.attach(att1) try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号 smtpObj.login(mail_user,mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print ("邮件发送成功") except smtplib.SMTPException: print ("Error: 无法发送邮件")
4.运行结果截图:5.注意事项:
5.1Windows系统和Linux系统对于换行符的规定不一样,按照换行符进行切割的时候,需要特殊处理
5.2 Linux中中文编码需要特殊处理,具体方法是在中文字符前加“U”
5.3 os.system-ping方法返回的是Ping命令是否有运行结果,对于本来就不存在的IP,也会有返回值,所以结果可能也是通的,需要注意。如果要兼容这个问题,可以使用正则匹配命令返回内容的方法进行处理,我这里是知道具体的机器IP的,所以处理相对简单
5.4 邮件服务器的配置,可上对应邮件提供商网站查询
Done!
0 0
- Python测试环境巡检工具
- python写的一个服务器自动巡检工具
- python、psutil、ansible实现集群环境系统巡检工具
- 服务器巡检工具(Xeej)
- AIX环境巡检
- [Python] 网络设备巡检脚本
- WIN7- selenium-python 自动化测试工具配置环境
- python 环境下的服务器压力测试工具boom
- Oracle巡检工具RDA使用手册
- 巡检工具涉及脚本注解
- python 测试工具介绍
- Python环境安装、测试
- 巡检
- Oracle 巡检工具:RDA 使用简介
- python 自动化测试工具集
- python测试工具--nose简介
- python测试工具--nose简介
- Python测试工具Pylot使用
- git 常用命令
- 数据结构与算法概述及算法分析
- php 递归查询目录的所有文件
- AndroidTrainingCHS学习笔记 -- 代码性能优化建议
- Java基础面试题1
- Python测试环境巡检工具
- UnsatisfiedLinkError && NDK integration is deprecated in the current plugin. AS总so JNILIbs加载问题
- 如何遍历一个实例的所有属性,得到属性的名称和值
- 深入JVM-Class装载系统
- 复选框变单选
- std::uninitialized_copy::_Unchecked_iterators::_Deprecate
- 见过世面的人到底有什么区别
- webview图片上传以及中文路径解决
- NSString 富文本 字符串中间一段变字体颜色