背景:

之前遇到一个Labs日常需求是对于不同IP地址访问有逻辑判断,例如湖南的IP可以访问,其他地域的IP地址无法访问应用。

难点:

在测试过程中访问应用时,本地地址无法改变,始终为同一地址。对于不同IP地址段的需求无法测试

解决方案一

使用Debug方式远程调试代码

思路:通过本地发起Http请求,连接daily机或开发机,设置断点。当请求到达断点处,修改IP地址信息,模拟任意的IP地址请求。处理结果看返回信息

步骤一:使用Eclipse工具Debug方式,连接daily机开发机

 

步骤二:在开发代码中找到请求处理的java文件,设置断点

使用本地IP地址访问页面,发起请求,例如访问http://www.daily.taobao.net

步骤三:发起请求后,在断点处修改IP的参数值,修改值之后,继续完成Debug操作,查看返回情况

方案一优点:不需要测试脚本准备,快捷简便、灵活数据值可以随意修改。比较适合于项目日常时间紧张时,快速完成测试的数据准备。

方案一缺点:项目日常测试完成后,不便于后期的回归。每次回归需要手动执行

解决方案二

利用测试脚本测试,在脚本中修改请求的参数

思路:

测试脚本中,修改请求的ip地址参数

 

操作:在测试脚本的请求中加入远程端地址信息

    public void setUp() throws Exception {

       HttpServletRequest  req  = new SimpleHttpServletRequest() ;

       setReferer( “http://www.taobao.com”);

        setRemoteAddr(“100.100.100.100″);     /*设置客户端地址*/

       setParameter(“taobao_nick”, “tbtest1061″);

       setSession(“login”, “true”);

       setSession(“_nk_”, “tbtest1061″);

       setParameter(“method”, “taobao.user.get”);     

    }

方案二优点:完成脚本编写,方便项目日常完成后的回归工作。

方案二缺点:脚本准备花费时间长,不适合在项目和日常紧张时来完成