Jmeter 爬图片

恕在下才疏学浅,刚刚才学。 整理了一下笔记 。

先去官网下载: https://jmeter.apache.org/download_jmeter.cgi

  

然后,解压,win10在已经安装JDK的情况下,直接双击 bin/ApacheJMeter.jar 运行。

 

 给测试计划命个名,比如爬图片,顺便右击此名称,添加,线程(用户),线程组

  

线程组再右击,添加,取样器,HTTP请求,填上协议,IP,方法,路径等信息。以爬取此页图片为例: https://dp.pconline.com.cn/list/all_t5.html

  

在 HTTP请求上右击,添加, 后置处理器,XPath提取器。记得下图2处要打勾,XPath query 则填写对应的html标签和属性

 

  

再次在 HTTP请求 上右击,添加, 后置处理器,XPath提取器。这个用来取 A 标签的 title, 也就是图片名称。同样设置好 变量名称 和 query.

 

在 线程组 上右击,添加,取样器,调试取样器。  在 线程组 上右击,添加,监听器,察看结果树。

至此,可以点击工具栏,绿色三角形按钮,预览一下效果。如果提示保存,可点是,保存一下此脚本。

运行结束,红色STOP按钮会自动变回灰色。

点击 察看结果树,调试取样器,响应数据,即可看到 src 变量和 title 变量 获取到的结果:

  

下面,要抓取图片了。 

右击,线程组,添加,逻辑控制器,循环控制器,在循环次数中,使用上图结果中的 src_matchNr 或者 title_matchNr 因为这两个变量正好是数量。

  

再右击循环控制器,添加,配置元件,计数器。 开始1,递增1,最大值为 src_matchNr 或者 title_matchNr , 设置变量名称为 num 

  

再右击 循环控制器,添加,取样器, HTTP请求,设置如下图

${__V(title_${num})} 语法:__V 为拼接函数,拼接 title_ 与计数器中的 num 变量的值。而这个整体再作为变量,用来取得图片名称

同理,${__V(src_${num})}   则用来取得图片路径。

  

在这个HTTP请求上右击,添加,后置处理器,BeanShell 后置处理程序,添加以下代码: 

prev.setDataEncoding("UTF-8");
byte[] result = prev.getResponseData();
String fileName = "e:/aa/${__V(title_${num})}.jpg";
File file = new File(fileName);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();

其中,fileName 变量表示,将要保存的路径和文件名。

  

最后,E:\aa  文件夹准备好。点击工具栏 全部清除 按钮,然后点击 绿三角,执行。

到文件夹下查看图片吧。

posted @ 2020-03-31 17:25  枫若雪  阅读(496)  评论(1编辑  收藏  举报