<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          API Testing開源 API 測試工具

          聯(lián)合創(chuàng)作 · 2023-10-01 19:51

          API Testing 是一個基于 YAML 文件的開源接口測試工具,同時支持運行在本地、服務端。

          在選擇工具時,可以從很多方面進行考量、對比,以下幾點是該工具的特色或者優(yōu)點:

          • 開源與否,atest 采用 MIT 開源協(xié)議,是最流行的寬松開源協(xié)議之一。有些工具也許有非常豐富的功能、漂亮的界面,但相比于開源項目,免費的工具不定什么時候就有可能變?yōu)槭召M的;而且,你的使用感受幾乎很難直接反饋到產品中,只能被動接受。
          • 質量、可靠性,作為一款用于測試場景的工具,atest 本身的單元測試覆蓋率達 89%,單測代碼與業(yè)務邏輯代碼量平分秋色;另外,每次代碼改動都需要通過代碼掃描、單元測試等流水線。
          • 身材小巧,整個工具大小為 18M,支持 Windows、Linux、macOS 平臺。
          • 只有簡單的可執(zhí)行二進制文件,不像部分工具會給你的操作系統(tǒng)安裝莫名其妙的系統(tǒng)啟動項目、系統(tǒng)服務等。
          • 基于 YAML 文件,提交到 Git 倉庫后,天生支持團隊協(xié)作,無需注冊額外賬號。
          • 同時提供簡單、高級兩種模式的返回值斷言,還包括 JSON Schema 以及針對 Kubernetes 資源的校驗判斷。
          • 支持性能測試。
          • 直接在 VS Code 中直接觸發(fā)執(zhí)行單個或整個測試文件。

          如何使用?

          那么,這個工具長什么樣子呢,下面是命令行 atest 的參數(shù)說明:

          
          API testing tool
          
          Usage:
          
          atest [command]
          
          Available Commands:
          
          completion Generate the autocompletion script for the specified shell
          
          help Help about any command
          
          json Print the JSON schema of the test suites struct
          
          run Run the test suite
          
          sample Generate a sample test case YAML file
          
          server Run as a server mode
          
          service Install atest as a Linux service
          
          Flags:
          
          -h, --help help for atest
          
          Use "atest [command] --help" for more information about a command.
          
          

          本地模式

          執(zhí)行一個測試用例集文件:atest run -p sample/testsuite-gitlab.yaml,其中的參數(shù) -p 支持模糊匹配多個文件。

          如果希望對測試用例集執(zhí)行性能測試的話,可以增加響應的參數(shù):

          atest run -p sample/testsuite-gitlab.yaml --duration 1m --thread 3 --report m

          其中的參數(shù) --report 可以指定性能測試輸出報告,目前支持 Markdown 以及控制臺輸出。效果如下所示:

          | API | Average | Max | Min | Count | Error |
          
          |---|---|---|---|---|---|
          
          | GET https://gitlab.com/api/v4/projects | 1.152777167s | 2.108680194s | 814.928496ms | 99 | 0 |
          
          | GET https://gitlab.com/api/v4/projects/45088772 | 840.761064ms | 1.487285371s | 492.583066ms | 10 | 0 |
          
          consume: 1m2.153686448s

          服務端模式

          除了本地執(zhí)行外,atest 還提供了基于 gRPC 協(xié)議服務端,通過下面的命令即可啟動:

          
          atest server
          
          

          對于 Linux 操作系統(tǒng),用戶還可以通過下面的命令安裝后臺服務:

          
          atest service (install | start | stop | restart)
          
          

          當然,如果你對容器、Kubernetes 比較熟悉的話,本項目也提供了對應的支持。

          這種模式,對于想要集成的用戶而言,可以通過調用 gRPC 來執(zhí)行測試。也可以安裝 VS Code 插件,在編碼與接口測試之間無縫切換,您可以搜索 api-testing 找到該插件。

          插件會識別所有第一行是 #!api-testing 的 YAML 文件,并提供快速的執(zhí)行操作,請參考如下截圖:

          如圖所示,會有四個快捷執(zhí)行操作:

          • run suite 會執(zhí)行整個文件
          • run suite with env 會加載 env.yaml 文件并執(zhí)行整個文件
          • run 執(zhí)行單個測試用例(包括所依賴的用例)
          • debug 執(zhí)行單個測試用例,并輸出接口返回值

          當你安裝了 VS Code 插件后,會自動下載并安裝 atest 及其服務。當然,你也可以配置不同的遠端服務地址。

          文件格式

          atest 定義的 YAML 格式,基本遵循 HTTP 的語義,熟悉 HTTP 協(xié)議的同學即可快速上手。下面是一個范例,更多例子請參考這里

          
          #!api-testing
          
          name: Kubernetes
          
          api: https://192.168.123.121:6443
          
          items:
          
          - name: pods
          
          request:
          
          api: /api/v1/namespaces/kube-system/pods
          
          header:
          
          Authorization: Bearer token
          
          expect:
          
          verify:
          
          - pod("kube-system", "kube-ovn-cni-55bz9").Exist()
          
          - k8s("deployments", "kube-system", "coredns").Exist()
          
          - k8s("deployments", "kube-system", "coredns").ExpectField(2, "spec", "replicas")
          
          - k8s({"kind":"virtualmachines","group":"kubevirt.io"}, "vm-test", "vm-win10-dkkhl").Exist()
          
          

          用戶可以自定義請求的 Header、Payload 等,可以對響應體做全面的斷言判斷。

          后續(xù)計劃

          如果您已經耐心閱讀到這里的話,可以再順便了解下這個項目后續(xù)的一些想法。

          通過更多的實際場景來打磨、優(yōu)化 atest 對接口測試的便利性、可擴展性,以不丟失易用性為前提增強功能。例如:

          • 優(yōu)化錯誤提示、反饋
          • 提供與 CICD 集成的最佳實踐
          • 增加 gRPC 等協(xié)議的支持
          • 增加測試記錄信息的持久化
          • VS Code 插件支持測試用例編寫的提示、格式校驗
          • 提供插件機制,增加對數(shù)據(jù)庫等數(shù)據(jù)源的格式校驗

          最后期待您的反饋 https://github.com/LinuxSuRen/api-testing/issues

          瀏覽 35
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费又色又爽又黄的成人用品 | a在线视频免费 | 免费 69视频 | 日韩网站污 | 一级簧片在线免费观看 |