如何丝滑的切换自动化脚本执行环境

168 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

切换环境的背景

在日常在工作过程中,一个项目会维护多套测试环境用于不同版本的迭代,这样可以减少一些外在因素影响迭代。这个时候,如何使用一套自动化脚本去测试多套环境的迭代就显得尤其重要

读取配置文件

因为目前项目使用的是TestNG做的接口自动化,如果使用Python的同学可以参考一下思路 java读取配置文件有多种方式

方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来 方式二:采用ResourceBundle类读取配置信息 方式三:采用ClassLoader方式进行读取配置信息 方法四:getResouceAsStream 方法五:PropertiesLoaderUtils 工具类

这里我们采用方式二,这个方式更加适合我们当前的项目,同时方便接入我们现有的工具平台,通过命令行的方式,动态切换测试环境

public class Env {
    public String chooseEnv(){
    # 读取config.properties 文件
        ResourceBundle envBundle = ResourceBundle.getBundle("config");
        #读取env的值
        return envBundle.getString("env");
    }
}
public class test {

    public static void main(String[] args) {
        String env =new Env().chooseEnv();
        ResourceBundle bundle = ResourceBundle.getBundle(env);
        String url = bundle.getString("test.url");
        System.out.println(url);
    }

}

项目目录结构:

在这里插入图片描述

配置文件的内容

config.properties

env=test1

test1.properties

test.url=http://test1.com

test2.properties

test.url=http://test2.com

运行效果

此时 config.properties 文件的内容指向的是test1,所以当我们运行test.java中的main方法时,这里指定的url 就是test1环境的,如果需要指向test2,将内容指向test2即可。 在这里插入图片描述 在测试工具平台中可以通过

-D=  :  set a system property  设置系统属性。

java -Denv="test1" -jar test.jar    

的方式来切换测试环境

总结

通过配置文件的方式,将各个测试环境的差异化配置单独拎出来,再配合平台的动态系统配置可丝滑的实现环境的切换。如果有CICD的接入,在构建时增加上自动化回归测试的卡点,进一步保障了代码上线的质量