场景:APP测试通常会出一个测试版,但是测试版需要修改代码,把请求地址改为测试地址,存在一个问题,测试环境测试通过了,有可能在发布正式环境的过程中,开发人员忘记修改回正式环境的请求地址,导致出现了很严重的问题。
解决思路:APP由于发布后,难以修改修复问题,所以尽量少改动,尽量做到代码从测试到生成过程中,没有改动,让测试覆盖整个流程,测试始终对应的都是同一套代码。
方法步骤:
1. 重定向APP请求的正式地址到测试地址。做到的方法是修改host。把域名对应的ip修改为测试服务的地址。这个可以通过APP接入智能路由器,可以支持修改/etc/host
修改host的后,如果遇到https请求,就发现会报错,原因就是https证书校验不通过,需要再测试服务器配置对应的正式https证书。
2. 如果有些功能不是通过http来请求的,比如tcp请求。那么需要修改智能路由器的iptable,进行nat转发。例子:
sudo iptables -t nat -A OUTPUT -d 192.168.0.117 -j DNAT --to-destination 47.89.100.100
就是把发送到192.168.0.117 的请求转发到47.89.100.100.
sudo iptables --line-number -vnL OUTPUT -t nat
查看编号得出是2,所以下面输入2,删除规则
sudo iptables -t nat -D OUTPUT 【2】