如何基于YAML設(shè)計(jì)接口自動(dòng)化測(cè)試框架?看完秒會(huì)!-創(chuàng)新互聯(lián)

在設(shè)計(jì)自動(dòng)化測(cè)試框架的時(shí)候,我們會(huì)經(jīng)常將測(cè)試數(shù)據(jù)保存在外部的文件(如Excel、YAML、CSV)或者數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)腳本與數(shù)據(jù)解耦,方便后期維護(hù)。目前非常多的自動(dòng)化測(cè)試框架采用通過(guò)Excel或者YAML文件直接編寫測(cè)試用例,通過(guò)腳本讀取出來(lái)驅(qū)動(dòng)自動(dòng)化測(cè)試代碼執(zhí)行。

在金城江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,金城江網(wǎng)站建設(shè)費(fèi)用合理。

至于采用Excel還是YAML格式各位小伙伴都有不同見(jiàn)解,比如用Excel維護(hù)直觀、修改數(shù)據(jù)方便,劣勢(shì)是通過(guò)Git這樣的版本控制工具不太好比較歷史版本差異(因?yàn)槭嵌M(jìn)制格式);YAML的優(yōu)勢(shì)是支持?jǐn)?shù)據(jù)格式完備、版本控制管理方便(文本格式),劣勢(shì)是沒(méi)有Excel這么直觀。Excel這種方式大家都比較熟悉了,本文帶著大家來(lái)了解如何基于YAML設(shè)計(jì)自動(dòng)化測(cè)試框架。

YAML格式測(cè)試用例設(shè)計(jì)

以接口自動(dòng)化為例,用YAML編寫測(cè)試用例要實(shí)現(xiàn)的基本功能需求:
1.一個(gè)YAML文件能夠支持多個(gè)用例存儲(chǔ)需求,不然幾千個(gè)用例對(duì)應(yīng)幾千個(gè)YAML文件管理起來(lái)也受不了
2.用例中能夠支持單接口測(cè)試用例也能支持業(yè)務(wù)場(chǎng)景用例(多個(gè)接口調(diào)用組合)
3.用例中需要包含所屬模塊、用例名、請(qǐng)求信息、斷言信息、提取響應(yīng)(實(shí)現(xiàn)接口關(guān)聯(lián))等信息

基于上述需求我們來(lái)設(shè)計(jì)一版YAML格式用例:
在這里插入圖片描述
casename與module字段簡(jiǎn)單,我們來(lái)看下teststeps,為什么teststeps是數(shù)組類型?

因?yàn)橛美邪粋€(gè)/多個(gè)接口請(qǐng)求步驟,也就是一個(gè)TestCase包含了多個(gè)teststep,每一個(gè)teststep就是一個(gè)接口請(qǐng)求。

request中指定接口請(qǐng)求信息,包括接口請(qǐng)求方法、請(qǐng)求地址、請(qǐng)求頭、請(qǐng)求參數(shù);其中不同的請(qǐng)求參數(shù)類型我們需要進(jìn)行區(qū)別,上述的是json傳參,如果是form表單、查詢參數(shù)傳參我們都可以約定為類似的key-value結(jié)構(gòu),只需要將json改為formparam、queryparam。

需要注意的是文件上傳接口的參數(shù)會(huì)比較特殊,一般來(lái)說(shuō)我們只需要設(shè)置要上傳文件路徑即可,所以我們可以這樣設(shè)計(jì):
在這里插入圖片描述
extract字段為要提取的響應(yīng)數(shù)據(jù)字段,傳遞給后續(xù)的接口使用。一般我們要求能夠支持JsonPath表達(dá)式或者正則表達(dá)式來(lái)提取,對(duì)應(yīng)的key為要提取的字段名,對(duì)應(yīng)的值為要提取的字段表達(dá)式。

validate字段是斷言信息,也就是驗(yàn)證響應(yīng)結(jié)果是否符合預(yù)期。這里我們需要支持常用的判斷方法包括:等于、大于、小于、大于等于、小于等于,通過(guò)簡(jiǎn)寫eq代替equals(等于)判斷,其他的類似:大于等于(ge)、小于等于(le)、小于(lt)、大于(gt)。

上述的是單接口測(cè)試用例,我們看下多接口串聯(lián)(業(yè)務(wù)場(chǎng)景)用例編寫的樣式:

