jmeter-grpc-plugin

###git地址
https://github.com/arjick/jmeter-grpc-plugin/blob/master/README.md

###背景與目標
通過該插件實現針對grpc接口的測試,並且可以利用jmeter的所有測試特性。
https://github.com/yangliCypressTest/jmeter-grpc-plugin
的基礎上做了一部分的修改。

###工程優勢

  • 無需編寫獨立的測試工程
  • 有大量的報表支持實現多維度的指標監測
  • 可以編寫測試用例,測試用例便於傳播
  • 基本實現編碼

###入門教程
####一 環境準備

  • Jdk和maven環境(jdk8.0以上,maven 3.5以上)
  • 下載源代碼
    ssh://[email protected]:2222/chunhua.kang/jmeter-grpc-plugin.git

####二 修改proto
在我們需要的測試的proto文件中加入一句話

option java_multiple_files = true;

例如:

syntax="proto3";

package auth;

option java_multiple_files = true;

// The Customer service definition.
service Auth {
    rpc Login(LoginParams) returns (ResultResponse) {}
}

//空請求體
message LoginParams {
    int64 requestId =1;
    string username = 2;
    string password = 3;
}


//通用返回體定義
message ResultResponse {
  int64 requestId = 1;
  bool success = 2;
  string message = 3;
  int32 userId = 4;
  string token = 5;
}

####三 編譯工程

mvn clean install

在這裏插入圖片描述

得到jar: grpc-client-sampler.jar

####四 安裝插件
把grpc-client-sampler.jar複製到jmeter/lib/ext

####五 編寫測試用例

  • 新建線程組
    在這裏插入圖片描述

  • 新建GrpcClientSampler
    在這裏插入圖片描述

需要填寫參數主要包括
hostname
port
service(對應proto的service)
method(對應proto的method)
request(對應proto的method的request)

import auth.LoginParams;
import com.google.protobuf.Message;
public class RequestFactory {
public Message buildRequest() {
Message request = LoginParams.newBuilder().setRequestId(123).setUsername("admin").setPassword("1").build();
return request;
    }
}

  • 新建viewResultTree
    在這裏插入圖片描述

####六 執行結果
在這裏插入圖片描述

####七 其他

附帶例子jmx:jmx/GrpcGroup.jmx
因爲jmeter沒有完整的google和netty包,無法執行grpc,如果下載官方完整的jmeter要手動去公共倉庫下載lib。我已經把所需要的lib下載好,打包好一個jmeter。啓動方式和原版一樣。

cd jmeter/bin   
./jmeter
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章