Gatling从外部文件传递多个Header时编译类型不匹配如何解决
问题原因
- 类型不匹配来自两个问题:
- 你给请求头的Map额外套了一层
List封装,Gatling的headers方法要求传入的参数是Map[String, String]类型,你当前定义的header0是List[Map[...]]类型,本身就不符合入参要求。 - 从
TestParameters读取的Keyvalue、UserID两个字段没有明确为String类型,Scala编译器自动将两个值的公共父类java.io.Serializable作为Map的值类型,和要求的String类型不匹配。
- 你给请求头的Map额外套了一层
修复方案
直接移除多余的List封装,同时给两个参数显式转为String类型即可,修改后代码如下:
val header0 = Map( "Ocp-Apim-Subscription-Key" -> TestParameters.Keyvalue.toString, "UserId" -> TestParameters.UserID.toString )
如果你可以修改TestParameters的定义,也可以直接把这两个字段的类型显式声明为String,就不需要额外调用toString方法做转换了。
内容的提问来源于stack exchange,提问作者Sriram RAJASEKARAN
相关产品推荐
相关产品推荐

