<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
(練手專案)開發繼續更新。
接下來準備開發請求斷言功能。關於這個功能要實現哪些需求,長什麼樣子,我參考了下其他優秀的業界工具,比如apifox、metersphere等。
於是決定還是先緊著最常用的來開發:JSONPath、響應時間、文字,而這些當中,又以JSONPath為優先。
老規矩,還是先看一下這個前端元件效果。
上面功能效果實際上由3個元件一起完成的。
在專案程式碼中的位置如圖。
這3個元件的包含關係就是:ApiAssertions -> ApiAssertionsEdit -> ApiAssertionJsonPath。
由於elementUI裡並沒有一個現成的方案,所以還是需要利用零散的elementUI元件來組合,就像搭積木一樣。
盤點了一下,大概用瞭如下的elementUI元件,有興趣的童鞋可以自行鍼對性的去官網瞭解學習:
el-select
選擇器
el-row
、el-col
,這是 Layout 佈局
el-input
,輸入框
el-tooltip
,tips提示
el-button
,按鈕
剩下的就是元件開發相關的知識了,在之前的文章中我也有過簡單的整理。
這部分大概介紹一下各個元件中的內容和作用。
這裡的作用就是提供新增斷言的入口,這裡目前只有JSONPath是真實的,其他2個是假的。
然後新增按鈕做了個控制,就是在沒選擇型別的時候是禁用的不讓點選。
然後這裡包含了子元件ApiAssertionJsonPath
,這裡用了v-if
來判斷型別,當型別值為JSON_PATH
的時候才顯示該元件。
關於元件型別,這些都屬於常亮,所以為了更規範一些,我把這些值提出去放到了一個單獨的ApiTestModel.js檔案中:
export const ASSERTION_TYPE = { TEXT: 'Text', JSON_PATH: 'JSONPath', DURATION: 'Duration' }
接著,還有一個編輯元件ApiAssertionsEdit
也是它的子元件,因為點選新增之後,要展示出對應JSONPath的列表,而且是可以繼續編輯的。
注意到上面2個子元件都繫結了自定義的屬性assertions
,這個屬性就是用來接收外部傳進來的引數用的,所以在props
中要先定義出來:
props: { assertions: { type: Object, default: () => { return {} } } },
這個元件就是用於提供新增後的JSONPath的編輯功能,而且能提供斷言的列表展示效果。另外還有斷言的刪除以及禁用等功能。
列表展示這裡就是使用v-for
了,變數斷言裡JSONPath列表,然後把裡面的資料拿出來展示。
這裡有一個:edit="true"
這個屬性是ApiAssertionJsonPath
元件所需要的,作用在下面說。
這裡就是最底層的元件了,大部分內容也就在這裡。
程式碼裡用不同的elementUI元件把每列的內容定義好即可。
注意在上層元件傳來的edit
,在這裡是用來判斷當前是否為編輯狀態的,是的話就顯示刪除和禁用的元件。
其他的程式碼就不具體截圖了,有需要的童鞋可以獲取原始碼對著看。
接下來就要開發對應的後端功能,就是如何把斷言資料落到資料庫裡,也就是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
更多關於介面斷言前端vue元件開發的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45