51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2313|回复: 0
打印 上一主题 下一主题

基于 Docker 集群的分布式测试系统 DDT (DockerDistributedTest) 【下】

[复制链接]
  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2017-8-9 13:33:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 八戒你干嘛 于 2017-8-9 14:52 编辑

    3-3. JobTracker中转站

    详见https://github.com/ltsopensource/light-task-scheduler中JobTracker和LTS-Admin(管理后台)部署wiki,需要配zookeeper和mysql,事先要启这2个服务。

    3-4.执行用例Docker集群

    单个执行用例Docker容器由TaskTracker、测试工程、Java环境、Maven等组成;

    Dockerfile如下:

    1. FROM progrium/busybox
    2. MAINTAINER hugang <hugang1010@163.com>

    3. # Install cURL
    4. RUN opkg-install curl

    5. # Java Version
    6. ENV JAVA_VERSION_MAJOR 8
    7. ENV JAVA_VERSION_MINOR 91
    8. ENV JAVA_VERSION_BUILD 14
    9. ENV JAVA_PACKAGE jdk

    10. # Download and unarchive Java
    11. RUN curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie"\
    12. http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-b${JAVA_VERSION_BUILD}/${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz \
    13. | gunzip -c - | tar -xf - -C /opt &&\
    14. ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} /opt/jdk &&\
    15. rm -rf /opt/jdk/*src.zip \
    16. /opt/jdk/lib/missioncontrol \
    17. /opt/jdk/lib/visualvm \
    18. /opt/jdk/lib/*javafx* \
    19. /opt/jdk/jre/lib/plugin.jar \
    20. /opt/jdk/jre/lib/ext/jfxrt.jar \
    21. /opt/jdk/jre/bin/javaws \
    22. /opt/jdk/jre/lib/javaws.jar \
    23. /opt/jdk/jre/lib/desktop \
    24. /opt/jdk/jre/plugin \
    25. /opt/jdk/jre/lib/deploy* \
    26. /opt/jdk/jre/lib/*javafx* \
    27. /opt/jdk/jre/lib/*jfx* \
    28. /opt/jdk/jre/lib/amd64/libdecora_sse.so \
    29. /opt/jdk/jre/lib/amd64/libprism_*.so \
    30. /opt/jdk/jre/lib/amd64/libfxplugins.so \
    31. /opt/jdk/jre/lib/amd64/libglass.so \
    32. /opt/jdk/jre/lib/amd64/libgstreamer-lite.so \
    33. /opt/jdk/jre/lib/amd64/libjavafx*.so \
    34. /opt/jdk/jre/lib/amd64/libjfx*.so


    35. # Set environment
    36. ENV JAVA_HOME /opt/jdk
    37. ENV PATH ${PATH}:${JAVA_HOME}/bin

    38. # maven
    39. ENV MAVEN_VERSION 3.3.9

    40. RUN mkdir -p /usr/share/maven \
    41. && curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \
    42. | gunzip -c - | tar -xf - -C /usr/share/maven \
    43. && ln -s /usr/share/maven/apache-maven-${MAVEN_VERSION}/bin/mvn /usr/bin/mvn

    44. ENV MAVEN_HOME /usr/share/maven

    45. RUN mkdir /FastTest

    46. RUN mkdir /lts-examples

    47. # test cases project
    48. ADD FastTest /FastTest

    49. # tasktracker
    50. ADD lts-examples /lts-examples

    51. # Executer shell
    52. ADD runcase.sh /

    53. # add settings.xml
    54. ADD settings.xml /

    55. WORKDIR /lts-examples/lts-example-tasktracker/lts-example-tasktracker-java/


    56. # CMD run maven
    57. CMD mvn exec:java -Dexec.mainClass="com.github.ltsopensource.example.java.Main" -s /settings.xml
    复制代码

    Docker容器使用了busybox基础镜像,该基础镜像占用空间较少;

    将测试工程FastTest, lts-examples(TaskTracker), runcase.sh(job任务执行的脚本,执行TestNG), settings.xml(私有仓库等配置等)添加到镜像中;启动docker容器时,同时把TaskTracker任务启起来。

    启动容器:

    1. docker run -d --net=host -v /data1/hugang/docker-distributedtest/docker-addresource/lib_path:/lib_path -it docker-distributed-self


    2. -v参数指将实体机下/data1/hugang/docker-distributedtest/docker-addresource/lib_path挂载到docker容器/lib_path目录下
    复制代码

    docker集群使用swarm, 具体搭建参见:
    https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/

    或在RIO 2607的博客里找到中文版的搭建方式

    3-5.测试结果解析器

    直接在测试工程里执行分布式任务,stdout如下:




    将每个docker容器执行用例结果进行归并和展示。

    4.总结

    分布式测试系统维护的成本是比较高的,当执行的用例数在千级以下,是没必要弄这套东西的;如果当你的执行用例数在千级以上,维护分布式测试系统,还是适合的,用空间换时间,减少你的时间成本。

    DockerDistributedTest系统还在初级阶段,还有很多优化点,比如回传的结果怎么截取,只传回必要数据;结果可视化等等。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-9 06:11 , Processed in 0.060231 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表