springboot vue組件開發(fā)實(shí)現(xiàn)接口斷言功能
基于 springboot+vue 的測試平臺
(練手項(xiàng)目)開發(fā)繼續(xù)更新。
接下來準(zhǔn)備開發(fā)請求斷言功能。關(guān)于這個功能要實(shí)現(xiàn)哪些需求,長什么樣子,我參考了下其他優(yōu)秀的業(yè)界工具,比如apifox、metersphere等。
于是決定還是先緊著最常用的來開發(fā):JSONPath、響應(yīng)時間、文本,而這些當(dāng)中,又以JSONPath為優(yōu)先。
老規(guī)矩,還是先看一下這個前端組件效果。

一、組件的關(guān)系
上面功能效果實(shí)際上由3個組件一起完成的。

在項(xiàng)目代碼中的位置如圖。

- ApiAssertions:最外層的組件,主要是添加斷言的入口,以及集成不同類型斷言子組件的地方。
- ApiAssertionsEdit:不同的斷言組件都需要提供編輯功能,這里也作為集成不同類型斷言編輯子組件的地方。
- ApiAssertionJsonPath:這個組件就是對于JSONPath類型的斷言,最底層的組件了。
這3個組件的包含關(guān)系就是:ApiAssertions -> ApiAssertionsEdit -> ApiAssertionJsonPath。
由于elementUI里并沒有一個現(xiàn)成的方案,所以還是需要利用零散的elementUI組件來組合,就像搭積木一樣。
盤點(diǎn)了一下,大概用了如下的elementUI組件,有興趣的童鞋可以自行針對性的去官網(wǎng)了解學(xué)習(xí):
el-select 選擇器
el-row、el-col,這是 Layout 布局
el-input,輸入框
el-tooltip,tips提示
el-button,按鈕
剩下的就是組件開發(fā)相關(guān)的知識了,在之前的文章中我也有過簡單的整理。
二、組件的開發(fā)
這部分大概介紹一下各個組件中的內(nèi)容和作用。
1. ApiAssertions
這里的作用就是提供添加斷言的入口,這里目前只有JSONPath是真實(shí)的,其他2個是假的。

然后添加按鈕做了個控制,就是在沒選擇類型的時候是禁用的不讓點(diǎn)擊。

然后這里包含了子組件ApiAssertionJsonPath,這里用了v-if來判斷類型,當(dāng)類型值為JSON_PATH的時候才顯示該組件。

關(guān)于組件類型,這些都屬于常亮,所以為了更規(guī)范一些,我把這些值提出去放到了一個單獨(dú)的ApiTestModel.js文件中:
export const ASSERTION_TYPE = {
TEXT: 'Text',
JSON_PATH: 'JSONPath',
DURATION: 'Duration'
}
接著,還有一個編輯組件ApiAssertionsEdit也是它的子組件,因?yàn)辄c(diǎn)擊添加之后,要展示出對應(yīng)JSONPath的列表,而且是可以繼續(xù)編輯的。

注意到上面2個子組件都綁定了自定義的屬性assertions,這個屬性就是用來接收外部傳進(jìn)來的參數(shù)用的,所以在props中要先定義出來:
props: {
assertions: {
type: Object,
default: () => {
return {}
}
}
},
2. ApiAssertionsEdit
這個組件就是用于提供添加后的JSONPath的編輯功能,而且能提供斷言的列表展示效果。另外還有斷言的刪除以及禁用等功能。

列表展示這里就是使用v-for了,變量斷言里JSONPath列表,然后把里面的數(shù)據(jù)拿出來展示。

這里有一個:edit="true"這個屬性是ApiAssertionJsonPath組件所需要的,作用在下面說。
3. ApiAssertionJsonPath
這里就是最底層的組件了,大部分內(nèi)容也就在這里。

代碼里用不同的elementUI組件把每列的內(nèi)容定義好即可。
注意在上層組件傳來的edit,在這里是用來判斷當(dāng)前是否為編輯狀態(tài)的,是的話就顯示刪除和禁用的組件。

其他的代碼就不具體截圖了,有需要的童鞋可以獲取源碼對著看。
接下來就要開發(fā)對應(yīng)的后端功能,就是如何把斷言數(shù)據(jù)落到數(shù)據(jù)庫里,也就是jsonpath這個對象里的這些字段。
jsonPath: {
type: Object,
default: () => {
return {
type: ASSERTION_TYPE.JSON_PATH,
expression: undefined,
option: undefined,
expect: undefined,
description: undefined,
enable: true
}
}
},
前端暫時就到這里,完整代碼更新
前端:
https://github.com/wessonlan/bloomtest-web
后端
https://github.com/wessonlan/bloomtest-backend
更多關(guān)于接口斷言前端vue組件開發(fā)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot+actuator和admin-UI實(shí)現(xiàn)監(jiān)控中心方式
這篇文章主要介紹了SpringBoot+actuator和admin-UI實(shí)現(xiàn)監(jiān)控中心方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
controller接口跳轉(zhuǎn)到另一個controller接口的實(shí)現(xiàn)
這篇文章主要介紹了controller接口跳轉(zhuǎn)到另一個controller接口的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序
這篇文章主要為大家詳細(xì)介紹了Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
Spring Boot外部化配置實(shí)戰(zhàn)解析
這篇文章主要介紹了Spring Boot外部化配置實(shí)戰(zhàn)解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06
java實(shí)現(xiàn)同步的幾種方式(示例詳解)
這篇文章主要介紹了java實(shí)現(xiàn)同步的幾種方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-12-12
springboot項(xiàng)目中統(tǒng)一時間格式處理方法
JacksonConfiguration主要用于配置JSON的序列化和反序列化,而LocalDateTimeFormatter則用于處理請求和響應(yīng)中的LocalDateTime格式,這兩個配置項(xiàng)在SpringBoot項(xiàng)目中至關(guān)重要,確保數(shù)據(jù)格式的正確處理和傳輸2024-10-10

