Gatling从3.3.1升级到3.8.4后escapeJsIllegalChars函数缺失求替代
Gatling 3.8.4 替代
escapeJsIllegalChars 的方案 在Gatling 3.5及以上版本中,原有的escapeJsIllegalChars函数已被移除,官方提供了以下几种替代方案:
1. 使用内置的StringEscapeUtils.escapeJson方法
这是官方推荐的替代方式,io.gatling.commons.util.StringEscapeUtils类下的escapeJson方法可以处理JSON/JS字符串中的所有非法字符,功能完全覆盖原escapeJsIllegalChars的需求:
import io.gatling.commons.util.StringEscapeUtils // 替换原调用逻辑 val escapedName = StringEscapeUtils.escapeJson(userName)
2. 自定义实现原函数逻辑
如果需要完全匹配旧版escapeJsIllegalChars的行为(仅处理JS特定转义字符),可以自行实现一个等价函数:
def escapeJsIllegalChars(s: String): String = { s.replace("\\", "\\\\") .replace("\"", "\\\"") .replace("\b", "\\b") .replace("\f", "\\f") .replace("\n", "\\n") .replace("\r", "\\r") .replace("\t", "\\t") }
3. Gatling表达式中直接使用转义语法
如果是在请求体模板或Gatling表达式中使用,可直接通过#{变量名.jsonEscaped}的语法自动完成转义,无需手动调用函数:
.bodyString("""{"name": "#{userName.jsonEscaped}"}""")
内容的提问来源于stack exchange,提问作者Will CG
相关产品推荐
相关产品推荐