ModifyUserProfile.yaml
在這里插入圖片描述
在多接口測(cè)試中重要的是要能夠支持參數(shù)傳遞,這里我們?cè)谇耙粋€(gè)接口使用extract提取接口的響應(yīng)字段,在后續(xù)要使用的接口中通過(guò)${token}方式進(jìn)行引用,熟悉Jmeter接口測(cè)試工具的同學(xué)應(yīng)該非常熟悉這種格式。

腳本讀取YAML數(shù)據(jù)

在讀取YAML文件數(shù)據(jù)之前,我們首先需要了解兩個(gè)概念:序列化與反序列化

把對(duì)象轉(zhuǎn)換為字節(jié)序列的過(guò)程稱為對(duì)象的序列化;

把字節(jié)序列恢復(fù)為對(duì)象的過(guò)程稱為對(duì)象的反序列化。

而我們讀取YAML的過(guò)程就可以稱之為反序列化。

主流的編程語(yǔ)言都能實(shí)現(xiàn)對(duì)YAML的解析,接下來(lái)以Java語(yǔ)言為例講解如何讀取YAML文件的內(nèi)容:

Java中能夠?qū)崿F(xiàn)YAML序列化和反序列化的庫(kù)有很多,包括SnakeYaml、Jackson、jYaml等,使用起來(lái)大同小異。以使用Jackson為例:

步驟一:Maven POM文件中添加庫(kù)的坐標(biāo)
在這里插入圖片描述
這里用到了jackson-databind與jackson-dataformat-yaml,其中jackson-databind是Jackson的主庫(kù),jackson-dataformat-yaml是支持YAML數(shù)據(jù)格式的庫(kù),在這里同時(shí)引入了lombok,是為了后面編寫實(shí)體類時(shí)簡(jiǎn)化一些代碼的書寫:

Lombok可以來(lái)幫助我們簡(jiǎn)化一些必須有但顯得很臃腫(比如get/set方法)的Java代碼的工具,通過(guò)使用對(duì)應(yīng)的注解,可以在編譯源碼的時(shí)候自動(dòng)生成對(duì)應(yīng)的方法。

步驟二:編寫YAML實(shí)體類
對(duì)照YAML文件內(nèi)容比如字段名(比如 “姓名”)和字段的數(shù)據(jù)類型(比如字符串),創(chuàng)建一個(gè)對(duì)應(yīng)的類,用來(lái)在 Java 中表示YAML文件的信息。目的是為了能夠?qū)AML文件保存到Java對(duì)象中(反序列化)。

TestCase實(shí)體類:
在這里插入圖片描述
Teststep實(shí)體類:
在這里插入圖片描述
Validate實(shí)體類:
在這里插入圖片描述

通過(guò)Jackson讀取YAML文件內(nèi)容并保存到TestCase實(shí)體類對(duì)象中
在這里插入圖片描述
其中new TypeReference() {}是因?yàn)樽x取到的YAML文件中有多個(gè)TestCase用例,所以我們需要定義為L(zhǎng)ist集合類型來(lái)接收。

來(lái)看看讀取之后的效果:
在這里插入圖片描述
后續(xù)即可通過(guò)返回的testCase發(fā)起接口請(qǐng)求(比如通過(guò)REST-assured)、進(jìn)行接口斷言、提取響應(yīng)字段等操作。

學(xué)習(xí)安排上

如果你不想再體驗(yàn)一次學(xué)習(xí)時(shí)找不到資料,沒(méi)人解答問(wèn)題,堅(jiān)持幾天便放棄的感受的話,在這里我給大家分享一些自動(dòng)化測(cè)試的學(xué)習(xí)資源,希望能給你前進(jìn)的路上帶來(lái)幫助。

在這里插入圖片描述

視頻文檔獲取方式:

這份文檔和視頻資料,對(duì)于想從事【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴我走過(guò)了最艱難的路程,希望也能幫助到你!以上均可以分享,點(diǎn)下方小卡片進(jìn)群即可自行領(lǐng)取。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

標(biāo)題名稱:如何基于YAML設(shè)計(jì)接口自動(dòng)化測(cè)試框架?看完秒會(huì)!-創(chuàng)新互聯(lián)
路徑分享:http://www.muchs.cn/article38/dhoisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)、云服務(wù)器、品牌網(wǎng)站制作、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站