将消息转换为 Scala / Grpc 中的有效负载

问题描述 投票:0回答:1

经过几天的尝试和失败,终于我成功地将 Grpc 和 Gatting 插件实现到一个项目中(令人尴尬的长时间),现在我正在研究 phiSgr 示例(再次对此感到抱歉),我看到有一部分像这样:

message GreetRequest {
    string username = 1;
    string name = 2;
}

在 GrpcExample.scala 中,他“翻译了它”:

  val greetPayload: Expression[GreetRequest] = GreetRequest(name = "World").updateExpr(
    _.username :~ $("username")
  )

所以我只想知道翻译这个块的过程:

message Device {
   string id = 1[(google.api.field_behavior) = REQUIRED]
}
message StartPairingRequest {
   Device device = 1 [(google.api.field_behavior) = REQUIRED]
}

当我提出请求时会附上正文信息

{
   "Device": {
       "id": "random text"
   }
}

我在 .scala 文件中尝试执行的操作:

val greetPayload: Expression[StartPairingRequest] = StartPairingRequest(device = " "theBody" = "random text" ").updateExpr(
_.device:~$("device")
)

看来我的实现不正确,所以我想了解更多有关这个“翻译”程序的信息,请帮忙。

scala grpc gatling
1个回答
0
投票

扩展函数

updateExpr
和运算符
:~
用于与虚拟用户的
Session
构造动态负载。

使用它们需要了解一个称为lens的概念,它在ScalaPB中使用。

强烈建议那些缺乏先验知识的人使用 Kotlin 绑定并用 Kotlin/Java 编写负载测试。


然而,这个问题中描述的有效负载没有动态值,可以简单地构造为:

StartPairingRequest(Device("random text"))
© www.soinside.com 2019 - 2024. All rights reserved.