从零搭建自动化测试平台
概述
LuckyFrame LuckyFrame官網(wǎng)
這里我選的是一個 開源自動化測試平臺?LuckyFrame,感興趣小伙伴可以去官網(wǎng)深挖。
平臺特點:
- 分布式測試:使用Web-Client的方式,Web端負(fù)責(zé)基本信息管理展示,Client負(fù)責(zé)用例執(zhí)行,任意無限擴(kuò)展客戶端。
- 專業(yè)用例管理:自動化用例的專業(yè)管理方式,讓您編寫自動化用例更簡單,直觀。
- 質(zhì)量管理:Web端不僅僅有用來管理自動化相關(guān)的模塊,更可以做一些簡單的質(zhì)量數(shù)據(jù)收集分析以及數(shù)據(jù)的多圖表展示。
- 多線程執(zhí)行用例:客戶端執(zhí)行用例可以指定線程數(shù)量,用例運(yùn)行更快速。
- 多語言驅(qū)動:支持JAVA以及Python語言編寫測試驅(qū)動,自動化測試手段更加靈活多變。
- 定時任務(wù)調(diào)度:支持自定義配置調(diào)度任務(wù),包括指定線程數(shù),指定執(zhí)行客戶端,遠(yuǎn)程執(zhí)行shell重啟tomcat,對jenkins中的項目進(jìn)行構(gòu)建等。
- 測試過程監(jiān)控:客戶端運(yùn)行用例采用命令行的方式,在客戶端可以實時查看過程。Web端可以通過任務(wù)查詢查看測試進(jìn)度。
- 日志定位:客戶端LOG4J+數(shù)據(jù)庫記錄測試過程日志,2種方式都可以通過Web端實時查看定位問題。
- 接口+Web UI+移動端UI多緯度自動化:支持接口+Web UI+移動端UI自動化,Web UI自動化采用WebDriver3.0封裝,移動端UI自動化采用APPIUM封裝,純關(guān)鍵字驅(qū)動,0編碼。
- HTTP+Socket接口免編碼:完全封裝HTTP以及Socket接口,協(xié)議模板+純關(guān)鍵字驅(qū)動,免編碼,初級測試人員的福音,與其他類似開源工具相比優(yōu)勢明顯
- 在線調(diào)試用例:用例步驟管理界面直接調(diào)試自動化用例,避免使用開發(fā)工具調(diào)試帶來的麻煩,省心、省力、省腦子,但是不能不要腦子。
- Bootstrap 小清新風(fēng)格界面:整套Web系統(tǒng)基于Bootstrap風(fēng)格,以及多種其下的插件,構(gòu)建清爽界面。
近期媳婦想從功能測試進(jìn)階測試開發(fā),本著替老婆排憂解難的原則,我決定先下水探探路。話不多說開整:
環(huán)境
這里我準(zhǔn)備了一臺阿里云 ECS ,用于搭建平臺。
-
型號 :ecs.t5
-
系統(tǒng) :Ubuntu 18.04 64位
-
CPU :2?核
-
內(nèi)存 :8 GB
-
磁盤 :40 GB ESSD 云盤,能夠提供 2021 IOPS 。
JDK、MySQL、Nginx我們選擇OneinStack一鍵安裝?OneinStack官網(wǎng)
?我們把想要安裝的插件選上,復(fù)制安裝命令
??
命令輸入靜待ing.......
???
安裝完畢耗時8分鐘
?打開瀏覽器輸出服務(wù)器IP后OneinStack首頁出現(xiàn),🎉恭喜你安裝成功!
數(shù)據(jù)庫
MySQL有了那么下面我們先創(chuàng)建平臺數(shù)據(jù)庫
首先先切OneinStack目錄,這里我的路徑是【cd /oneinstack】有的可能是【cd /root/oneinstack】
進(jìn)入OneinStack目錄后,先查看數(shù)據(jù)庫默認(rèn)root密碼【grep dbrootpwd options.conf】
OK 密碼有了我們繼續(xù),登錄mysql?【mysql -u root -p】輸入密碼回車進(jìn)入mysql
下面重點來了:
我們先創(chuàng)建一個新用戶
mysql > drop user if exists 'luckyframe'@'%';創(chuàng)建數(shù)據(jù)庫
mysql > create database luckyframe default character set utf8mb4 collate utf8mb4_unicode_ci;切換用戶
mysql > use luckyframe;添加用戶名密碼
luckyframe > create user 'luckyframe'@'%' identified by 'luckyframe123456';賦予用戶權(quán)限
luckyframe > grant all privileges on luckyframe.* to 'luckyframe'@'%';刷新
luckyframe > flush privileges;結(jié)束測試一下
連接成功!數(shù)據(jù)庫篇結(jié)束!!!
部署
數(shù)據(jù)庫準(zhǔn)備完,接下來就是修改配置、打包、部署。
idea打包
用過idea的小伙伴,應(yīng)該知道idea用maven打包很簡單。不過沒用的小伙伴也不用著急下面有直接服務(wù)器打包的方式。?
?首先download代碼,這里用過idea的小伙伴都知道,就不多講了
git:https://gitee.com/seagull1985/LuckyFrameWeb.git
第一步當(dāng)然先把數(shù)據(jù)庫的配置修改了?
因為服務(wù)器80端口一般都會被占用,這里我們把端口改成8888
?ps:重點!!!這里我遇到了一個坑
LuckyFrameWebLuckyFrameWeb是Flyway來管理數(shù)據(jù)庫版本,但是Flyway的5.2.2版本有時候會出現(xiàn)很多奇怪的問題,官方現(xiàn)在是引用5.3,因此我們需要把版本降下來,這里我引用的是5.2.1
下面就簡單了,找到maven執(zhí)行install,結(jié)束在你的工程?target下會有個LuckyFrameWeb.jar
?把包放到服務(wù)器的data文件夾下
?在服務(wù)上找到這個包
?【nohup java -jar LuckyFrameWeb.jar &】后臺執(zhí)行java -jar
?【tail -f nohup.out】查看日志
?ps:重點!!!用阿里云服務(wù)的小伙伴一定要記得要關(guān)閉防火墻和開發(fā)安全組端口
打開瀏覽器 輸入 服務(wù)器IP:8888?
默認(rèn)賬號密碼:admin | admin
idea打包 over
服務(wù)器打包
下面我們進(jìn)行服務(wù)器打包,第一步當(dāng)然是裝個maven啦
我們先下載壓縮包
解壓縮【tar zxvf apache-maven-3.6.3-bin.tar.gz】
解壓完成后生成一個目錄:apache-maven-3.6.3
?轉(zhuǎn)移至固定目錄(可選,但推薦)
$ # 推薦放在 /usr/local/maven 下
$【mkdir /usr/local/maven】
$【sudo mv apache-maven-3.6.3 /usr/local/maven/】
配置環(huán)境變量
$ # 這一步的目的是讓系統(tǒng)可以通過 PATH 找到 maven 的可執(zhí)行文件
$【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包,遷移到服務(wù)器home文件夾?
?
老規(guī)矩,切換目錄,解壓zip包 【unzip LuckyFrameWeb-master.zip】
?這里我們可以看到代碼已解壓
?老規(guī)矩,修改配置,上面idea的步驟來一遍
?接下來該打包了,我們先切換到LuckyFrameWeb目錄【cd /home/LuckyFrameWeb-master】
打包【mvn install】
?結(jié)束我們可以看見target也有我們要的包了
?把包轉(zhuǎn)移到data目錄下
【cd /home/LuckyFrameWeb-master/target】
【sudo cp LuckyFrameWeb.jar /data】
?老規(guī)矩
?【cd /】【cd data/】切換目錄
?【nohup java -jar LuckyFrameWeb.jar &】后臺執(zhí)行java -jar
?【tail -f nohup.out】查看日志
打開瀏覽器 輸入 服務(wù)器IP:8888?
默認(rèn)賬號密碼:admin | admin
呼~ 完結(jié)撒花? nonono既然是自動化平臺怎么能手動打包呢,接下來我們進(jìn)行自動化部署
自動化部署
來吧,先安裝Jenkins
配置環(huán)境變量,在/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的默認(rèn)端口是8080這里我們修改一下
找到 /etc/default/jenkins文件
修改端口為8989?
?
?啟動jenkins 【/etc/init.d/jenkins restart】
瀏覽器訪問 IP:8989?
??根據(jù)提示找到initialAdminPassword文件,打開復(fù)制密碼
?
選擇跳過插件安裝
??
??
進(jìn)入首頁,英文??那么先把必要插件安裝上
??
?先把漢化包安裝上?
刷新,漢化了
??
繼續(xù)安裝Maven、Git插件
??
插件安裝完,開始配置環(huán)境
新增JDK -》取消自動安裝 -》添加默認(rèn)JDK地址【/usr/lib/jvm/java-1.8.0-openjdk-amd64】
?新增maven -》取消自動安裝 -》添加默認(rèn)maven地址【/usr/local/maven/apache-maven-3.6.3】
?應(yīng)用保存,開始創(chuàng)建任務(wù)
?Git倉庫這里小伙伴自行百度吧,文章太長了。。。。。
實在不行可以用官網(wǎng)?Git倉庫地址??git:https://gitee.com/seagull1985/LuckyFrameWeb.git
ps:官網(wǎng)?Git倉庫地址的小伙伴要注意配置文件!!!否則項目可能啟不來!!!
?
?下面先構(gòu)建mave命令
?
然后開始構(gòu)建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
#進(jìn)入指點的編譯好的jar的位置
cd ${jar_path}
#將編譯好的jar復(fù)制到最后指定的位置
cp ${jar_path}/${jar_name} ${www_path}
#進(jìn)入最后指定存放jar的位置
cd ${www_path}
#啟動jar,指定SpringBoot的profiles為test,后臺啟動
java -jar ${jar_name} &
?應(yīng)用保存,開始構(gòu)建
?問題又來了,jenkins無權(quán)限
找到 /etc/default/jenkins 文件修改權(quán)限為root
?運(yùn)行jps -l 找到j(luò)enkins進(jìn)程
?kill 30861 殺死進(jìn)程 【/etc/init.d/jenkins restart】再重啟
再次構(gòu)建
?登錄
完結(jié)撒花!!!
ps:jenkins還可以添加優(yōu)化每次啟動自動殺死上一個進(jìn)程等等,luckyframe功能也可以自行探索?
總結(jié)
以上是生活随笔為你收集整理的从零搭建自动化测试平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 基础类型 —— Short
- 下一篇: 如何关闭eslint相关规则