天天看點

java接口自動化(四):Mock接口架構的使用

Mock基本介紹

mock就是對于某些不容易構造或者不容易擷取的對象,用一個虛拟的對象來建立的方法。項目開發和測試過程中,遇到以下的情況時,就需要模拟結果傳回。

1. 當另一方接口或服務還未完成,阻礙項目進度時,可以通過mock的方式,實作并行開發。

2. 另一方接口不穩定,而這邊需要一個穩定的結果才能繼續往下走流程時,也可以使用mock。有時候自動化測需要一個持續穩定的環境,也可以對不是很重要的服務進行mock處理。

3. 需要模拟異常情況,但是這種異常不容易觸發時,可以使用mock實作。

Moco架構基本介紹

Moco的原理是應用于stub開發的,也就是樁代碼(大概了解的意思就是用來代替某些代碼的代碼,這個不做深入的研究)。

Moco原理簡介:Moco會根據一些配置,啟動一個真正的HTTP服務(會監聽本地的某個端口)。當發起請求滿足一個條件時,它就給回複一個應答。Moco的底層沒有依賴于像Servlet這樣的重型架構,而是基于一個叫Netty網絡應用架構直接編寫的,這樣一來,繞過了複雜的應用伺服器,速度會很快

Moco架構的基本使用

moco架構是github上的一個開源項目,可以把這個項目源碼拿下來使用 gradle編譯為一個jar,也可以網上直接找 jar 包下載下傳。 位址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.10.0/ 可以自己找一個版本下載下傳

java接口自動化(四):Mock接口架構的使用

也可以使用Maven導入jar包

<!-- https://mvnrepository.com/artifact/com.github.dreamhead/moco-runner -->
<dependency>
    <groupId>com.github.dreamhead</groupId>
    <artifactId>moco-runner</artifactId>
    <version>1.1.0</version>
</dependency>

           

如果是直接導入jar包的話啟動mock指令如下:

java -jar ./moco-runner-0.10.0-standalone.jar http -p 8080 -c api.json
           

采用maven導入的包啟動mock如下

import com.github.dreamhead.moco.bootstrap.Bootstrap;

public  class test {
    //http -p 8080 -c api.json
    public static void main(String[] args) {
        (new Bootstrap()).run(new String[]{"http","-p","8080","-c","H:\\work\\TestNG_Maven\\src\\Mock/api.json"});
    }
}
           

兩種方式都可以啟動Mock然後通過浏覽器直接通路我們的接口

java接口自動化(四):Mock接口架構的使用