引言:在“DevOps能力之屋(Capabilities House of DevOps)”中,華為云DevCloud提出(工程方法+最佳實(shí)踐+生態(tài))×工具平臺(tái)=DevOps能力。華為云DevCloud將推出“DevOps on DevCloud”系列,針對DevOps領(lǐng)域場景,闡述該場景在華為云DevCloud上的實(shí)施方法與實(shí)踐。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)江城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。目前越來越多不同行業(yè)的企業(yè)開啟了數(shù)字化轉(zhuǎn)型,以提升業(yè)務(wù)敏捷性與開放合作能力,為客戶或合作伙伴提供更好的體驗(yàn)。微服務(wù)架構(gòu)(Microservices Architecture)和敏捷與DevOps成為諸多企業(yè)在數(shù)字化轉(zhuǎn)型中對于應(yīng)用架構(gòu)和工程方法的不二選擇。隨著微服務(wù)架構(gòu)的廣泛流程,RESTful風(fēng)格API也成為大勢所趨。因而,對API進(jìn)行持續(xù)測試成為DevOps的關(guān)注點(diǎn)之一。隨著微服務(wù)數(shù)量規(guī)模增加、DTAP環(huán)境配置變化、軟件交付周期縮短,持續(xù)測試自動(dòng)化成為更為亟需解決的問題。毫不夸張地講,沒有測試自動(dòng)化,微服務(wù)架構(gòu)的實(shí)施對于企業(yè)更會(huì)成為一場災(zāi)難。
一談到測試自動(dòng)化,大多數(shù)團(tuán)隊(duì)通常將其視為純粹的技術(shù)挑戰(zhàn),例如選擇測試框架、確定測試工具等等。實(shí)際上,測試自動(dòng)化成功的核心原則之一是測試設(shè)計(jì)(Test Design)。團(tuán)隊(duì)?wèi)?yīng)該從一開始在測試設(shè)計(jì)上進(jìn)行足夠多的投入。測試設(shè)計(jì)過程始于分析測試需求。為了提升測試覆蓋率,團(tuán)隊(duì)可以使用“業(yè)務(wù)流(Business Flow)”方法來分析需求。團(tuán)隊(duì)需要在業(yè)務(wù)層級(jí)(Business Level)與交互層級(jí)(Interaction Level)上對操作(Action)或數(shù)據(jù)(Data)進(jìn)行抽象。因此,業(yè)界提出了關(guān)鍵字驅(qū)動(dòng)測試(KDT,Keyword Driven Testing)或者數(shù)據(jù)驅(qū)動(dòng)測試(DDT,Data Driven Testing)等方法來進(jìn)行測試設(shè)計(jì),提升測試自動(dòng)化效率。
對于KDT和DDT,從其定義來講,存在一定的區(qū)別,即什么因素對測試結(jié)果起決定性作用就是什么驅(qū)動(dòng)測試。當(dāng)然KDT與DDT也有聯(lián)系。例如:以登錄為例,首先登錄由不同的Action組成(按鈕點(diǎn)擊、文本框輸入等),其次將登錄的用戶名、密碼作為變化的數(shù)據(jù)(參數(shù)化),可以只關(guān)注數(shù)據(jù)。因此,為提升復(fù)用性,在實(shí)際項(xiàng)目中,一般會(huì)采用混合驅(qū)動(dòng)測試的方法,即融合關(guān)鍵字驅(qū)動(dòng)測試與數(shù)據(jù)驅(qū)動(dòng)測試??偠灾?,測試設(shè)計(jì)需要對操作與數(shù)據(jù)進(jìn)行抽象、分組等。
華為云DevCloud云測服務(wù)提供了接口測試功能,支持HTTP和HTTPS協(xié)議,并可通過參數(shù)化、自定義環(huán)境、關(guān)鍵字等特性支持混合驅(qū)動(dòng)測試,同時(shí)將將接口測試納入流水線進(jìn)行管理,支持產(chǎn)品團(tuán)隊(duì)踐行DevOps理念,為微服務(wù)架構(gòu)的API保駕護(hù)航。
華為云DevCloud對外提供了開放API,供第三方平臺(tái)進(jìn)行集成。本接口測試將以華為云DevCloud項(xiàng)目管理服務(wù)相關(guān)API示例。華為云DevCloud的API列表請參考 https://support.huaweicloud.com/devg-devcloud/devcloud_api_1000.html,接口調(diào)用方法請參考 https://support.huaweicloud.com/devg-devcloud/devcloud_api_0001.html,獲取Token認(rèn)證的方式請參考 https://support.huaweicloud.com/devg-devcloud/zh-cn_topic_0107684989.html。
開發(fā)者可以訪問華為云DevCloud( https://www.huaweicloud.com/devcloud/),登錄后在首頁新建項(xiàng)目,選擇“空白項(xiàng)目”的Scrum或者看板之一,輸入項(xiàng)目名稱(例如:Prj4ApiHDT)即可創(chuàng)建項(xiàng)目。
在訪問Prj4ApiHDT項(xiàng)目,并進(jìn)入“測試”-“接口測試”后,就可以開展接口測試相關(guān)工作了。
本次API測試將覆蓋一個(gè)業(yè)務(wù)流(Business Flow):獲取授權(quán)令牌->創(chuàng)建項(xiàng)目->查詢項(xiàng)目當(dāng)前工作項(xiàng)列表->在項(xiàng)目中新建工作項(xiàng)->查詢項(xiàng)目當(dāng)前工作項(xiàng)列表->刪除項(xiàng)目。
調(diào)用華為云DevCloud的開放API首先需要獲取授權(quán)令牌(token),詳細(xì)情況請參考“獲取用戶token”( https://support.huaweicloud.com/api-iam/zh-cn_topic_0057845583.html)。為了測試API的所有用例方便獲取token,將創(chuàng)建關(guān)鍵字getAuthToken。
在進(jìn)入“接口測試”頁面后,點(diǎn)擊“新建”,在“新建用例”頁面輸入名稱“manageProject”等信息,并點(diǎn)擊“確定”,用例創(chuàng)建成功并進(jìn)入編輯用例腳本頁面。
在用例“manageProject”的編輯用例腳本頁面,進(jìn)入“測試步驟”,新建“URL請求”,名稱設(shè)置為“getAuthToken”,并輸入以下信息:
§ 請求:如圖1所示,請求信息的方法選為“POST”,URL填為“iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens”;請求體選擇“JSON”,并填寫如下信息:
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "$${userName}",
"password": "$${password}",
"domain": {
"name": "$${domainName}"
}
}
}
},
"scope": {
"domain": {
"name": "$${domainName}"
}
}
}
}
§ 檢查點(diǎn):來源為“響應(yīng)碼”,比較符為“等于(數(shù)字)”,目標(biāo)值為“201”。參見圖2。
§ 響應(yīng) 提取:出參為“X-Auth-Token”,來源為“響應(yīng)頭”,屬性為“X-Subject-Token”。參見圖3。
圖6 使用關(guān)鍵字
在用例“manageProject”的編輯用例腳本頁面的“測試步驟”中,新建“URL請求”, 名稱設(shè)置為“createProject”,并輸入以下信息:
§ 請求:請求信息的方法選為“POST”,URL填為“api.devcloud.huaweicloud.com/pcedge/v1/projects”;請求頭名稱為“X-Auth-Token”,值為“${X-Auth-Token}”,此值為關(guān)鍵字getAuthToken的響應(yīng)提取中的出參名稱“X-Auth-Token”。請求體選擇“JSON”,并填寫如下信息:
{
"name": "demo1",
"description": "項(xiàng)目描述",
"type": "scrum",
"homepage": ""
}
§ 檢查點(diǎn):【1】來源為“響應(yīng)碼”,比較符為“等于(數(shù)字)”,目標(biāo)值為“200”?!?】來源為“響應(yīng)體(JSON)”,屬性為“status”,比較符為“等于(字符串、區(qū)分大小寫)”,目標(biāo)值為“success”。
§ 響應(yīng) 提取:出參為“project_uuid”,來源為“響應(yīng)體(JSON)”,屬性為“result.project.project_uuid”。此參數(shù)將作為后續(xù)API接口的輸入。
在用例“manageProject”的編輯用例腳本頁面的“測試步驟”中,新建“URL請求”, 名稱設(shè)置為“queryWorkItemList”,并輸入以下信息:
§ 請求:請求信息的方法選為“POST”,URL填為“api.devcloud.huaweicloud.com/pcedge/v1/projects/${project_uuid}/issues/query”;請求頭名稱為“X-Auth-Token”,值為“${X-Auth-Token}”,此值為關(guān)鍵字getAuthToken的響應(yīng)提取中的出參名稱“X-Auth-Token”。請求體選擇“JSON”,并填寫如下信息:
{
"page_num": "1",
"page_size": "15",
"query_type": "backlog",
"tracker_id": [
2,
3,
7
]
}
§ 檢查點(diǎn):來源為“響應(yīng)碼”,比較符為“等于(數(shù)字)”,目標(biāo)值為“200”。
在用例“manageProject”的編輯用例腳本頁面的“測試步驟”中,新建“URL請求”, 名稱設(shè)置為“createWorkItem”,并輸入以下信息:
§ 請求:請求信息的方法選為“POST”,URL填為“api.devcloud.huaweicloud.com/mobile/v1/projects/${project_uuid}/issues”;請求頭名稱為“X-Auth-Token”,值為“${X-Auth-Token}”,此值為關(guān)鍵字getAuthToken的響應(yīng)提取中的出參名稱“X-Auth-Token”。請求體選擇“JSON”,并填寫如下信息:
{
"subject": "Item1",
"description": "工作項(xiàng)描述",
"type_id": 3,
"start_date": "1566809662",
"due_date": "1566896062",
"priority_id": 3,
"servity_id": 12,
"status_id": 1,
"expected_work_hours": 8
}
§ 檢查點(diǎn):來源為“響應(yīng)碼”,比較符為“等于(數(shù)字)”,目標(biāo)值為“200”。
在用例“manageProject”的編輯用例腳本頁面的“測試步驟”中,在步驟“queryWorkItemList”上點(diǎn)擊“復(fù)制”,并將新的步驟拖拽到createWorkItem后面。
在用例“manageProject”的編輯用例腳本頁面的“測試步驟”中,新建“URL請求”, 名稱設(shè)置為“deleteProject”,并輸入以下信息:
§ 請求:請求信息的方法選為“DELETE”,URL填為“api.devcloud.huaweicloud.com/pcedge/v1/projects/${project_uuid}”;請求頭名稱為“X-Auth-Token”,值為“${X-Auth-Token}”,此值為關(guān)鍵字getAuthToken的響應(yīng)提取中的出參名稱“X-Auth-Token”。
§ 檢查點(diǎn):來源為“響應(yīng)碼”,比較符為“等于(數(shù)字)”,目標(biāo)值為“200”。
假如測試用例正確創(chuàng)建,那么執(zhí)行的正常結(jié)果應(yīng)該為:【1】成功創(chuàng)建項(xiàng)目;【2】項(xiàng)目中工作項(xiàng)數(shù)量為0;【3】成功創(chuàng)建工作項(xiàng);【4】工作項(xiàng)數(shù)量為1;【3】成功刪除項(xiàng)目。在此過程中如果出現(xiàn)失敗的情況,可以查看測試用例manageProject的結(jié)果頁面,進(jìn)行分析。
當(dāng)然,大家仔細(xì)觀察測試步驟中有2步是“查詢工作項(xiàng)列表”,可以用關(guān)鍵字來進(jìn)行處理,供大家自行實(shí)現(xiàn)。
本文通過案例展示了華為云DevCloud的接口測試特性的關(guān)鍵能力以及使用。在實(shí)際項(xiàng)目中,測試場景與測試用例等將更為復(fù)雜,因此正如前文所述,產(chǎn)品團(tuán)隊(duì)?wèi)?yīng)該投入精力進(jìn)行測試設(shè)計(jì),在此基礎(chǔ)上進(jìn)行測試自動(dòng)化,實(shí)現(xiàn)持續(xù)測試。當(dāng)然持續(xù)測試不可能一蹴而就,產(chǎn)品團(tuán)隊(duì)可以采用迭代的方式,持續(xù)重構(gòu)優(yōu)化。
華為云DevCloud作為一站式云端DevOps平臺(tái),集成華為近30年研發(fā)實(shí)踐和前沿理念,面向開發(fā)者提供研發(fā)工具服務(wù),讓軟件開發(fā)簡單高效?,F(xiàn)支持5人以下額度范圍內(nèi),可以免費(fèi)使用,并且可以預(yù)約免費(fèi)的產(chǎn)品演示和技術(shù)交流,詳情查看華為云官網(wǎng)
網(wǎng)頁標(biāo)題:DevOpsonDevCloud|如何實(shí)現(xiàn)應(yīng)用接口的混合驅(qū)動(dòng)測試-創(chuàng)新互聯(lián)
鏈接分享:http://jinyejixie.com/article40/dipoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站策劃、營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、微信小程序、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容