Jmeter实现验证码登录
1.首先网上找各种解决方法,看看大神们都是怎样搞定的验证码登录的,别说,还真让我找到了,一看大神17年发布的,不禁感叹了下,大神就是大神啊!网上大神链接如下
https://www.cnblogs.com/qzsong0214/p/6907075.html
大家先看评论啊,大佬为了我们这群菜鸟也是用心良苦,生生没贴源码,苦了我们这些菜鸟,继续往下翻你会看到有人贴了源码,没错这个人就是我,最后还是要谢谢大佬提供的思路!
2.要准备的东西:Jmeter 大家应该都有,需要准备的其实就是下面这个东东,网址:https://sourceforge.net/projects/tess4j/,这个网址真的很不错,建议大家收藏!
3.完事具备后,接下来我们要把tess4j里的jar包全扔到Jmeter的lib文件夹下,其实只需要几个jar包就够,但是时间有限,技术有限就不去找具体要那几个,全扔过去省事,闭着眼睛扔就对了!
4.好了jar包搞定后,接下来就是录制个验证码的请求,然后编写BeanShell后置处理程序基本就可以了,听起来很简单,这其中的心酸,谁琢磨谁知道啊,誰让我们菜呢。。。。。!
源码如下,在大神截图的基础下,我精简了下,但是感觉就是很low
import java.io.*;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
String imgPath="D://yanzhengma.jpg";//将验证码保存到本地文件中
byte[] responseBody = prev.getResponseData();
File imageFile = new File(imgPath);
OutputStream out = new FileOutputStream(imageFile);
out.write(responseBody);
out.flush();
out.close();
File imageFile1 = new File(imgPath);//读取图片数字
ITesseract instance = new Tesseract();
instance.setDatapath("C:\\Users\\dfitc_lgx\\Desktop\\xiagao\\Tess4J\\tessdata"); //Tess4j 文件里的 tessdata 目录下
instance.setLanguage("eng");//英文库识别数字比较准确
content = instance.doOCR(imageFile1).replace("\n", "");
vars.put("aaaaaa",content);
5.最后一步,光说不练假把式,上实战截图,这里要加上Debug PostProcessor 查看验证码转换后的结果
看到结果的这一刻,我感觉我又行了。。。。。。。。不一定每次都成功,大家最好自己给登录请求加上断言!!!