持續(xù)集成 (Continuous integration,簡(jiǎn)稱(chēng)CI)
持續(xù)集成是一種開(kāi)發(fā)實(shí)踐,它倡導(dǎo)團(tuán)隊(duì)成員頻繁的集成他們的工作,每次集成都通過(guò)自動(dòng)化構(gòu)建(包括編譯、構(gòu)建、打包、部署、自動(dòng)化測(cè)試)來(lái)驗(yàn)證,從而盡快地發(fā)現(xiàn)集成中的錯(cuò)誤。讓產(chǎn)品可以快速迭代,同時(shí)還能保持高質(zhì)量。
Jenkins是基于Java開(kāi)發(fā)的持續(xù)集成工具,開(kāi)源免費(fèi),官網(wǎng):https://jenkins.io/
測(cè)試常用的場(chǎng)景: 使用Jenkins實(shí)現(xiàn)自動(dòng)化的持續(xù)集成測(cè)試,達(dá)到無(wú)人值守測(cè)試的境界?!踞尫湃肆?7 *24】
- 代碼提交給Jenkins
- Jenkins做好定時(shí)任務(wù): 持續(xù)構(gòu)建執(zhí)行
- 構(gòu)建完成后把測(cè)試報(bào)告發(fā)送郵箱,查看結(jié)果,定位分析問(wèn)題。
【allure報(bào)告】
一、安裝和配置Jenkins【依賴(lài)java環(huán)境:安裝Java環(huán)境-JDK】
安裝Java環(huán)境-JDK
1、電腦安裝好jdk,配置環(huán)境變量;
- 在系統(tǒng)變量中添加JAVA_HOME,對(duì)應(yīng)的值是jdk的安裝路徑 【】
- 在系統(tǒng)變量path里面,追加%JAVA_HOME%\bin
- 在命令行模式下,輸入:java -version
安裝Jenkins
2、【免安裝Jenkins】-安裝包里面有安裝好了所需要的插件+組件,Jenkins默認(rèn)訪(fǎng)問(wèn)外網(wǎng)的,建議大家使用我的Jenkins免安裝版本
- windows下啟動(dòng) D:\apache-tomcat-8.5.43\bin 點(diǎn)擊 startup.bat
- jenkins運(yùn)行時(shí),這個(gè)腳本框要一直啟動(dòng)著
- 訪(fǎng)問(wèn)jenkins地址(本地回環(huán)地址)
-
http://localhost:8080/jenkins/
或http://127.0.0.1:8080/jenkins/
-
注意:學(xué)習(xí)的階段,Jenkins部署在本地的,只能在我的局域網(wǎng)內(nèi)部訪(fǎng)問(wèn);
真實(shí)的工作中,Jenkins部署在公司的服務(wù)器里面,外網(wǎng)訪(fǎng)問(wèn)公司里面,會(huì)由開(kāi)發(fā)/運(yùn)維會(huì)提前幫你部署的,不需要你部署的。
- 登錄: 默認(rèn)用戶(hù)名:admin
- 初始密碼:
- C:\Users\Administrator.jenkins\secrets\initialAdminPassword 獲取
配置Jenkins
3、Jenkins里配置jdk和git、allure、郵箱等
進(jìn)入Manage Jenkins -> Configure System:
1)配置系統(tǒng)管理員郵箱地址:
2)配置Extended E-mail Notification:
常見(jiàn)郵箱服務(wù)地址:https://blog.csdn.net/ning521513/article/details/79217203
這個(gè)SMTP服務(wù)密碼:是一串如下的隨機(jī)碼,請(qǐng)逐字輸入:
3) 以類(lèi)似的配置配置Email Notification:
4)點(diǎn)擊測(cè)試郵件配置是否OK。
Jenkins在運(yùn)行中需要使用各種工具環(huán)境,包括JDK、Git、Allure等,我們需要在Jenkins所在主機(jī)關(guān)聯(lián)配置這些工具。
1、jdk配置:manager Jenkins > Global Tool Configuration >
2、git的配置: 前提你的系統(tǒng)環(huán)境變量里配置好了git環(huán)境變量?!緋ath里配置了git的環(huán)境變量】
3、allure的配置:
注意:如果沒(méi)有這個(gè)配置,需要去安裝對(duì)應(yīng)的插件。manager Jenkins >Manger Plugins>可選插件 ,搜索allure 安裝即可。
以上準(zhǔn)備工作做好之后,我們可以開(kāi)始配置Jenkins做自動(dòng)化項(xiàng)目的持續(xù)集成了。
二:Jenkins新建工程
1、新建Item
2、輸入一個(gè)任務(wù)名稱(chēng) ---- 建議盡量英文/數(shù)字形式
3、點(diǎn)擊選中 Freestyle project
4、點(diǎn)擊【確定】
此時(shí),jenkins首頁(yè)已經(jīng)有了你剛創(chuàng)建的工程 (球是灰色–因?yàn)槟銢](méi)有構(gòu)建過(guò))
每個(gè)項(xiàng)目都有自己的工作區(qū),是用來(lái)放代碼的
添加憑據(jù)L:確保是gitee上可以登錄成功的用戶(hù)名和密碼。
1)類(lèi)型:Usernamewith password
2)用戶(hù)名:gitee賬戶(hù) 3)密碼:gitee密碼
1、xxxx工作空間 —> 配置—>構(gòu)建—>增加構(gòu)建步驟
2、選擇 Execute Windows batch command
3、輸入命令 :如python main.py 或 python run.py
構(gòu)建觸發(fā)器【實(shí)現(xiàn)定時(shí)任務(wù)】–無(wú)人值守測(cè)試
xxxx工作空間 —> 配置—>構(gòu)建觸發(fā)器
2、定時(shí)構(gòu)建: 點(diǎn)擊日程表 右側(cè) ?
2、定時(shí)構(gòu)建: 點(diǎn)擊日程表 右側(cè) ?
* * * * *
分鐘【0-59】 小時(shí)【0-23】 日【1-31】月【1-12】 周【0-7 】
1、每天的晚上八點(diǎn)鐘執(zhí)行代碼: 0 20 * * *
2、每月的10號(hào)晚上0點(diǎn)執(zhí)行: 0 0 10 * *、
3、每天晚上的八點(diǎn)10分到15分: 10-15 20 * * *
4、每間隔10分鐘: */10 * * * *
5、每間隔1小時(shí): * /1 * * *
6、前三十分鐘內(nèi)每間隔5分鐘: 0-30/5 * * * *
7、每天的20,21,23點(diǎn)執(zhí)行: 0 20,21,23 * * *
8、每周一-周五(工作日期間)間隔4小時(shí)執(zhí)行自動(dòng)化測(cè)試任務(wù): */4 * * 1-5
也可以與其他的任務(wù)關(guān)聯(lián)(Build after other projects are built)實(shí)際有可能我們運(yùn)行項(xiàng)目不是一定要定時(shí)去執(zhí)行的,可能開(kāi)發(fā)每次發(fā)版我們就需要構(gòu)建我們的自動(dòng)化測(cè)試腳本,來(lái)測(cè)試開(kāi)發(fā)的新代碼是否存在問(wèn)題。等到開(kāi)發(fā)的Jenkins任務(wù)構(gòu)建結(jié)束之后再開(kāi)始構(gòu)建我們的自動(dòng)化測(cè)試任務(wù)
添加allure報(bào)告
xxxx工作空間 —> 配置—>構(gòu)建后操作
添加allure report
添加完成后,每次構(gòu)建完成后,都會(huì)生成allure的報(bào)告文件。
添加后再次構(gòu)建就會(huì)出現(xiàn)allure報(bào)告。
構(gòu)建后操作 -發(fā)送郵件
https://blog.csdn.net/Wjhsmart/article/details/109203361 查詢(xún)郵箱smtp服務(wù)地址
工作空間 —> 配置—>構(gòu)建后操作 -> Editable Email Notification
郵件內(nèi)容HTML模板: 【直接復(fù)制即可】
項(xiàng)目名稱(chēng):${PROJECT_NAME}<br><hr>
構(gòu)建編號(hào):${BUILD_NUMBER}<br><hr>
構(gòu)建狀態(tài):${BUILD_STATUS}<br><hr>
觸發(fā)原因:${CAUSE}<br><hr>
測(cè)試報(bào)告:<a href="${BUILD_URL}allure/">${BUILD_URL}allure/</a>
<br><hr>
郵件內(nèi)容HTML模板: 【直接復(fù)制即可】
構(gòu)建日志地址:<a
href="${BUILD_URL}console">${BUILD_URL}console/</a><br><hr>
allure報(bào)告定制
參考文章:testingpai.com/article/1595507295429
裝飾器: 增強(qiáng) 擴(kuò)展函數(shù) 和方法的功能。類(lèi)裝飾器 方法裝飾器 --擴(kuò)展類(lèi)和方法的功能。 【測(cè)試開(kāi)發(fā)】
1、定制測(cè)試用例的標(biāo)題
# 第二步: pytest測(cè)試用例方法
@pytest.mark.p1
@allure.title("{data[用例標(biāo)題]}") # 使用測(cè)試用例的excel的用例
標(biāo)題描述每一條用例 更直觀
@pytest.mark.parametrize("data",all_cases)
def test_cart_case(data): # 調(diào)用夾具
resp = requests_api(data)
expected = data["預(yù)期結(jié)果"] # 從excel讀取預(yù)期結(jié)果
db_assert = data["數(shù)據(jù)庫(kù)斷言"]
response_assert(expected,resp)
# 數(shù)據(jù)庫(kù)斷言
database_assert(db_assert)
注意1:但是直接這樣做完,這個(gè)標(biāo)題顯示格式錯(cuò)亂的。要優(yōu)化可以如下操作:
- 1、找到Python目錄下: D:\Python39\Lib\sitepackages\allure_pytest\listener.py
- 2、打開(kāi)這個(gè)文件搜索: test_result.parameters.extend
- 3、將對(duì)應(yīng)的內(nèi)容變成: test_result.parameters.extend([])
- 4、重新運(yùn)行run文件,生成allure報(bào)告。
2、定制測(cè)試套件名字文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-848338.html
@allure.suite("購(gòu)物車(chē)模塊")
3、定制測(cè)試步驟文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-848338.html
@allure.step("替換占位符變量")
到了這里,關(guān)于Jenkins 持續(xù)集成 【CICD】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!