自動化測試
傳統(tǒng)的接口自動化測試成本高,大量的項目沒有使用自動化測試保證接口的質(zhì)量,僅僅依靠手動測試,是非常不可靠和容易出錯的。
?為了解決這個問題,使用YAPI接口自動化測試功能,只需要配置每個接口的入?yún)⒑蛯?RESPONSE 斷言,即可實現(xiàn)對接口的自動化測試,大大提升了接口測試的效率。
?第一步,測試集合
使用 YApi 自動化測試,第一步需要做得是創(chuàng)建測試集合和導(dǎo)入接口,點擊添加集合創(chuàng)建,創(chuàng)建完成后導(dǎo)入接口(同一個接口可以多次導(dǎo)入)
?第二步,編輯測試用例
編寫測試用例主要涉及兩個方面,一個是請求參數(shù),另外一個是斷言腳本。
編輯請求參數(shù)?
請求參數(shù)可以填寫期望的字符串,YApi 還提供了 Mock 參數(shù)和?變量參數(shù)。Mock參數(shù)用來生成隨機字符串,變量參數(shù)是為了解決請求參數(shù)依賴其他接口的返回數(shù)據(jù)或參數(shù)。
Mock?參數(shù)?
Mock?參數(shù)每次請求都會生成隨機字符串
?變量參數(shù)
YApi 提供了強大的變量參數(shù)功能,你可以在測試的時候使用前面接口的?參數(shù)?或?返回值?作為?后面接口的參數(shù),即使接口之間存在依賴,也可以輕松?一鍵測試~
Tips:?參數(shù)只能是測試過程中排在前面的接口中的變量參數(shù)
格式:
?$.{key}.{params|body}.{path}?
?
例如:現(xiàn)有兩個接口,分別是“導(dǎo)航標(biāo)題”和“文章列表”
文章列表接口需要傳參數(shù):?當(dāng)前標(biāo)題(id),而這個 id 需要通過?導(dǎo)航標(biāo)題?的返回值獲取,這時應(yīng)在?文章列表?的參數(shù)輸入框中根據(jù)前者的 key 找到對應(yīng) id。
導(dǎo)航標(biāo)題?的參數(shù)和返回值有如下結(jié)構(gòu):
參數(shù):
返回值:
?則?文章列表?的參數(shù)可以如下配置:
其中?$.?是使用?動態(tài)變量?的標(biāo)志,$.269.params?即表示 key 值為 269 用例的請求參數(shù),$.269.body?即表示 key 值為 269 用例的返回值。
如果 requestBody 是 json 格式也可以在 json 中寫變量參數(shù),如下圖:
Tips:?上下拖動測試集合的列表項可以調(diào)整測試的順序。
目前 yapi 中的query,body,header和pathParam的輸入?yún)?shù)已經(jīng)支持點擊選擇功能。無需自己填寫表達式,只需在彈窗中選擇需要展示的表達式即可。
輸入選項包括常量,mock數(shù)據(jù),在測試集合中也支持變量選擇。具體用法:單擊編輯按鈕打開表達式生成器,點擊需要的數(shù)據(jù)創(chuàng)建表達式,這里也可以實時查看表達式結(jié)果。
?Tips:?在測試集合中插入變量參數(shù)可以會出現(xiàn)下圖的提示信息,這是正常現(xiàn)象。因為該參數(shù)只能在各個接口順序執(zhí)行的時候才能拉到變量參數(shù)中的值
編寫斷言腳本
編寫完請求參數(shù),可通過 js 腳本寫斷言,實現(xiàn)精準(zhǔn)測試,在接口用例頁面點擊 Test 編輯。
第三步,運行自動化測試
在測試列表可以看到每個測試用例的 key,還有?開始測試、報告等功能
點擊開始測試會按照 case 定義的參數(shù)從上往下一個一個進行測試,如果順序有問題,可以拖動調(diào)整
測試完成之后,點擊報告查看該次請求的結(jié)果
斷言腳本公共變量
1.assert
斷言函數(shù),詳細(xì) api 可查看 官方文檔
常用 api
-
assert(value)
判斷 value 是否為 truth,?例如 assert(1)?通過, assert(0)?不通過,只要 value 不是 null, 0, false 等值驗證通過
-
assert.equal(actual, expected)
判斷 actual 是否等于 expected,例如 assert(1, 1)通過
-
assert.notEqual(actual, expected)
判斷 actual 是否不等于 expected
-
assert.deepEqual(actual, expected)
假設(shè): actual =?{a:1}?是一個對象,即便 expected =?{a:1},如果使用 assert.equal 可能也是不相等的,因為在 js 引用的只是對象的一個指針,需要使用 assert.deepEqual 比較兩個對象是否相等
-
assert.notDeepEaual(actual, expected)
深度比較兩個對象是否不相等
?2.status
http 狀態(tài)碼
?3.params
http request params,?合并了 query 和 body
?4.body
返回 response body
?5.header
返回 response header
?6.records
記錄的 http 請求信息,假設(shè)需要獲取 key 為 555 的接口參數(shù)或者響應(yīng)數(shù)據(jù),可通過 records[555].params 或 records[555].body 獲取
?7.log
log(message)?函數(shù),調(diào)試時使用,log?信息僅僅在斷言失敗后打印,失敗斷言前的信息
log(234)?? assert.equal(status, 400)log(123)?
輸出結(jié)果: log: 234
AssertionError: 200 == 400
示例 assert.equal(body.errcode, 0) assert.equal(body.data.group_name,?'testGroup') assert.equal(status, 200)?
服務(wù)端自動化測試
開始測試功能是在瀏覽器跑自動化測試,他依賴于瀏覽器的使用環(huán)境。服務(wù)端自動化測試功能是在YApi服務(wù)端跑自動化測試,不需要依賴瀏覽器環(huán)境,只需要訪問 YApi 提供的 url 鏈接就能跑自動化測試,非常的簡單易用,而且可以集成到 jenkins。
詳細(xì)使用方法?
點擊服務(wù)端測試,出現(xiàn)如下彈窗,用戶訪問該 url 就可以獲取當(dāng)前測試用例的所有測試結(jié)果。
配置通用規(guī)則
配置通用規(guī)則能夠使自動化測試,可以基于通用的規(guī)則去控制,無需手動一個一個維護case.
Jenkins操作
1.點擊示例工程api-auto-test
2.構(gòu)建成功
3.點擊控制臺輸出
4.查看報告
文章來源:http://www.zghlxwxcb.cn/news/detail-425377.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-425377.html
到了這里,關(guān)于Win YAPI + Jenkins 實現(xiàn)接口自動化測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!