【问题标题】:Extract Path from Href link using Jmeter使用 Jmeter 从 Href 链接中提取路径
【发布时间】:2014-07-29 19:53:32
【问题描述】:

我正在尝试使用 Jmeter 开发一个简单的测试脚本,它可以进行 bing 搜索并从搜索结果中随机选择一个链接并导航到所选链接。我可以使用正则表达式提取器和随机变量函数来捕获和随机化链接选择,但我不确定如何从随机捕获的 href 链接中提取路径。即,如果捕获的链接是“http://en.wikipedia.org/wiki/.NET_Framework” ,我想从链接中提取“/wiki/.NET_Framework”并将其替换为后续 HTTP 请求的“路径”文本空间。如果我是正确的,我认为在这里使用 Regex Extractor 是不可能的,因为没有唯一的边界来直接从页面的响应中提取路径。

【问题讨论】:

    标签: regex httprequest jmeter href


    【解决方案1】:

    让我们将http://en.wikipedia.org/wiki/.NET_Framework 分解成组件:

    • http - 协议
    • en.wikipedia.org - 主持人
    • /wiki/.NET_Framework - 路径

    添加Beanshell Pre Processor作为请求的子项,您需要替换路径并将以下代码添加到脚本区域:

    import java.net.URL;
    
    URL url = new URL(vars.get("LINK"));
    sampler.setProtocol(url.getProtocol());
    sampler.setDomain(url.getHost());
    sampler.setPath(url.getPath());
    

    上面的代码假定您的 URL 的参考名称是“LINK”。将其更改为正则表达式提取器中指定的引用名称,它应该可以正常工作。

    Beanshell 预处理器在请求之前执行,因此将填充所有必要的字段。

    有关 Beanshell 脚本的更多详细信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。

    【讨论】:

    • 感谢您回复我的问题。您建议的代码有效并解决了我的问题..但我现在面临另一个小问题..在 log.info() 函数的帮助下,我发现 vars.get("LINK") 似乎正在动态返回完整捕获的 href 链接以及附加到 href 链接末尾的“nullnull”字样。这可能是什么原因?这就是它的样子,en.wikipedia.org/wiki/Dot_netnullnull
    • 我需要查看响应和您的正则表达式/模板才能回答,很难说您的正则表达式有什么问题
    • 抱歉占用您的时间。我自己解决了。感谢您指出正则表达式,我在正则表达式的模板属性中犯了一个错误,我把它写成 $1$$2$$3$。删除 $2$$3$ 后它工作得非常好。再次抱歉耽误您的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多