当我需要在Gatling压力测试中关注页面上的链接时,如果URL包含&符,则会出现问题。大概是因为加特林将其解释为一个实体。怎么能解决这个问题?
示例:
假设您首先收到包含
的网页<a href="go?to=foobar&index=null" title="Choice 1">
现在,如果我尝试使用此链接
exec(
http("page with link")
.get("/page1")
.check(css("""a[title='Choice 1']""", "href").saveAs("url"))
)
.exec(
http("follow link")
.get("${url}")
)
然后用于第二个请求的网址是go?to=foobar%E2%88%88dex=null
答案 0 :(得分:2)
答案 1 :(得分:0)
我不确定它是否正确&#34;在HTML属性中使用未转义的&符号。但有些网站有它们和浏览器处理它。有些网站甚至在同一属性中同时拥有&
和&
。但是从版本2.1.7开始,Gatling的CSS选择器无法处理普通(未转义)的&符号。
如果其他人有同样的问题,这是一个肮脏的黑客:
regex("""href="([^"]+)".* title="Choice 1">""")
.transform(raw => raw.replace("&", "&"))
当然,你永远不应该在HTML(或XML)上使用正则表达式。在这种情况下,永远不会意味着&#34;直到它适用于CSS选择器&#34;。