如何在Gatling/Scala中移除Token中的<br/>标签
在Gatling中清理含HTML换行标签的Token
没问题,我来帮你搞定这个Token清理的问题!在Gatling里有两种实用的实现方式,具体选哪种取决于你是否需要复用清理后的Token:
方法一:通过.exec()处理后存入Session(推荐复用场景)
这种方式会把清理后的Token保存到Gatling的Session中,后续所有请求都可以直接引用,非常适合需要多次使用Token的场景:
// 第一步:提取原始带标签的Token .exec(http("Fetch Raw Token") .get("/your-token-api-endpoint") .check(regex("""your-regex-pattern-to-capture-token""").saveAs("rawToken")) ) // 第二步:清理Token并保存到Session .exec(session => { // 从Session中取出原始Token val rawToken = session("rawToken").as[String] // 移除所有<br/>标签,合并为单个字符串 val cleanedToken = rawToken.replace("<br/>", "") // 将清理后的Token存入Session,键名为cleanToken session.set("cleanToken", cleanedToken) }) // 第三步:在后续请求中直接引用清理后的Token .exec(http("Use Clean Token") .post("/your-protected-endpoint") .header("Authorization", "Bearer ${cleanToken}") .body(StringBody("""{"token": "${cleanToken}"}""")) )
方法二:直接在请求中处理(适合单次使用场景)
如果这个清理后的Token只需要在某一个请求中使用,你可以直接在请求的参数/头信息里实时处理,不用额外存入Session:
.exec(http("Fetch Raw Token") .get("/your-token-api-endpoint") .check(regex("""your-regex-pattern-to-capture-token""").saveAs("rawToken")) ) .exec(http("Use Clean Token Directly") .post("/your-protected-endpoint") .header("Authorization", session => { val rawToken = session("rawToken").as[String] // 实时清理并拼接成授权头 s"Bearer ${rawToken.replace("<br/>", "")}" }) )
小提示
- 如果你的Token里可能存在
<br/>的其他变体(比如大小写、缺少斜杠等),可以用replaceAll结合正则来匹配:rawToken.replaceAll("(?i)<br/?>", "") - 记得先验证你的正则表达式确实完整捕获了带标签的Token,可以通过Gatling的日志查看
rawToken的内容是否正确
内容的提问来源于stack exchange,提问作者Magnus Jensen
相关产品推荐
相关产品推荐

