对系统进行预发布测试时,应该保证不会触碰到生产环境中系统的应用,否则你测的对象就不是预发服务器了。
1.用浏览器访问预发web应用:
通过改写浏览器端hosts,把正式域名指向预发服务器。
2.一个预发系统以RPC方式调用另一个预发系统:
如果有注册中心、有服务发现机制,则可以让RPC服务提供者以特殊的版本号在预发环境发布,服务使用者在预发环境用这个版本号访问它。
如果没有服务发现机制,就把服务提供者的预发环境IP告诉服务使用者
3.一个预发系统发异步消息给另一个预发系统:
预发系统搭建自己的消息中间件服务器
4.期望测试时造的数据只被预发的task (如quartz) 访问到
这个比较难,因为预发系统和生产环境一般共享同一套数据库,预发环境造的数据也会被生产环境的task访问到。这时一般要在表里为预发用的数据专门开设一个标志位字段,如果有多张表,可能每张表都需要这样的字段;再在应用代码里判断当前数据是否是预发数据;这种做法很繁琐,而且直接侵入了系统。