我是jmeter的新手,我无法找到答案。我想打电话给网站上的所有内部链接。教程帮助我收集所有链接。然而,其中一些是重复的。我想只打电话给唯一的链接 - 所以1个链接1个电话。
我正在调用我的网页,通过正则表达式提取器,我正在收集所有链接。结果我有变量存储链接。但不幸的是,其中一些是重复的,因此我不止一次调用一些链接。
有人知道怎么做吗?
答案 0 :(得分:0)
假设你的链接来自正则表达式提取器,你应该有类似的东西:
LINK=http://foo.bar
LINK_1=http://foo.bar
LINK_2=http://example.com
LINK_3=http://example.com
LINK_matchNr=3
JMeter没有提供适当的测试元素来消除这种情况下的重复,但你仍然可以通过一些脚本来解决它。
为了做到这一点
将以下代码放入PostProcessor的“脚本”区域:
int matches = Integer.parseInt(vars.get("LINK_matchNr"));
Set links = new HashSet();
for (int i = 1; i <= matches; i++) {
links.add(vars.get("LINK_" + i));
vars.remove("LINK_" + i);
}
int counter = 1;
for (String link : links) {
vars.put("LINK_" + counter, link);
counter++;
}
所以你的测试计划如下:
PostProcessor中的Behellhell代码
LINK_
所以最后你会有初始形式的JMeter变量,但没有重复。
重要提示:以上Beanshell代码假定您在正则表达式提取器中使用LINK
作为“参考名称”,请确保将其更改为LINK
或更新Beanshell代码以匹配您的参考名称
有关Apache JMeter中Beanshell脚本的高级信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南。