bootstrap-vue前端框架開發(fā)自動化測試平臺

項目背景
1、vue者甲、bootstrap
2砌创、httprunner嫩实、celery、django-rest-framework
bootstrap開發(fā)過程中始終覺得沒有element ui好用宰缤。

Dashboard

image.png

Home

  • 統(tǒng)計個人平臺使用記錄晃洒,支持月球及、日篩選
    image.png

TestCaseList

image.png
  • 拖拽步驟測試-支持列表項順序拖拽吃引、同步或異步運行測試

  • 異步: 異步任務集合,執(zhí)行完成后返回測試報告

  • 同步: 實時獲取結果


    image.png

    image.png
  • swagger導入API

    image.png

調試API

  • 函數助手
  • 基于Hook表達式編寫痛點。利用前端緩存實現表單輸入過濾提示函數
  • 一鍵拖拽函數表達式
    image.png
  • 代碼片段
<div class="hook-table" v-for="(row, index1) in tableList" :key="index1">
  <input type="text" :name="`func${index1}`" v-model="row.func"
  :key="`func${index1}`"
  v-validate="{ required: true, min:2,max:50, regex: /^[-.${}()_a-zA-Z0-9]+$/ }"
  :class="errors.first(`func${index1}`) || !hook.func ? 'form-control is-invalid' : 'form-control is-valid'"
  placeholder="Please enter func" style="height: 35px;" @focus="closeSearch(index1)" @blur="removeClass(index1)">
  <div :class="`searchbox-detail`" :id="`searchbox-detail-${index1}`" style="border: 1px solid #ced4da;">
    <ul class="m-0 p-3">
      <template v-if="filteredList(row.func).length > 0">
        <li v-for="(item,index2) in filteredList(row.func)" :key="index2" class="iq-bg-primary-hover rounded">
          <span @click="selectSearch(index, item.function_name)">{{ item.function_name }} | {{item.description}}</span>
        </li>
      </template>
      <template v-else>
        <li>Search Not Found</li>
      </template>
    </ul>
  </div>
</div>
  • @focus input 聚焦時,顯示下拉框
  • @blur input 失去焦點時颅筋,關閉下拉框
methods: {
  openSearch (index) {
    // showSearch
    if (document.getElementById(`searchbox-detail-${index}`) !== null) {
      document.getElementById(`searchbox-detail-${index}`).classList.add('show-data')
    }
  },
  closeSearch (index) {
    if (document.getElementById(`searchbox-detail-${index}`) !== null && document.getElementById(`searchbox-detail-${index}`) !== undefined) {
      // @blur權重問題使click無法事件觸發(fā)输枯,設置時間等待
      setTimeout(() => {
        document.getElementById(`searchbox-detail-${index}`).classList.remove('show-data')
      }, 100)
    }
  },
}
  • 計算屬性-過濾輸入字符串
computed: {
  filteredList () {
    return function (search) {
      return this.hookList.filter(item => {
        return item.function_name.toLowerCase().includes(search.toLowerCase())
      })
    }
  }
},
  • HttpRequestBody-支持表單和文件上傳

    image.png

  • 函數Diff monaco插件實現代碼行內比較功能

    image.png

  • 驗證器

  • Response- 支持一鍵復制Json表達式

    image.png

測試報告詳情(部分設計參考pytestAllure)

image.png

image.png

用戶中心

image.png

消息功能

image.png

成員管理

image.png

權限組管理

  • 后端權限;API視圖中間件實現用戶權限判斷
  • 代碼片段
class CompanyAdminPermission(BasePermission):
    """公司管理員權限類"""
    message = "僅公司管理員可訪問"

    def has_permission(self, request, view):
        # Return `True` if permission is granted, `False` otherwise.
        if bool(request.user and request.user.is_authenticated):
            company_user = request.user.companygroup_set.first()
            if company_user.is_member:
                return True
        else:
            self.message = "未提供身份校驗"
            return False
  • 前端權限厢汹;路由中間件實現權限判斷
  • 代碼片段
router.beforeEach(async (to, from, next) => {
  const publicPages = ['/auth/sign-in', '/auth/sign-up',]
  if (publicPages.includes(to.path)) {
    store.dispatch('User/resetAccessToken')
  }
  const authRequired = !publicPages.includes(to.path)
  const loggedIn = store.getters['User/accessToken']
  if (loggedIn) {
    let permissions = store.getters['User/permissions']
    if (!permissions.length) {
      permissions = await store.dispatch('User/getUserInfo')
    }
    if (!hasPermission(permissions, to)) {
      Alert('溫馨提示', '角色權限拒絕訪問烫葬,請聯(lián)系公司管理員', 'warning')
      return false
    }
  }
  if (to.meta.auth) {
    if (authRequired && loggedIn === null) {
      return next('/auth/sign-in')
    } else if (to.name === 'dashboard' || to.name === 'mini.dashboard') {
      return next('/home')
    }
  }
  next()
})
image.png

...未完待續(xù)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末搭综,一起剝皮案震驚了整個濱河市划栓,隨后出現的幾起案子忠荞,更是在濱河造成了極大的恐慌,老刑警劉巖委煤,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件素标,死亡現場離奇詭異,居然都是意外死亡寓免,警方通過查閱死者的電腦和手機计维,發(fā)現死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門鲫惶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人欠母,你說我怎么就攤上這事赏淌。” “怎么了六水?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荣茫。 經常有香客問我场靴,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任泞边,我火速辦了婚禮疗杉,結果婚禮上,老公的妹妹穿的比我還像新娘梢什。我一直安慰自己朝聋,他們只是感情好,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布荔睹。 她就那樣靜靜地躺著言蛇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吨拗。 梳的紋絲不亂的頭發(fā)上婿斥,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天民宿,我揣著相機與錄音,去河邊找鬼峡蟋。 笑死,一個胖子當著我的面吹牛蕊蝗,可吹牛的內容都是我干的蓬戚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼豫喧,長吁一口氣:“原來是場噩夢啊……” “哼幢泼!你這毒婦竟也來了?” 一聲冷哼從身側響起孵班,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤招驴,失蹤者是張志新(化名)和其女友劉穎别厘,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體触趴,經...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡雕蔽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年扇售,在試婚紗的時候發(fā)現自己被綠了嚣艇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡困乒,死狀恐怖贰谣,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情百宇,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布昌粤,位于F島的核電站啄刹,受9級特大地震影響誓军,放射性物質發(fā)生泄漏。R本人自食惡果不足惜谭企,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一债查、第九天 我趴在偏房一處隱蔽的房頂上張望瓜挽。 院中可真熱鬧,春花似錦俄占、人聲如沸淆衷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至康嘉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間敷钾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工膘格, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留财松,地道東北人辆毡。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像球昨,于是被迫代替她去往敵國和親眨攘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內容

  • HttpRunner接口自動化測試框架 發(fā)表于2018-08-05|分類于接口自動化測試[https://sutu...
    木木三_5227閱讀 1,362評論 0 5
  • 轉載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 UI下拉刷新模糊效果A...
    袁俊亮技術博客閱讀 11,921評論 9 105
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭藐不,有人歡樂有人憂愁秦效,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,536評論 28 53
  • 人工智能是什么挑秉?什么是人工智能苔货?人工智能是未來發(fā)展的必然趨勢嗎?以后人工智能技術真的能達到電影里機器人的智能水平嗎...
    ZLLZ閱讀 3,777評論 0 5
  • 首先介紹下自己的背景: 我11年左右入市到現在,也差不多有4年時間镊叁,看過一些關于股票投資的書籍,對于巴菲特等股神的...
    瞎投資閱讀 5,724評論 3 8