作者:小博知識(shí)分享
對(duì)于小白而言妈拌,搭建測試環(huán)境首選的有tpshop拥坛、shopxo、iwebshop這類php開發(fā)的電商網(wǎng)站尘分,雖然部署方便猜惋,但是卻跟企業(yè)實(shí)際的架構(gòu)相差太遠(yuǎn),不利于我們更好的了解和學(xué)習(xí)軟件測試培愁。`
那么著摔,對(duì)于自學(xué)軟件測試的朋友來說,是否還在為找不到可以用來練習(xí)接口自動(dòng)化的網(wǎng)站而發(fā)愁呢定续?是否在為找不到部署測試環(huán)境而發(fā)愁呢谍咆?是否不知道現(xiàn)在企業(yè)做出來的網(wǎng)站都是什么樣子呢?下面讓我?guī)Т蠹乙黄饋砹私庖幌掳桑私股。摹察。?/p>
項(xiàng)目選型:找一個(gè)前后端分離的項(xiàng)目,后端用java的springboot框架倡鲸,前端用vue框架供嚎,這個(gè)是目前用的比較多的組合。
廢話不多說,先上一波效果:
后臺(tái)管理頁面效果如下:
后臺(tái)api接口swagger文檔效果:
怎樣找一個(gè)這樣的網(wǎng)站克滴?
可以在gitee/github平臺(tái)上去搜索這樣的網(wǎng)站逼争,我通過搜索關(guān)鍵字springboot vue,在gitee上找到這么個(gè)網(wǎng)站:
地址如下:
https://gitee.com/microapp/linjiashop
項(xiàng)目介紹:
項(xiàng)目是一個(gè)電商網(wǎng)站,包含后端api接口以及swagger接口文檔偿曙,后端管理頁面氮凝,手機(jī)H5頁面以及小程序的代碼,先從后端api接口以及后端管理頁面的部署開始介紹望忆。
ps:要部署該項(xiàng)目罩阵,需要掌握以下內(nèi)容:
1、具備java基礎(chǔ)启摄,了解maven工程的打包構(gòu)建
2稿壁、了解通過npm工具構(gòu)建打包前端代碼
3、了解常見測試環(huán)境部署的一些流程歉备,掌握linux簡單命令傅是,掌握jenkins簡單用法。
找到網(wǎng)站后蕾羊,如何部署喧笔?
在這之前,我找過很多類似的開源項(xiàng)目龟再,要么就是代碼太復(fù)雜书闸,要部署很多中間件,對(duì)于我這個(gè)小白來說有點(diǎn)困難利凑,要么就是代碼寫的有問題浆劲,或者缺失sql腳本,或者沒有寫簡單的部署文檔哀澈,有點(diǎn)難以下手牌借。
下面介紹一下如何去部署選定的項(xiàng)目:
1、下載源代碼到本地
準(zhǔn)備工作:
電腦上安裝好git割按,獲取源代碼到本地膨报,本簡單看一下代碼目錄,找到doc下的相關(guān)文檔适荣,其中doc下面的database.sql為數(shù)據(jù)庫腳本
2现柠、安裝mysql數(shù)據(jù)庫并創(chuàng)建項(xiàng)目的數(shù)據(jù)庫
因?yàn)樽罱K我打算將項(xiàng)目部署到linux虛擬機(jī)里面,因此先在linux里面安裝mysql束凑。這里推薦使用docker的方式安裝mysql:
1晒旅、Docker環(huán)境搭建
2、執(zhí)行命令安裝mysql:
dockerpull mysql:5.7dockerrun -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
通過以上命令汪诉,很快速的就安裝好了mysql,然后用navicat客戶端遠(yuǎn)程連接后废恋,創(chuàng)建一個(gè)數(shù)據(jù)庫linjiashop谈秫,并創(chuàng)建用戶名linjiashop,設(shè)置密碼為linjiashop鱼鼓,并授權(quán)用戶linjiashop對(duì)該數(shù)據(jù)庫的操作權(quán)限拟烫。
3、執(zhí)行數(shù)據(jù)庫建表腳本(也可以不執(zhí)行數(shù)據(jù)庫腳本迄本,代碼中有個(gè)配置可以在本地調(diào)試的時(shí)候自動(dòng)執(zhí)行腳本)
3硕淑、編譯打包后端java代碼
要編譯打包,首先要了解項(xiàng)目的基本代碼結(jié)構(gòu)嘉赎,可以結(jié)合這個(gè)項(xiàng)目置媳,了解一下微服務(wù)架構(gòu)的概念。這里要構(gòu)建的第一個(gè)工程的包是linjiashop-admin-api文件夾下的后端接口代碼公条,該項(xiàng)目不能單獨(dú)打包拇囊,需要依賴于core工程一期構(gòu)建,為了方便靶橱,可以直接在代碼根目錄執(zhí)行命令一次性打包所有java代碼就行:
mvn-U clean package -Dmaven.test.skip=true
ps:用以上命令打包的話寥袭,需要在電腦上安裝好maven,maven的倉庫地址更換為阿里云的倉庫后关霸,打包會(huì)快一些传黄。
下面說一下linjiashop-admin-api工程打包前,代碼中需要修改的位置:
1队寇、修改代碼中的數(shù)據(jù)庫連接地址:
2膘掰、修改resources文件夾下的logback.xml文件中的fileNamePattern的值
3、下載的源代碼默認(rèn)是打包war包英上,可以改成jar包方便部署(不改也可以)
在pom.xml文件中按如下腳本進(jìn)行修改:
<packaging>jar</packaging>
4炭序、執(zhí)行mvn -U clean package -Dmaven.test.skip=true命令啤覆,然后在項(xiàng)目的target目錄中可以找到打出來的jar包苍日。將jar包用java -jar 啟動(dòng)即可,啟動(dòng)的時(shí)候可以加-server.port=8082的參數(shù)指定端口窗声。
4相恃、編譯前端代碼
1、電腦上安裝好nodejs的環(huán)境笨觅,配置環(huán)境變量拦耐,下載nginx,用來部署前端
2见剩、進(jìn)入到linjiashop-admin文件夾下面杀糯,執(zhí)行以下命令即可:
(注意打包前需要改一些配置)
本地調(diào)試的命令:
npm install --registry=https://registry.npm.taobao.orgnpm run dev
本地打包的命令:
npm install --registry=https://registry.npm.taobao.org npm run build:prod
ps: npm install 命令是安裝包的依賴,如果的比較慢的話 苍苞,可以改成如下的命令:
npm install cnpm --registry=https://registry.npm.taobao.orgcnpm installnpm run dev /? npm run build:prod
3固翰、打包前或者本地調(diào)試的時(shí)候狼纬,需要更改一些腳本:
前端代碼目錄下有一個(gè)vue.config.js的文件,里面涉及到localhost地址以及端口的骂际,可以改成后端api接口的ip和端口
如果對(duì)軟件測試疗琉、接口、自動(dòng)化歉铝、性能測試盈简、LR腳本開發(fā)、面試經(jīng)驗(yàn)交流太示。感興趣可以1079636098柠贤,群內(nèi)會(huì)有不定期的發(fā)放免費(fèi)的資料鏈接,這些資料都是從各個(gè)技術(shù)網(wǎng)站搜集类缤、整理出來的种吸,如果你有好的學(xué)習(xí)資料可以私聊發(fā)我米奸,我會(huì)注明出處之后分享給大家丈咐。
更改了上述地址后揽浙,打包部署到服務(wù)器nginx下后十兢,訪問頁面時(shí)详囤,會(huì)發(fā)現(xiàn)頁面請(qǐng)求的接口地址并沒有改成后端api部署的8082端口饰序,而還是通過前端nginx頁面的地址所對(duì)應(yīng)的端口發(fā)送的請(qǐng)求没隘,因此還需更改一個(gè)配置文件烹俗,或者通過nginx的端口轉(zhuǎn)發(fā)功能進(jìn)行配置降允。我對(duì)nginx不太熟恩闻,這里只介紹一下改代碼的方式:
找到src/utils/rquests.js文件,更改截圖中的內(nèi)容:
按照上述步驟操作之后剧董,網(wǎng)站基本上就部署完成了幢尚,頁面一些簡單的功能已經(jīng)可以使用,一些稍微復(fù)雜的功能翅楼,比如圖片上傳尉剩,還需要更改配置,這個(gè)等后面研究出來了再分享給大家毅臊,目前已經(jīng)可以拿部署的網(wǎng)站用來做UI自動(dòng)化和接口自動(dòng)化的練習(xí)了理茎,而且還可以用來練習(xí)功能測試,定位前后端問題管嬉,查看報(bào)錯(cuò)日志等皂林。
如何結(jié)合jenkins實(shí)現(xiàn)持續(xù)部署
測試環(huán)境的部署流程,一般就分為以下幾步:
1蚯撩、構(gòu)建础倍、打包
2、將文件傳到要部署的服務(wù)器
3胎挎、備份
4沟启、停服務(wù)扰楼,替換文件,啟動(dòng)服務(wù)
5美浦、監(jiān)控服務(wù)狀態(tài)弦赖,驗(yàn)證部署是否成功
jar包部署:
主要使用jenkins的Publish Over SSH插件傳文件到服務(wù)器,然后遠(yuǎn)程執(zhí)行shell腳本浦辨。
前端部署:
與jar包部署類似蹬竖,不過前端可以采用構(gòu)建成docker鏡像進(jìn)行部署。
dockerfile 主要內(nèi)容如下:
FROMnginxWORKDIR/appCOPYdist/ /usr/share/nginx/htmlEXPOSE 80RUNecho 'echo init ok!!'
setup.sh 腳本如下:
```
cd/home/jenkins/jenkins_remote_dir/workspace/linjiashop-admin-freestyle-deploy/linjiashop-admindockerstop adminui;dockerrm adminui;dockerbuild -t adminui .;dockerimages;dockerrun -p 8081:80 -d --name adminui adminui ;
```
大家如果在搭建環(huán)境過程中有疑問流酬,或者對(duì)本篇文章中的某些內(nèi)容有疑問币厕,歡迎在屏幕下方留言探討。有人喜歡創(chuàng)造世界芽腾,他們做了開發(fā)者旦装;有的人喜歡開發(fā)者,他們做了測試員摊滔。什么是軟件測試阴绢?軟件測試就是一場本該在用戶面前發(fā)生的災(zāi)難提前在自己面前發(fā)生了,這會(huì)讓他們生出一種救世主的感覺艰躺,拯救了用戶呻袭,也就拯救者這個(gè)軟件,避免了他們被卸載的命運(yùn)腺兴。
微信搜一搜【程序員一凡】關(guān)注這個(gè)文縐縐的程序員左电,關(guān)注后回復(fù)【面試】有我準(zhǔn)備的一線大廠面試資料和簡歷模板,希望大家都能找到心儀的工作页响,學(xué)習(xí)是一條時(shí)而郁郁寡歡篓足,時(shí)而開懷大笑的路,加油闰蚕。如果你通過努力成功進(jìn)入到了心儀的公司栈拖,一定不要懈怠放松,職場成長和新技術(shù)學(xué)習(xí)一樣陪腌,不進(jìn)則退辱魁。如果有幸我們江湖再見烟瞧!