一起学Python-通过python脚本进行批量telnet连通性测试,关注
发布日期:2021-05-28 17:12:19 浏览次数:25 分类:精选文章

本文共 3097 字,大约阅读时间需要 10 分钟。

执行效果

VIP通道

使用该工具可以自动化测试接口的连通性,可根据设置的参数上传文件并执行批量测试。

文档内容

支持校验各种接口的稳定性和响应速度,是开发和测试的重要工具。

代码说明

该程序使用Python编写,主要模块包括:

  • 【参数解析】通过命令行选项设置测试文件、接口频率和超时时间等核心参数。
  • 【日志处理】支持同时输出到控制台和日志文件,便于监控和追溯各阶段操作结果。
  • 【测试功能】包含自动化接口验证功能,可通过配置文件定义多个测试用例。
  • 【错误处理】采用try-except机制,确保程序在不同异常情况下依旧能以友好的方式退出并记录日志。

使用方法:

python3 ${文件名} -t ${超时时间设定} -f ${测试素材文件} -n ${测试次数}

源代码如下:

import argparseimport osimport loggingimport telnetlibrun_log = 'run.txt'if os.path.exists(run_log):    os.remove(run_log)logger = logging.getLogger()logger.setLevel('DEBUG')BASIC_FORMAT = "%(asctime)s :%(levelname)s :%(message)s"DATE_FORMAT = '%Y-%m-%d %H:%M:%S'formatter = logging.Formatter(BASIC_FORMAT, DATE_FORMAT)chlr = logging.StreamHandler()  # 输出到控制台的handlerchlr.setFormatter(formatter)chlr.setLevel('DEBUG')  # 也可以不设置,不设置就默认用logger的levelfhlr = logging.FileHandler(run_log)  # 输出到文件的handlerfhlr.setFormatter(formatter)logger.addHandler(chlr)logger.addHandler(fhlr)##telnet访问函数def to_up(Host, port, timeout, frequency):    info = f"第[{frequency}]次访问地址[{Host}:{port}]"    try:        tn = telnetlib.Telnet(Host, port=port, timeout=timeout)        tn.close()        de = f"{info}成功\n"        logger.debug(de)    except:        err = f"{info}失败\n"        logger.error(err)#测试功能类class Test:    def __init__(self, frequency, port, timeout, host):        self.frequency = frequency        self.host = host        self.port = int(port)        self.timeout = int(timeout)    def telnet(self):        end = self.frequency + 1        for s in range(1, end):            to_up(Host=self.host, port=self.port, timeout=self.timeout, frequency=s)#获取文本内容def get_info(url_file, frequency=1, timeout=None):    if os.path.exists(url_file):        # 打开文件        file = open(url_file, "r", encoding='utf-8')        # 遍历文件行内容        for (num, line) in enumerate(file, 1):            line = str.replace(line, '\n', '')            logger.info(f"正在检测第[{num}]行内容:[{line}]")            xi2 = [line]            for i in xi2:                domain_port = i.split(' ')                domain = domain_port[0]                port = domain_port[1]                logger.info(f"第[{num}]行获取的域名:[{domain}]")                logger.info(f"第[{num}]行获取的端口:[{port}]")                Program = Test(frequency=frequency, port=port, timeout=timeout, host=domain)                Program.telnet()        file.close()    else:        exit("找不到文件[{url_file}]" % url_file)#主函数def main():    #接收所有传入的信息    all_info = argparse.ArgumentParser(description="设置测试参数")    data = {        '-f': '--file',         '-n': '--frequency',         '-t': '--time'    }    for i in data:        parameter = i        parameters = data.get(i)        all_info.add_argument(parameter, parameters, required=True)        all = all_info.parse_args()        #拆分信息    f = all.file    s = all.frequency    t = all.time        logger.info(f"\n文件选择[{f}]\n访问次数[{s}]次\n超时时间[{t}]秒\n" % (f, s, t))    get_info(url_file=f, frequency=int(s), timeout=int(t))if __name__ == '__main__':    main()
上一篇:Shell脚本分享-日志服务器rsyslog一键部署脚本
下一篇:一起学Python-通过python脚本进行批量telnet连通性测试

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月20日 17时00分57秒