<menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
  • <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
              1. <dl id="gc5xj"></dl>

                <dl id="gc5xj"></dl>

                <li id="gc5xj"><ins id="gc5xj"></ins></li>

                1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                    <dl id="gc5xj"></dl>

                        <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                        <dl id="gc5xj"></dl>

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

                          发表于:2017-11-30 11:35  作者:天外归云   ?#19995;矗?#21338;客园

                          字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 软件测试管理 配置管理 测试环境

                            问题
                            由于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 name,这里的B env name)的行,找出没被注释掉的行,假如该行中包含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:登录服务器的?#27809;?#21517;
                          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,用?#19995;?#31243;ssh服务器。需要弄清连接服务器私钥存放的地址,在SecureCRT中可以通过Tools中的工具将秘钥转换为OpenSSH格式的私钥,这个路径对应的就是OpenSSH格式私钥的路径,这里对应的文件为sshKey。这里假设A环境有三台服务器,对每台服务器上分别执行hosts_check.py脚本并获取输出,分析输出结果,如果一致则?#24471;?#29615;境配置无误,返回当前配置的环境信息的集合;如果不一致则?#24471;?#29615;境配置有误,返回当前配置的环境信息列表。

                          【干货】一文掌握时下热门的AI测试技术,年薪30W+其实并不难~

                          评 论

                          论坛新帖

                          顶部 底部


                          建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
                          版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
                          ?#31471;?#21450;意见反馈:[email protected]; 业务联系:[email protected] 021-64471599-8017

                          沪公网安备 31010102002173号

                          51Testing官方微信

                          51Testing官方微博

                          扫一扫 测试知识全知道

                          <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                        1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                    1. <dl id="gc5xj"></dl>

                                      <dl id="gc5xj"></dl>

                                      <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                      1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                          <dl id="gc5xj"></dl>

                                              <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                              <dl id="gc5xj"></dl>

                                                黑龙江快乐10分软件
                                                <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                              1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                          1. <dl id="gc5xj"></dl>

                                                            <dl id="gc5xj"></dl>

                                                            <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                            1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                <dl id="gc5xj"></dl>

                                                                    <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                    <dl id="gc5xj"></dl>

                                                                      <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                                                    1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                1. <dl id="gc5xj"></dl>

                                                                                  <dl id="gc5xj"></dl>

                                                                                  <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                                                  1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                      <dl id="gc5xj"></dl>

                                                                                          <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                                          <dl id="gc5xj"></dl>

                                                                                            gt时时彩平台 浙浙江十一选五走势图 关注北京快三开奖结果 2010排列五走势图 篮球英语 澳洲幸运5全国开奖吗 新加坡二分彩开奖查询 中国足彩网上哪里看奖金 东北二八杠玩法 体彩p3走势图带连线走势图带连线 山东群英会时时开 36选7体育彩票官网 下期必出两码中特香港 免费精准一肖两码中特 彩票双色球藏机图121