上一篇: Lombok 介绍

一、问题场景

自动化规则测试环境,使用python2编写,依赖于redis-py-cluster,pykafka,futures,mysql-python。在本地搭建测试环境,python安装 没有出现问题,但是在安装python插件时,遇到问题较多,解决花费时间较长,且未能完全解决,导致测试环境迟迟不能运行。所以决定采用docker来 搭建测试环境。

二、搭建步骤

以下为搭建环境的步骤

  1. 安装docker环境不提
  2. 创建基本python环境,并安装插件
    • 创建Dockerfile文件
    • 在Dockerfile中输入如下代码 ``` FROM centos:7 MAINTAINER Augustus “qianwx@asiainfo.com”

RUN yum -y update RUN yum -y install epel-release RUN yum -y install python-pip RUN yum -y install mysql-devel RUN yum -y install python-devel RUN yum -y install MySQL-python RUN pip install –upgrade pip RUN pip install pykafka RUN pip install mysql RUN pip install redis-py-cluster RUN pip install futures

* build 基本镜像,执行命令

docker build py_auto:v1 .

3. 创建支持java命令环境
* 创建Dockerfile
mkdir v2 && cd v2 &&  vi Dockerfile ``` * 从oracle下载linux-jdk8到当前目录 * 在Dockerfile中输入如下命令 ``` FROM py_auto_base:v2 MAINTAINER Augustus "qianwx@asiainfo.com"

ADD ./jdk-8u151-linux-x64.rpm /opt/ RUN rpm -ivh /opt/jdk-8u151-linux-x64.rpm RUN rm -f /opt/jdk-8u151-linux-x64.rpm

* 执行如下命令

docker build py_auto:v2 .

4. 创建测试环境
* 在项目目录下创建Dockerfile
* 在Dickerfile中输入如下命令

FROM py_auto_base:v2 MAINTAINER Augustus “qianwx@asiainfo.com”

RUN mkdir /py_auto VOLUME [“/py_auto”]

CMD [“/bin/bash”]

* 运行命令

docker build auto_test:v1 .


## 三、运行并执行测试
 如果上面一切顺利,那我们这边已经成功构建了auto_test:v1镜像。下面我们来启动镜像并运行测试环境。
 * 启动镜像

docker run -v /Users/augustus/asiawork/pytest/py-autotest-frame:/py_auto –name auto_test -d -it auto_test:v1

 * 运行测试
docker exec auto_test python /py_auto/pyautotestframe/pyautotestframe.py -m sample-test  ```  这样成功运行了测试实例。

四、一点心得

  1. 采用docker,快速的搭建了测试环境,在新增人员的情况下,可以节省不少时间在环境搭建上。就是对于开发 者也可以避免很多搭建环境的问题。
  2. 本示例采用的是每次一执行,所以使用docker exec,在有些情况下,需要启动镜像便运行环境的时候,可以 在Dockerfile中使用ENTRTPOINT来以使镜像启动便运行。
上一篇: Lombok 介绍