1. 實戰(zhàn)一下,手把手教你徒手?jǐn)]一個自動化平臺

        共 3867字,需瀏覽 8分鐘

         ·

        2020-09-12 16:13


        前言

        今天來跟大家分享一個自己的作品--基于Springboot+layui實現(xiàn)接口自動化平臺

        回顧這段歲月,甘苦自知,既有遇到難點一籌莫展、食之無味的困窘,也有解決難題調(diào)試成功的欣喜,堪稱五味雜陳

        人言奮斗的歲月最充實,果然如此

        ?

        閑言幾句:讀了幾篇文章,頗有幾番質(zhì)疑技術(shù)的言論,在我看來,技術(shù)是一把刀,越鋒利越好,如果這把刀發(fā)揮不了功效,那是拿刀的人出了問題,而非刀本身。當(dāng)然,技術(shù)一定要結(jié)合業(yè)務(wù),否則就成了無柄之刃,再鋒利也是徒勞。

        ?

        好,正式開始。平臺采用的技術(shù)棧有:

        • 后端:Springboot、mysql、redis
        • 前端:jQuery、layui

        平臺數(shù)據(jù)采用分層設(shè)計,即將接口自動化所需的數(shù)據(jù)分為【項目管理】、【接口列表】、【用例管理】、【測試集合】、【測試結(jié)果】五個部分

        如下圖所示:

        平臺入口,顏值即正義,盡量弄得漂亮一點,也讓人有使用的欲望


        1 項目管理

        項目管理,定義了公司系統(tǒng)的基本框架。以新浪新聞為例,我將做如下分割:

        • 平臺:新浪新聞
        • 項目:體育
        • 模塊:西甲
        • IP 地址:略

        項目模塊層,有以下規(guī)范和特點:

        • 項目管理頁面決定了每個接口的歸屬,當(dāng)我們新增接口時,必須創(chuàng)建在已有模塊下,而不能隨心所欲地添加。因為平臺使用人眾多,如果不做此約束,數(shù)據(jù)將會十分混亂。
        • 通常情況下,每個項目對應(yīng)著自己的 IP 地址。這個平臺中,每個模塊對應(yīng)著一個 IP 地址,還是有一些數(shù)據(jù)冗余,但如果為了消除數(shù)據(jù)冗余而再增加一層,就不是三表關(guān)聯(lián)而是四表關(guān)聯(lián)了,開發(fā)難度倍增,使用起來也略顯繁瑣。
        • 每個模塊定義了 IP 地址后,該模塊下的接口將直接繼承,不需要再單獨為接口定義 IP 地址了。

        2 接口列表

        當(dāng)項目模塊創(chuàng)建后,就可以在該模塊下添加接口了。

        接口層有以下規(guī)范和特點:

        • 這個頁面定義了一個接口的基本信息,包括路徑、請求方法、參數(shù)類型等,但不會定義具體的參數(shù)以及其他信息,這些信息留到用例頁去定義。
        • 每個接口只能有一條記錄,新增時根據(jù)接口路徑進行判重,以便進一步增強數(shù)據(jù)規(guī)范性,防止出現(xiàn)明明是一個接口,但接口名稱不一樣的情況。
        • 新增接口時,平臺、項目、模塊皆為選擇項(可選擇的數(shù)據(jù)來源于【項目管理】),而不能自行填入。

        3 用例管理

        用例管理是對接口的進一步描述,是最核心的部分,也是開發(fā)難度最大的一個模塊。用例可以直接調(diào)用調(diào)試:

        用例層具有以下規(guī)范和特點:

        • 用例依賴于接口而存在,只有在接口列表頁創(chuàng)建了某個接口后,才能在此頁面創(chuàng)建該接口的用例,用例將自動繼承所屬接口和模塊的屬性,比如 IP 地址和路徑等。
        • 一個接口可以有多個用例,用例之間參數(shù)值不同。
        • 用例類型分為標(biāo)準(zhǔn)用例、正常用例、異常用例,所謂標(biāo)準(zhǔn)用例是指該用例的參數(shù)等信息都是能確保用例能正常執(zhí)行并獲取正常響應(yīng)結(jié)果的用例,每個接口下只能有一個標(biāo)準(zhǔn)用例,「當(dāng)接口下創(chuàng)建了標(biāo)準(zhǔn)用例后,再次創(chuàng)建用例時,直接復(fù)制其參數(shù)信息等數(shù)據(jù),極大增加創(chuàng)建用例的便利性」。
        • 操作欄點擊【執(zhí)行】按鈕后,將發(fā)起一次接口請求,參數(shù)為該用例的數(shù)據(jù)。
        • 點擊【編輯】可以修改用例的基本信息。
        • 點擊【詳情】,進入用例詳情頁。

        用例詳情頁有以下幾大部分:

        1、基本信息:用例的描述性信息,自動讀取。其中,所屬平臺、所屬項目、所屬模塊等信息,讀取自用例所屬的模塊,接口名稱、接口路徑等讀取自用例所屬的接口。2、請求參數(shù),包括請求頭和請求體兩部分。3、關(guān)聯(lián)提取:這個功能是為后續(xù)【測試集合】準(zhǔn)備的,當(dāng)你準(zhǔn)備把一個用例加入測試集合,且測試集合后續(xù)的接口的參數(shù)依賴該用例響應(yīng)結(jié)果的值,就需要在關(guān)聯(lián)處理做預(yù)處理

        比如一個登錄用例,需要在響應(yīng)結(jié)果中提取 token 并提供給后續(xù)接口使用,就可以按圖中示例,添加一條關(guān)聯(lián)提取規(guī)則:

        • 變量名:提取到的信息暫存到內(nèi)存中時對應(yīng)的變量名
        • 路徑表達(dá)式:需要提取的內(nèi)容對應(yīng)的路徑,其書寫格式與使用規(guī)則與 Jmeter 的【 JSON Extractor 】完全一致。
        • 缺省值:當(dāng)提取預(yù)期內(nèi)容失敗時,給變量名賦予的值。

        4、結(jié)果斷言:目前包括常規(guī)斷言和 Beanshell 斷言兩種形式,其中常規(guī)斷言包括:包含、相等、JSON 三種方式(已經(jīng)能覆蓋大多數(shù)應(yīng)用場景,后續(xù)可以繼續(xù)豐富)5、結(jié)果示例是接口返回結(jié)果的示例:

        4 測試集合

        測試集合可以說是這個接口自動化平臺的意義之所在。在接口自動化中,單接口調(diào)用參考價值有限,多個接口按照業(yè)務(wù)邏輯組成一條流程,才是接口自動化意義所在。當(dāng)一系列接口用例創(chuàng)建完成后,在【測試集合】頁面可以按照業(yè)務(wù)邏輯將它們組裝起來,形成一個任務(wù)隊列。下面說明一下如何編輯一條測試集合:

        1. 點擊【編輯】按鈕,將進入測試集合詳情頁,在該頁面可以非常方便地增減用例、調(diào)整用例順序。
        2. 點擊【+】按鈕,進入用例添加頁面:
        3. 通過選定一系列篩選條件,【用例】行將展示所有符合篩選條件的用例,選擇想要的用例后,點擊【提交】即將該用例添加到測試集合的用例列表中。
        4. 選擇了用例后,回到測試集合詳情頁,用例順序調(diào)整完畢后,點擊【提交】按鈕,將信息保存到數(shù)據(jù)庫。同時,程序會自動生成【用例隊列】(用例 ID 組成的隊列)和【隊列描述】(用例對應(yīng)的接口名稱組成的隊列)。

        5 測試結(jié)果

        在【測試集合】頁面選擇執(zhí)行某條測試集合后,程序?qū)⒆x取其對應(yīng)的用例隊列,并依次執(zhí)行每個用例,最終生成一條測試集合的測試結(jié)果,并持久化保存在數(shù)據(jù)庫中。點擊【詳情】按鈕,進入測試結(jié)果詳情頁,查看某條測試結(jié)果的詳情:雙擊某行,彈出該行對應(yīng)的響應(yīng)結(jié)果:

        接口測試平臺功能大體上就以上,還有很多需要優(yōu)化的地方,比如

        • 定時任務(wù),將以項目或測試集合為單位布置定時任務(wù)執(zhí)行
        • 結(jié)果報告,這個功能常有的華麗麗的測試報告,個人覺得華大于實,有精力再搞搞吧
        • 交互優(yōu)化,測試數(shù)據(jù)頁面左側(cè)增加樹狀列表,方便數(shù)據(jù)查找

        來源:https://blog.csdn.net/mu_wind

        留言送書

        本周留言贈書:《Python 網(wǎng)絡(luò)爬蟲開發(fā)
        PS:中獎名單將于下周一在交流群公布


        推薦閱讀


        帶你用 Python 實現(xiàn)自動化群控(入門篇)

        這些自動化場景,批處理完全可以取代 Python

        我用幾行 Python 自動化腳本完美解決掉了小姐姐的微信焦慮感


        AirPython 公眾號的交流群已經(jīng)建立,群里可以領(lǐng)取 Python 相關(guān)學(xué)習(xí)資料,大家可以一起學(xué)習(xí)交流,效率更高,如果是想發(fā)推文、廣告、砍價小程序的敬請繞道

        一定記得備注「 交流群 」,不然不會通過好友

        掃碼添加,備注:交流群

        瀏覽 46
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 探花导航 | 艹逼网站下载 | 国产精品呻吟高潮 | 日韩城人视频 | 婷婷五月天成人网 |