从零搭建自动化测试平台
概述
LuckyFrame LuckyFrame官网
这里我选的是一个 开源自动化测试平台 LuckyFrame,感兴趣小伙伴可以去官网深挖。
平台特点:
- 分布式测试:使用Web-Client的方式,Web端负责基本信息管理展示,Client负责用例执行,任意无限扩展客户端。
- 专业用例管理:自动化用例的专业管理方式,让您编写自动化用例更简单,直观。
- 质量管理:Web端不仅仅有用来管理自动化相关的模块,更可以做一些简单的质量数据收集分析以及数据的多图表展示。
- 多线程执行用例:客户端执行用例可以指定线程数量,用例运行更快速。
- 多语言驱动:支持JAVA以及Python语言编写测试驱动,自动化测试手段更加灵活多变。
- 定时任务调度:支持自定义配置调度任务,包括指定线程数,指定执行客户端,远程执行shell重启tomcat,对jenkins中的项目进行构建等。
- 测试过程监控:客户端运行用例采用命令行的方式,在客户端可以实时查看过程。Web端可以通过任务查询查看测试进度。
- 日志定位:客户端LOG4J+数据库记录测试过程日志,2种方式都可以通过Web端实时查看定位问题。
- 接口+Web UI+移动端UI多纬度自动化:支持接口+Web UI+移动端UI自动化,Web UI自动化采用WebDriver3.0封装,移动端UI自动化采用APPIUM封装,纯关键字驱动,0编码。
- HTTP+Socket接口免编码:完全封装HTTP以及Socket接口,协议模板+纯关键字驱动,免编码,初级测试人员的福音,与其他类似开源工具相比优势明显
- 在线调试用例:用例步骤管理界面直接调试自动化用例,避免使用开发工具调试带来的麻烦,省心、省力、省脑子,但是不能不要脑子。
- Bootstrap 小清新风格界面:整套Web系统基于Bootstrap风格,以及多种其下的插件,构建清爽界面。
近期媳妇想从功能测试进阶测试开发,本着替老婆排忧解难的原则,我决定先下水探探路。话不多说开整:
环境
这里我准备了一台阿里云 ECS ,用于搭建平台。
-
型号 :ecs.t5
-
系统 :Ubuntu 18.04 64位
-
CPU :2 核
-
内存 :8 GB
-
磁盘 :40 GB ESSD 云盘,能够提供 2021 IOPS 。
JDK、MySQL、Nginx我们选择OneinStack一键安装 OneinStack官网
我们把想要安装的插件选上,复制安装命令
命令输入静待ing.......
⌛️
安装完毕耗时8分钟
打开浏览器输出服务器IP后OneinStack首页出现,🎉恭喜你安装成功!
数据库
MySQL有了那么下面我们先创建平台数据库
首先先切OneinStack目录,这里我的路径是【cd /oneinstack】有的可能是【cd /root/oneinstack】
进入OneinStack目录后,先查看数据库默认root密码【grep dbrootpwd options.conf】
OK 密码有了我们继续,登录mysql 【mysql -u root -p】输入密码回车进入mysql
下面重点来了:
我们先创建一个新用户
mysql > drop user if exists 'luckyframe'@'%';创建数据库
mysql > create database luckyframe default character set utf8mb4 collate utf8mb4_unicode_ci;切换用户
mysql > use luckyframe;添加用户名密码
luckyframe > create user 'luckyframe'@'%' identified by 'luckyframe123456';赋予用户权限
luckyframe > grant all privileges on luckyframe.* to 'luckyframe'@'%';刷新
luckyframe > flush privileges;结束测试一下
连接成功!数据库篇结束!!!
部署
数据库准备完,接下来就是修改配置、打包、部署。
idea打包
用过idea的小伙伴,应该知道idea用maven打包很简单。不过没用的小伙伴也不用着急下面有直接服务器打包的方式。
首先download代码,这里用过idea的小伙伴都知道,就不多讲了
git:https://gitee.com/seagull1985/LuckyFrameWeb.git
第一步当然先把数据库的配置修改了
因为服务器80端口一般都会被占用,这里我们把端口改成8888
ps:重点!!!这里我遇到了一个坑
LuckyFrameWebLuckyFrameWeb是Flyway来管理数据库版本,但是Flyway的5.2.2版本有时候会出现很多奇怪的问题,官方现在是引用5.3,因此我们需要把版本降下来,这里我引用的是5.2.1
下面就简单了,找到maven执行install,结束在你的工程 target下会有个LuckyFrameWeb.jar
把包放到服务器的data文件夹下
在服务上找到这个包
【nohup java -jar LuckyFrameWeb.jar &】后台执行java -jar
【tail -f nohup.out】查看日志
ps:重点!!!用阿里云服务的小伙伴一定要记得要关闭防火墙和开发安全组端口
打开浏览器 输入 服务器IP:8888
默认账号密码:admin | admin
idea打包 over
服务器打包
下面我们进行服务器打包,第一步当然是装个maven啦
我们先下载压缩包
解压缩【tar zxvf apache-maven-3.6.3-bin.tar.gz】
解压完成后生成一个目录:apache-maven-3.6.3
转移至固定目录(可选,但推荐)
$ # 推荐放在 /usr/local/maven 下
$【mkdir /usr/local/maven】
$【sudo mv apache-maven-3.6.3 /usr/local/maven/】
配置环境变量
$ # 这一步的目的是让系统可以通过 PATH 找到 maven 的可执行文件
$【echo "MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3" >> ~/.bashrc】
$【echo "PATH=${PATH}:${MAVEN_HOME}/bin" >> ~/.bashrc】
$【 echo "export PATH" >> ~/.bashrc】
$【 source ~/.bashrc】
检查是否安装成功 【mvn -v】
maven OK了,下一步download代码
https://gitee.com/seagull1985/LuckyFrameWeb?_from=gitee_search
手动下载zip包,迁移到服务器home文件夹
老规矩,切换目录,解压zip包 【unzip LuckyFrameWeb-master.zip】
这里我们可以看到代码已解压
老规矩,修改配置,上面idea的步骤来一遍
接下来该打包了,我们先切换到LuckyFrameWeb目录【cd /home/LuckyFrameWeb-master】
打包【mvn install】
结束我们可以看见target也有我们要的包了
把包转移到data目录下
【cd /home/LuckyFrameWeb-master/target】
【sudo cp LuckyFrameWeb.jar /data】
老规矩
【cd /】【cd data/】切换目录
【nohup java -jar LuckyFrameWeb.jar &】后台执行java -jar
【tail -f nohup.out】查看日志
打开浏览器 输入 服务器IP:8888
默认账号密码:admin | admin
呼~ 完结撒花? nonono既然是自动化平台怎么能手动打包呢,接下来我们进行自动化部署
自动化部署
来吧,先安装Jenkins
配置环境变量,在/etc/profile中添加
export JAVA_HOME=/usr/lib/jvm/Java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
使配置立即生效(无需重启)【source /etc/profile】
安装jenkins
【wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - 】
【sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ >】
【/etc/apt/sources.list.d/jenkins.list' 】
【sudo apt-get update 】
【sudo apt-get install jenkins】
jenkins的默认端口是8080这里我们修改一下
找到 /etc/default/jenkins文件
修改端口为8989
启动jenkins 【/etc/init.d/jenkins restart】
浏览器访问 IP:8989
根据提示找到initialAdminPassword文件,打开复制密码
选择跳过插件安装
进入首页,英文??那么先把必要插件安装上
先把汉化包安装上
刷新,汉化了
继续安装Maven、Git插件
插件安装完,开始配置环境
新增JDK -》取消自动安装 -》添加默认JDK地址【/usr/lib/jvm/java-1.8.0-openjdk-amd64】
新增maven -》取消自动安装 -》添加默认maven地址【/usr/local/maven/apache-maven-3.6.3】
应用保存,开始创建任务
Git仓库这里小伙伴自行百度吧,文章太长了。。。。。
实在不行可以用官网 Git仓库地址 git:https://gitee.com/seagull1985/LuckyFrameWeb.git
ps:官网 Git仓库地址的小伙伴要注意配置文件!!!否则项目可能启不来!!!
下面先构建mave命令
然后开始构建shell
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe
#指定最后编译好的jar存放的位置
www_path=/data
#Jenkins中编译好的jar位置
jar_path=/var/lib/jenkins/workspace/test/luckyframe/target
#Jenkins中编译好的jar名称
jar_name=LuckyFrameWeb.jar
#进入指点的编译好的jar的位置
cd ${jar_path}
#将编译好的jar复制到最后指定的位置
cp ${jar_path}/${jar_name} ${www_path}
#进入最后指定存放jar的位置
cd ${www_path}
#启动jar,指定SpringBoot的profiles为test,后台启动
java -jar ${jar_name} &
应用保存,开始构建
问题又来了,jenkins无权限
找到 /etc/default/jenkins 文件修改权限为root
运行jps -l 找到jenkins进程
kill 30861 杀死进程 【/etc/init.d/jenkins restart】再重启
再次构建
登录
完结撒花!!!
ps:jenkins还可以添加优化每次启动自动杀死上一个进程等等,luckyframe功能也可以自行探索
总结
以上是生活随笔为你收集整理的从零搭建自动化测试平台的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java 基础类型 —— Short
- 下一篇: 如何关闭eslint相关规则