例如: 有这么一个场景
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
未知地区 19F
通过 parser.addoption 设置环境后,我发现我数据驱动根本不能运行,获取数据的时候判断不了 pytest 钩子函数对象
未知地区 18F
蒽 ,业务就是这样,目前是通过 IP 来请求的,好像暂时也没什么问题,后面再观察下
未知地区 17F
蒽 ,不能通过 hosts 方式, 只能通过配置文件或者标识来区分不同的 IP,只能 IP 发起请求, 同时运行多个任务的话,相当于多个线程,这样是不会相互有影响的
未知地区 16F
hosts 文件应该是属于系统的文件。请问你是如果做到同一域名下不同 hosts 的切换? 如果有并发的两个接口都需要修改 hosts 如何做隔离?
未知地区 15F
为什么用域名不用 IP?
header 里的 Host 不同
未知地区 14F
我无法理解你们为什么同一个域名下面会对应两个或者多个 IP,就算集群部署,不应该有负载吗?统一入口不是负载 IP 吗?
其实我就是想知道,同一套代码,一台机器,怎么做到区分多个环境同时执行
这种肯定是用配置文件的方式去区分环境参数,怎么同时执行?代码内可以多线程,代码外可以同时启动多次嘛。
那自然是 A 任务在运行时, B 任务因为环境不同(B 任务域名和 A 任务域名一样,但 IP 不一样)就要等 A 完了才能执行
域名就是映射到 IP 或者 CDN,你直接访问 IP 或者 CDN 不是一样的效果吗?
未知地区 13F
我的做法是维护一个配置文件,在执行的 Python 文件入口通过传入一个标记位来获取统一的 host 参数,并且通过 pytest 来标记不同环境要执行的用例。
例如执行 Python test.py 1, 这样就只会执行属于正式环境的用例,域名也指向正式环境
这是之前整理的,可以参考一下
https://testerhome.com/articles/17504
未知地区 12F
可以问下开发为何不要用 ip 直接访问,是出于什么原因?
我们只有线上用域名,测试环境大多是 ip 。如果要配置域名,不同环境的域名一定是会区分的,要不会乱套,也非常容易连错(配置改得多,错误率自然也会上升,而且你本地的东西,谁都无法复现解决。。。)
未知地区 11F
我们有二个环境, 测试环境和灰度环境, 测试环境有几十个域名, 就好比私有化的那种部署,测试的时候大家都要配置所有域名测试, 那对应的接口肯定也是通过域名来请求的,所以就会存在这个问题,之前也有咨询过开发,开发建议不要用 IP 直接访问,我们没有固定的 IP 的,IP 和域名会随时变的(部署到哪个服务器就哪个服务器)