<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    支持多種服務mock的工具 OpenMock

    VSole2022-08-01 10:23:46

    1 推薦理由

    當項目依賴比較多的其他服務,在測試時,通常連接是這些服務的test環境,但是這樣做第一 無法保證被依賴服務用例的完備性,第二 在實際測試過程中可能會遇到比較多費時費力的聯調問題。本次推薦的openmock工具,通過mock的手段,可以簡化此類項目的測試過程。

    2 功能介紹

    openmock支持通過yaml文件,配置HTTP、gRPC、Kafka、AMQP (e.g. RabbitMQ) 等協議的mock服務。

    3 使用指南

    3.1 安裝

    下載代碼,并進入目錄:

    $ git clone git@github.com:checkr/openmock.git
    $ cd openmock
    

    使用docker安裝:

    $ docker run -it -p 9999:9999 -v $(pwd)/demo_templates:/data/templates checkr/openmock 
    

    $ docker-compose up
    

    檢查是否安裝成功:

    $ curl localhost:9999/ping
    

    3.2 配置示例

    openmock的配置文件可以分成4大部分:

    1. Schema:openmock可以配置多個行為,每個行為通過key和kind來表示;
    2. Except:用來定義協議類型(HTTP、gRPC、Kafka、AMQP),以及觸發當前行為的條件;
    3. Action:用來定義當前行為的執行結果;
    4. Template:用來定義和組裝響應payload。

    下面是HTTP mock server的配置示例:

    # 這里是 Template
    - key: http-request-template
      kind: Template
      template: >
        { "http_path": "{{.HTTPPath}}", "http_headers": "{{.HTTPHeader}}" }
    # 這里也是Template
    - key: color-template
      kind: Template
      template: >
        { "color": "{{.color}}" }
    # 這里是Schema
    - key: teapot
      kind: AbstractBehavior
    # 這里Except
      expect:
        http:
          method: GET
          path: /teapot
    # 這里Action
      actions:
        - reply_http:
            status_code: 418
            body: >
      # 這里使用了Template
              {
                "request-info": {{ template "http-request-template" . }},
                "teapot-info": {{ template "color-template" .Values }}
              }
    - key: purple-teapot
      kind: Behavior
      extend: teapot
      values:
        color: purple
    

    測試一下,可以看到如下結果:

    $ curl localhost:9999/teapot
    {"request-info":{"http_path":"/teapot","http_headers":""},"teapot-info":{"color":"purple"}}
    

    更多示例請參考:

    https://github.com/checkr/openmock/tree/master/demo_templates

    4 總結

    openmock 通過yaml文件可以實現快速mock服務,并且可以支持多種協議,比如HTTP、gRPC、Kafka、AMQP等。在項目測試時,可以試試使用openmock,看看能否提高項目的測試效率。

    mock
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    YApi 是高效、易用、功能強大的 api 管理平臺是國內某旅行網站的大前端技術中心開源項目,使用mock數據/腳本作為中間交互層,為前端后臺開發與測試人員提供更優雅的接口管理服務,該系統被國內較多知名互聯網企業所采用。
    YApi接口管理平臺遠程代碼執行0day漏洞,攻擊者可通過平臺注冊用戶添加接口,設置mock腳本從而執行任意代碼。
    威脅行為者可以利用一種名為 Mockingjay 的新進程注入技術繞過安全解決方案,在受感染的系統上執行惡意代碼。值得指出的是,每種方法都需要結合特定的系統調用和 Windows API 來執行注入,從而允許防御者制定適當的檢測和緩解程序。然而,值得注意的是,可能還有其他具有類似特征的易受影響的 DLL。
    1 推薦理由當項目依賴比較多的其他服務,在測試時,通常連接是這些服務的test環境,但是這樣做第一 無法保證被依賴服務用例的完備性,第二 在實際測試過程中可能會遇到比較多費時費力的聯調問題。
    安全公司 Sentinel One 在最新博文中解釋了該攻擊的工作原理,攻擊者可以在系統中植入 Remcos RAT 惡意軟件。
    是否會校驗,在代碼變更的時候 sql 語句是否也發生了變更呢?針對以上兩個問題,sqlmock 可以完成對 sql 語句的單側,讓你對 orm 生成的 sql 了如指掌,同時清晰 test raw sql 也讓 review 的同事快樂加倍。
    主要因為最近公司上了代碼質量管控的指標,會考評各個項目的單元測試覆蓋率,以及sonar掃描出來的各種問題,很多老項目老代碼,或者著急交付的項目,單元測試嚴重缺失,覆蓋率只有5%不到。首先我們打開一個類,這個類就是我們即將要作為實驗的類,這個類有7個public方法,因為Squaretest生成的單元測試方法都是只能生成public的,當然這也是合理的嘛!畢竟private的肯定被public調用了。
    二. Apifox 做的改進1. Apifox的整體功能定位Apifox 是 API 文檔、API 調試、API Mock、API 自動化測試一體化協作平臺。支持 Markdown 所見即所得地編寫非 API 文檔的普通文檔。API 文檔支持密碼保護和生效時間,可生成多份不同內容和權限的文檔。支持綁定接口,接口發生變化時,自動更新測試用例。支持執行循環次數和用例之間設置時間間隔。
    大廠基本為了程序的安全,會使用大量內聯SVC去調用系統函數,以此來保護程序的安全。如何實現SVC指令的IO重定向,成為最大的問題。內核態是當Linux需要處理文件,或者進行中斷IO等操作的時候就會進入內核態。當arm系列cpu發現svc指令的時候,就會陷入中斷,簡稱0x80中斷。
    Laravel官方發布安全通告,修復了一個存在于Laravel中的遠程代碼執行漏洞。漏洞編號:CVE-2021-43503,漏洞威脅等級:嚴重,漏洞評分:9.8。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类