
一起学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()
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月20日 17时00分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
setup facatory9.0打包详细教程(含静默安装和卸载)
2019-03-12
Linux kernel pwn --- CSAW2015 StringIPC
2019-03-12
IDEA 找不到 Persistence窗口解决办法
2019-03-12
C++ Primer Plus读书笔记:循环读取(错误处理)
2019-03-12
Form窗体属性
2019-03-12
vue 错误收集
2019-03-12
00010.02最基础客户信息管理软件(意义类的小项目,练习基础,不涉及数据库)
2019-03-12
00013.05 字符串比较
2019-03-12
Effective Java 读书笔记
2019-03-12
SpringBoot使用@Email报错误
2019-03-13
Rabbitmq的内存磁盘监控
2019-03-13
访问servlet时弹出文件下载框解决方法
2019-03-13
IDEA-@Slf4j和log标签&@Data(Lombok)无效
2019-03-13
Thymeleaf 生成下标,索引,使用Stat变量
2019-03-13
初始微服务---Springcloud发展【第一期】
2019-03-13
RAFT 拜占庭将军 共识算法
2019-03-13
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
2019-03-13