docker安装LuckyFrame测试平台,实现接口/UI功能测试自动化

LuckyFrame是一款开源的自动化测试平台,支持多用户、分布式测试,功能覆盖了接口自动化、WEB UI自动化、APP自动化,通过关键字驱动编写自动化用例,很大程度上解决了测试人员代码基础弱、用例开发工作量大的问题。

本文讲解,如何利用docker容器,实现LuckyFrame测试平台快速部署。

1、环境准备

  • jdk安装,建议8以上版本,参照:安装jdk新版本
  • docker安装,参照:安装Docker环境
  • 下载luckyframe编译包3.X版本,地址:http://www.luckyframe.cn/book/yhsc/hjzb-19.html

2、mysql安装

LuckyFrame使用的mysql数据库,建议5.7以上版本,参照以下步骤安装:

#1.搭建数据库(使用docker安装mysql):
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#2.进入mysql容器:
docker exec -it mysql bash
#3.使用账号密码登录
mysql -uroot -p123456
#4.创建数据库:
CREATE DATABASE luckyframe CHARACTER SET utf8;

执行 docker inspect mysql 命令,查看容器的IP地址:


在docker容器运行的服务器上,通过查询的IP地址和容器暴露端口3306可访问mysql。

3、LuckyFrame服务端安装

