大家在做接口自动化时,怎么做到同一个服务器下同时运行多个环境的?

random
random
random
订阅者
10532
文章
0
评论
测试交流19220字数 172阅读0分34秒阅读模式
例如: 有这么一个场景

A 版本提测, 域名 banana.cc.com 1.1.1.1
B 版本提测,域名 banana.cc.com 2.2.2.2
这样一来如果是在同一个服务器上面运行的话, 就要排队, 不能同时执行

我的想法是直接通过 IP 来访问(不考虑多服务器的情况下), 如果是通过域名切换 host 方式的话, 没办法做到同一个服务器上同时运行二个版本,必须要等跑完一个再执行一个文章源自玩技e族-https://www.playezu.com/492939.html

通过 IP 直接访问就是可能会一个问题,例如当前服务依赖其他服务的话不知道会不会出现什么问题?文章源自玩技e族-https://www.playezu.com/492939.html 文章源自玩技e族-https://www.playezu.com/492939.html

 
评论  19  访客  19
    • Jan95
      Jan95 9

      通过 parser.addoption 设置环境后,我发现我数据驱动根本不能运行,获取数据的时候判断不了 pytest 钩子函数对象

      • 冷月醉夕阳
        冷月醉夕阳 9

        蒽 ,业务就是这样,目前是通过 IP 来请求的,好像暂时也没什么问题,后面再观察下

        • 冷月醉夕阳
          冷月醉夕阳 9

          蒽 ,不能通过 hosts 方式, 只能通过配置文件或者标识来区分不同的 IP,只能 IP 发起请求, 同时运行多个任务的话,相当于多个线程,这样是不会相互有影响的

          • shandongdong
            shandongdong 9

            hosts 文件应该是属于系统的文件。请问你是如果做到同一域名下不同 hosts 的切换? 如果有并发的两个接口都需要修改 hosts 如何做隔离?

            • edsion
              edsion 9

              为什么用域名不用 IP?
              header 里的 Host 不同

              • 徐汪成
                徐汪成 9

                我无法理解你们为什么同一个域名下面会对应两个或者多个 IP,就算集群部署,不应该有负载吗?统一入口不是负载 IP 吗?

                其实我就是想知道,同一套代码,一台机器,怎么做到区分多个环境同时执行

                这种肯定是用配置文件的方式去区分环境参数,怎么同时执行?代码内可以多线程,代码外可以同时启动多次嘛。

                那自然是 A 任务在运行时, B 任务因为环境不同(B 任务域名和 A 任务域名一样,但 IP 不一样)就要等 A 完了才能执行

                域名就是映射到 IP 或者 CDN,你直接访问 IP 或者 CDN 不是一样的效果吗?

                • Jerry li
                  Jerry li 9

                  我的做法是维护一个配置文件,在执行的 Python 文件入口通过传入一个标记位来获取统一的 host 参数,并且通过 pytest 来标记不同环境要执行的用例。
                  例如执行 Python test.py 1, 这样就只会执行属于正式环境的用例,域名也指向正式环境

                  这是之前整理的,可以参考一下
                  https://testerhome.com/articles/17504

                  • 陈恒捷
                    陈恒捷 9

                    可以问下开发为何不要用 ip 直接访问,是出于什么原因?

                    我们只有线上用域名,测试环境大多是 ip 。如果要配置域名,不同环境的域名一定是会区分的,要不会乱套,也非常容易连错(配置改得多,错误率自然也会上升,而且你本地的东西,谁都无法复现解决。。。)

                    • 冷月醉夕阳
                      冷月醉夕阳 9

                      我们有二个环境, 测试环境和灰度环境, 测试环境有几十个域名, 就好比私有化的那种部署,测试的时候大家都要配置所有域名测试, 那对应的接口肯定也是通过域名来请求的,所以就会存在这个问题,之前也有咨询过开发,开发建议不要用 IP 直接访问,我们没有固定的 IP 的,IP 和域名会随时变的(部署到哪个服务器就哪个服务器)

                    匿名

                    发表评论

                    匿名网友
                    确定

                    拖动滑块以完成验证