您好我正在运行一个测试场景,我从csv文件中获取相对URL,并在将其附加到域后使用相同的URL。 现在我想提取每个页面中存在的所有href并保存在单独的文件中。 假设我正在点击www.abc.com/url1并且这个页面有10个href而不是第一个文件应该被命名为url1并且应该包含这10个href值。类似于所有其他URL的
请建议我不是Jmeter的专家。我尝试使用谷歌搜索,但没有找到一种可以理解的方式。
提前致谢
答案 0 :(得分:1)
您可以按照以下方式执行此操作:
添加CSS/JQuery Extractor作为HTTP请求的子项,并按如下方式对其进行配置:
href
-1
href_1=http://foo.bar
href_2=http://example.com
...
href_matchNr=10
import org.apache.commons.io.FileUtils;
File csvFile = new File("/path/to/url1.csv");
int hrefCount = Integer.parseInt(vars.get("href_matchNr"));
for (int i = 1; i <= hrefCount; i++) {
FileUtils.writeStringToFile(csvFile,vars.get("href_" + i) + System.getProperty("line.separator"), true);
}
这将提取所有&#34; href&#34;所有链接中的属性都为JMeter Variables,如:
vars
然后将Beanshell PostProcessor添加为CSS JQuery Extractor之后的相同HTTP请求的子项。将以下代码放入PostProcessor&#34;脚本&#34;面积:
CLASS_DECLARE(NAME, TYPE)\
class NAME { \
public: NAME(const TYPE& x) : value(x) {}\
private: TYPE value; };
其中:
CLASS_DECLARE(NAME, TYPE)\
class NAME { \
public: NAME(const TYPE& x) : value(x) {}\
BOOST_PP_EXPR_IF(0, NAME(const int& x) : value(static_cast<TYPE>(x)) {})\
private: TYPE value; };
- JMeterVariables类的实例,提供对JMeter变量的读/写访问权有关如何通过脚本和某种形式的Beanshell食谱克服JMeter限制的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component