我想提取一个url的特定部分,并使用Jmeter中的BeanShell PreProcessor进行操作。
任何人都可以帮助我。
答案 0 :(得分:2)
您可以将正则表达式提取器后处理器元素作为要从中提取URL的采样器的子项,并在“要检查的字段”中检查“URL”。 Here您可以找到有关正则表达式提取器以及如何使用它的更多信息。从here开始,您可以在JMeter中了解有关引用函数和变量的更多信息。
答案 1 :(得分:0)
这可以通过多种方式完成。
我在groovy中做了一个示例,因为groovy在url库中有一个构建来访问url的部分
log.info vars.get("iurl")
input =vars.get("iurl")
URI ulrString = new URI(input[0])
vars.put("gHost",ulrString.getHost().toString())
vars.put("gPort",ulrString.getPort().toString())
vars.put("gPathUrl",ulrString.getPath().toString())
希望这有帮助。
答案 2 :(得分:0)
根据您需要的部分以及您可以采取的措施,方法可能会有所不同,其中之一是:
在Beanshell PreProcessor中,您有sampler
预定义变量,代表父Sampler实例。如果是HTTP Request,则为HTTPSamplerProxy级。因此,您可以使用sampler.getUrl()
方法获取整个URL,它将返回java.net.URL实例,因此您可以使用URL类方法来处理它:
URL url = sampler.getUrl();
String protocol = url.getProtocol();
String host = url.getHost();
String path = url.getPath();
log.info("URL: " + url.toString());
log.info("Protocol: " + protocol);
log.info("Host: " + host);
log.info("Path: " + path);
演示:
有关使用Beanshell测试元素中的JMeter和Java API的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component指南。