如何在 Jmeter 的 Beanshell 中拆分字符串

问题描述

我是 Jmeter 的初学者。我需要在 Beanshell 后处理器中拆分一个字符串。我的字符串包含:

[{name=Rose,id=2,Job=manag,AGE=45},{name=Mary,id=3,Job=eng,AGE=67},{name=Terese,id=4,Job=exe,AGE=20},{name=George,id=5,AGE=50},{name=Mathew,id=6,Job=cwit,AGE=30},{name=jiss,id=7,Job=bd,AGE=49},{name=Rose,id=8,AGE=36}]

如何拆分 beanshell 中的每个值,例如:

- [Rose,2,manag,45]
- [Mary,3,eng,67] etc.

解决方法

首先,我怀疑您根本不应该使用 Beanshell,since JMeter 3.1 it's recommended to go for JSR223 Test Elements and Groovy language 用于编写脚本

您确定该字符串正是这种格式吗?我之所以这么问是因为它看起来像是 JSON,如果是这种情况,您会得到如下响应:

[
  {
    "name": "Rose","id": 2,"Job": "manag","AGE": 45
  },{
    "name": "Mary","id": 3,"Job": "eng","AGE": 67
  },{
    "name": "Terese","id": 4,"Job": "exe","AGE": 20
  },{
    "name": "George","id": 5,"AGE": 50
  },{
    "name": "Mathew","id": 6,"Job": "cwit","AGE": 30
  },{
    "name": "jiss","id": 7,"Job": "bd","AGE": 49
  },{
    "name": "Rose","id": 8,"AGE": 36
  }
]

您可以使用 JSR223 PostProcessor 和以下 Groovy 代码:

new groovy.json.JsonSlurper().parse(prev.getResponseData()).each { entry ->
    log.info(entry as String)
}

演示:

enter image description here

更多信息: