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 文件夹准备好。点击工具栏 全部清除 按钮,然后点击 绿三角,执行。
到文件夹下查看图片吧。