在项目的接口测试过程中,之前的测试数据都是测试环境下的,长期在测试环境下运行。
目前希望通过很小的代价切换到线上环境运行。
考虑之下,决定使用poi包加上property文件来实现线上线下的数据切换。
具体方案:
先将测试数据用excel管理起来,为了方便切换环境,按照不同变量在测试环境和线上环境来分别保存数值。
例如:

然后在工程中引入poi包。Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。
引入的步骤很简单,在pom.xml文件中加入:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
然后,在本地新建专门读取相应变量的类和方法,具体代码片段如下:

之后便可以通过以上方法获取到变量的值。

在相应的测试类中通过类似:
String username = DataFactory.GetData(DataFactory.username);
得到相应的变量
第二个问题是切换环境。
将环境配置在属性文件中,读取相应的值以读取excel表中不同环境的数据。
对不同环境的数据的读取通过以下代码实现:

之后通过切换property文件中的配置,便可以切换读取的数据,以适应不同环境的测试需要啦。
虽然如此,但是excel来管理众多的测试数据以适应不同环境的需求,还是比较繁复的,希望后续有更好的办法来简单的实现。