起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 人在职场 > 服务端测试环境hosts配置检查脚本

服务端测试环境hosts配置检查脚本

时间:2021-05-02 15:47:06来源:深圳软件开发测试培训学校 作者:软件开发测试培训网 已有: 名学员访问该课程

前言: 问题 由于A测试环境和B测试环境相互耦合,B测试环境切换导致我方测试环境需要更改后台服务器的响应配置。若多台

问题

由于A测试环境和B测试环境相互耦合,B测试环境切换导致我方测试环境需要更改后台服务器的响应配置。若多台服务器中有一台服务器没有更改配置,则在测试过程中将会出现问题。届时排查由于环境配置不统一引起的环境问题将会费时费力。

思考

测试环境之间的关联配置就是hosts的配置,我们只需要知道A测试环境中各个服务器上的hosts文件中配置的B环境的hosts是否一致即可得出结论。

解决方案

在A测试环境服务器端各个机器的根目录下均安放hosts检查脚本hosts_check.py,内容如下:

#!/usr/bin/python

# -*- coding:utf-8 -

B_server_ip_1 = "B env ip 1"

B_server_ip_2 = "B env ip 2"

tip_1 = "isXXX"

tip_2 = "isnotXXX"

with open('/etc/hosts') as f:

for line in f.readlines():

rule1 = "B env name" in line

rule2 = not line.startswith("#")

rule3 = B_server_ip_1 in line

rule4 = B_server_ip_2 in line

if rule1 and rule2:

if rule3:

print(tip_1)

if rule4:

print(tip_2)

其中假设B环境有两台server,他们的ip分别为B_server_ip_1和B_server_ip_2,对于每台server上的hosts文件进行检查,找出其中对应B环境名(hosts ame,这里的B env ame)的行,找出没被注释掉的行,假如该行中包含B_server_ip_1则对应的是打印tip_1,包含B_server_ip_2则对应的是打印tip_2。

在本地端执行检测脚本,内容如下:

# coding:utf-8

import base64

import paramiko

class SSH_Handler:

client = paramiko.SSHClient()

def __init__(self,ssh_key_path,server_ip,server_port,username):

ssh_key = paramiko.RSAKey.from_private_key_file(ssh_key_path)

self.client.load_system_host_keys()

self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

self.client.connect(server_ip,port=server_port,username=username,pkey=ssh_key)

def exec_command(self,command):

stdin, stdout, stderr = self.client.exec_command(command)

ret = []

for line in stdout:

ret.append(line.strip())

return ret

def __del__(self):

self.client.close()

'''

ssh_key_path:OpenSSH格式的用来连接服务器的私钥路径

server_ip:要连接的服务器的ip地址

server_port:要连接的服务器的端口

username:登录服务器的用户名

command:在服务器端要执行的命令

'''

if __name__ == '__main__':

ssh_key_path = 'E:\\sshKey'

server_ips = ['A env ip 1','A env ip 2','A env ip 3']

server_port = xxxx

username = 'username'

command = 'python hosts_check.py'

results = []

s = set()

for server_ip in server_ips:

result = SSH_Handler(ssh_key_path,server_ip,server_port,username).exec_command(command)[0]

results.append(server_ip+":"+result)

s.add(result)

if len(s) ==1:

print(s)

else:

print(results)

在执行上面的脚本前需要在本地python3环境安装paramiko,用来远程ssh服务器。需要弄清连接服务器私钥存放的地址,在SecureCRT中可以通过Tools中的工具将秘钥转换为OpenSSH格式的私钥,这个路径对应的就是OpenSSH格式私钥的路径,这里对应的文件为sshKey。这里假设A环境有三台服务器,对每台服务器上分别执行hosts_check.py脚本并获取输出,分析输出结果,如果一致则说明环境配置无误,返回当前配置的环境信息的集合;如果不一致则说明环境配置有误,返回当前配置的环境信息列表。

软件开发测试人才四大魅力元素

——就业竞争小

——高薪没商量

——就业质量高

——无性别歧视

套用狄更斯那句话说:对于急需软件开发测试人员的企业来说,这是一个最坏的时代,但对软件开发测试人才来说,这是一个最好的时代。“随着软件市场的成熟,人们对软件作用的期望值也越来越高,软件的质量和功能可靠性也正逐渐成为人们关注的焦点。”

文章出自:http://www.epx365.cn/jyzn/202179568.html

文章标题:服务端测试环境hosts配置检查脚本



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.cnitedu.cn 注册时间:2016-07-18 11:07 最后登录:2021-05-02 14:05