在功能测试过程中,测试员往往把全部重点关注在代码对业务规则的实现上,而比较少关注数据源配置的问题。
  比如我们知道线下的数据源配置是对的,但是又怎么知道线上的数据源配置是对的呢?
  现在的方法唯有看代码,关注这部分的实现方式。比如本次用core-test实现线上线下的配置路由,但是发现该配置不兼容sofa3:
#if(${core_test})
<beanid="databizprodDataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
<propertyname="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<propertyname="url">
<value>jdbc:mysql://mypay1.devdb.alipay.net:3306/databizprod?useUnicode=true&amp;characterEncoding=gbk</value>
</property>
<propertyname="username">
<value>databizprod</value>
</property>
<propertyname="password">
<value>ali88</value>
</property>
</bean>
#else
<beanid="databizprodDataSource"class="com.alipay.zdatasource.ZDataSourceFactoryBean">
<propertyname="jndiName">
<value>databizprodDataSource</value>
</property>
</bean>
#end
  当到了线上core-test为false时,框架仍然读的是dev环境的数据源配置,导致线上读取数据源失败。、
  教训:
  关注系统配置,包括数据源等,及时跟开发沟通实现方式,并询问是否能实现。