在百度网盘下载LuckyFrame编译包,如3.4版本,修改上传LuckyFrameWeb.jar文件到docker容器运行的服务器上,参照以下步骤安装:

  • 修改LuckyFrameWeb.jar中的配置文件,操作参照:jdk工具解压/打包jar包,配置文件application-druid.yml内容如下:
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://172.17.0.3:3306/luckyframe?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: 123456
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url: 
                username: 
                password: 
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false      
            statViewServlet:
                enabled: true
                url-pattern: /monitor/druid/*
            filter:
                stat:
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 2000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true
  • 在LuckyFrameWeb.jar同一目录,新建Dockerfile文件,编写内容
#使用jdk1.8原生镜像,需确保服务器可以连外网
FROM java:8
#创建工作目录/app
WORKDIR /app
#拷贝文件到容器工作目录
ADD LuckyFrameWeb.jar /app/LuckyFrameWeb.jar
#设置容器内部端口
EXPOSE 80 7070
#设置java内存
ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m"
#设置启动命令
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/LuckyFrameWeb.jar" ]
  • 构建服务端Docker镜像
[root@pilot-operator luckyFrame]$ docker build -t luckyframe:3.4.1 . --rm
Sending build context to Docker daemon  869.2MB
Step 1/6 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/6 : WORKDIR /app
 ---> Using cache
 ---> 67c43c48348c
Step 3/6 : ADD LuckyFrameWeb.jar /app/LuckyFrameWeb.jar
 ---> Using cache
 ---> 1f0e4d5254fc
Step 4/6 : EXPOSE 80
 ---> Using cache
 ---> a94202296121
Step 5/6 : ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m"
 ---> Using cache
 ---> 3656d3d9716f
Step 6/6 : ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar"]
 ---> Running in 9527b71ecfa8
Removing intermediate container 9527b71ecfa8
 ---> c3bc9f73410e
Successfully built c3bc9f73410e
Successfully tagged luckyframe:3.4.1

看到以上信息,表示luckyframe:3.4.1版本的镜像构建成功。注意:镜像名称不能有大写字母。

  • 启动服务端容器
#启动容器
[root@pilot-operator ~]$ docker run -p 8090:80  -p 8070 7070 --name luckyframe  -d --rm luckyframe:3.4.1

执行 docker inspect mysql 命令,查看容器的IP地址:


在docker容器运行的服务器上,通过curl http://172.17.0.2/login可访问,在docker容器运行服务器外访问,浏览器打开链接 http://服务器IP:8090/login,输入用户名admin,密码admin,点击登录。

4、客户端安装

百度网盘下载LuckyFrame客户端,为LuckyFrameClient.zip压缩文件。客户端可以运行在有jdk1.8环境的Linux或者Windows机器上,需确保客户端机器能连通服务器。

  • 解压客户端压缩包,得到LuckyFrameClient文件夹。
  • 修改客户端sys_config.properties配置文件,配置server.web.ip、server.web.port和netty.server.port参数:
#===============================系统配置=====================================
#=====仅支持客户本地文件配置,不支持服务端同步配置项======
server.web.ip=10.15.4.100
server.web.port=8090
#对应服务端项目的contextPath 默认路径 /
server.web.path=/
#==================客户端配置密钥========================
#=====仅支持客户本地文件配置,不支持服务端同步配置项======
client.verison=3.4
client.name=测试客户端
client.config.privateKey=MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJp2aRx6nTkGZndpYfvZpvyLDzEPhditeZ7JLAGApBjiaEejYytPx8qI1obQ8L8nLT2Kc9zME+p/8g8guUTv26OClzzhsedHbu70gfuQmXKguI9Eag36hBtYlqSZhPAaR0bjPVF73GgqLhbDVZKGS8mykzA5a2TB/C5vnOS9C1JZAgMBAAECgYBNTjYNKtDFWY6u9O81PRl2C6LuyvYSG8Bi2AxONDPswGOwdvWLF8LGevXjQ286PEFIK6MRPpI5Kw/awmX3OpSR10nAzLHo7KU03+1+71EpGcGt0OAudDG+Qzzz10rjyoBwV21d8utoJmy4m5MLbp7yxxZ0caGNfkJMj7QJyxsQAQJBAOtTwyqdGbhLle0rD/9WhK5huFBAaXCw21mJK/wkByVFk9ynHN1P0e3fgS4S2KOyWGEwMgfaxRxvn+Tmj8sQLkkCQQCoCBhihIZj0epYvdQdf63sgrzVlUr3d3IIlKio4JLfvo4gFGpQjV/mOlyS7AGNWf5iDFzJvpXoXET5GYkmpEORAkA784LtAEjlIpx3Z1kT+76hjlOeXkp+Yw/+p2uFOMh5PliFBi3cU9FvgFkwm6yFR5IscFLOnXVJ4UYi0nofiWfBAkBMZvnneci9hIog9ZeIHjEP9FY2a16d7RLNsgKKXyqJT9TB42Z/3/h1751+NI90HTJclLBwDxeMgr/d3+2Lw27xAkBdQqmrWTAmHPGS48CZ/VYu9repRhDmV+8nsWtX1fdU410kcfYgib7WX9Y22v4vGQrVt72waBvvEvbjWjXH+Ael
client.config.publicKey=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCadmkcep05BmZ3aWH72ab8iw8xD4XYrXmeySwBgKQY4mhHo2MrT8fKiNaG0PC/Jy09inPczBPqf/IPILlE79ujgpc84bHnR27u9IH7kJlyoLiPRGoN+oQbWJakmYTwGkdG4z1Re9xoKi4Ww1WShkvJspMwOWtkwfwub5zkvQtSWQIDAQAB
#===============================netty配置=====================================
#=====仅支持客户本地文件配置,不支持服务端同步配置项======
#netty.model为netty模式开启 例:true false   注意:netty.host为空时,默认使用IP
netty.model=true
netty.server.port=8070
netty.host=
# netty编码格式
netty.encoder=GBK
# netty解码格式
netty.decoder=UTF_8
#================================ 邮件=======================================
#smtp邮件IP 例:smtp.qq.com
mail.smtp.ip=smtp.qq.com
#smtp邮件端口 例:25
mail.smtp.port=25
#smtp邮件ssl连接开启 例:true false
mail.smtp.ssl.enable=false
#smtp邮件用户名
[email protected]
#smtp邮件用户密码
mail.smtp.password=xxxxx
#邮件模板路径
mail.freemarker.template=/email_template/
#==================Jenkins API配置========================
#jenkins访问地址,示例: http://192.168.100.100:8080/jenkins/
jenkins.url=http://localhost
#jenkins用户名
jenkins.username=test
#jenkins密码
jenkins.password=test1
#==================Web Driver配置========================
#是否高亮显示 true打开  false关闭
webdriver.highlight=false
  • 客户端启动,windows双击start_service.cmd,linux执行./start_service.sh命令。

你可能感兴趣的:(docker安装LuckyFrame测试平台,实现接口/UI功能测试自动化)