黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > jmeter使用Beanshell處理驗(yàn)證碼

jmeter使用Beanshell處理驗(yàn)證碼

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2022-06-02 19:06:00 1654167960

  在接口測試、自動(dòng)化測試工作中,你一定會(huì)遇到驗(yàn)證碼處理的問題,很多初入測試、甚至測試?yán)哮B的處理方式都比較粗暴,要么找開發(fā)設(shè)置為萬能驗(yàn)證碼或者直接測試環(huán)境取消驗(yàn)證碼,說實(shí)話這種方式也非常實(shí)用,畢竟驗(yàn)證碼不是我們項(xiàng)目核心,手工測試一下就可以了,何必自動(dòng)化實(shí)現(xiàn)呢?

  今天給大家介紹一種Jmeter接口測試時(shí)對(duì)驗(yàn)證碼自動(dòng)識(shí)別的方式,先說在前頭,該方式對(duì)于背景干擾的圖片識(shí)別率還是有點(diǎn)低,但是對(duì)于純色底紋的識(shí)別率基本100%,請擇情使用。

  主要思路步驟如下:

  1、通過接口獲取驗(yàn)證碼

  2、驗(yàn)證碼處理腳本

  3、jmeter中配置驗(yàn)證碼處理腳本

  4、識(shí)別驗(yàn)證碼

  一、驗(yàn)證碼接口案例介紹

  在我們項(xiàng)目的登錄模塊中就帶有驗(yàn)證碼,我們就以這個(gè)接口為例講解。

圖片100

  我們可以在jmeter中實(shí)現(xiàn)這個(gè)接口,步驟如下。

  1、啟動(dòng)jemter

  2、創(chuàng)建線程組->http采樣器、debug采樣器,http采樣器設(shè)置如下

圖片101

  3、添加監(jiān)聽器->HTTP采樣器->保存結(jié)果到文件,配置如下,幾個(gè)選項(xiàng)都不勾選,默認(rèn)文件名為1.png

圖片102

  4、添加監(jiān)聽器->查看結(jié)果樹,保存、運(yùn)行腳本。

圖片103

  二、驗(yàn)證碼處理代碼

  現(xiàn)在驗(yàn)證碼文件已經(jīng)保存在本地了,需要將其讀取為base64加密格式,然后才能進(jìn)行后續(xù)的驗(yàn)證碼識(shí)別。

  下面我們將使用java,編寫圖片文件處理的文件,實(shí)現(xiàn)將base64加密的數(shù)據(jù)轉(zhuǎn)文圖片文件,也可以將圖片文件處理為base64加密文件,并將其導(dǎo)出為jar包備用。

  1、eclipse創(chuàng)建java工程

  2、導(dǎo)入sun.misc.BASE64Decoder.jar包,需自行下載

  創(chuàng)建文件夾lib

  復(fù)制sun.misc.BASE64Decoder.jar包到lib文件夾下

  選擇sun.misc.BASE64Decoder.jar,右鍵build path->add build path

  3、創(chuàng)建包、java文件,目錄結(jié)構(gòu)如下

圖片114

  4、java文件ToImage內(nèi)容如下,如果文件名或者類名不同,需要調(diào)試代碼,注意事項(xiàng)。

  聲明類一定為public,否則jmeter調(diào)用會(huì)出現(xiàn)找不到類的問題

  main方法為調(diào)試代碼,導(dǎo)出包之前可以注釋掉

  package com.qf;

  import java.io.FileInputStream;

  import java.io.FileNotFoundException;

  import java.io.FileOutputStream;

  import java.io.IOException;

  import java.io.InputStream;

  import java.io.OutputStream;

  import Decoder.BASE64Decoder;

  import Decoder.BASE64Encoder;

  public class ToImage {

  public static void main(String[] args){

  // String base64Str = "iVBORw0KGgoAAAANSUhEUgAAAKAAAAA8CAIAAABuCSZCAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAOq0lEQ·········

  // boolean b=false;

  // try {

  // b = GenerateImage(base64Str, "D:/gg.jpg");

  // } catch (IOException e) {

  // // TODO Auto-generated catch block

  // e.printStackTrace();

  // }

  // System.out.println(b);

  String aa = GetImageStr("E:/3-Learning/Deep-Learning-master/imageVerydow/1.png");

  System.out.println(aa);

  }

  /**

  * 圖片轉(zhuǎn)化成base64字符串

  * @param imgPath

  * @return

  */

  public static String GetImageStr(String imgPath) {// 將圖片文件轉(zhuǎn)化為字節(jié)數(shù)組字符串,并對(duì)其進(jìn)行Base64編碼處理

  String imgFile = imgPath;// 待處理的圖片

  InputStream in = null;

  byte[] data = null;

  String encode = null; // 返回Base64編碼過的字節(jié)數(shù)組字符串

  // 對(duì)字節(jié)數(shù)組Base64編碼

  BASE64Encoder encoder = new BASE64Encoder();

  try {

  // 讀取圖片字節(jié)數(shù)組

  in = new FileInputStream(imgFile);

  data = new byte[in.available()];

  in.read(data);

  encode = encoder.encode(data);

  //加密代碼后的字符串會(huì)自動(dòng)化換行,通過該句取消掉換行

  encode = encode.replaceAll("\r\n", "");

  } catch (IOException e) {

  e.printStackTrace();

  } finally {

  try {

  in.close();

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }

  return encode;

  }

  /**

  * base64字符串轉(zhuǎn)化成圖片

  *

  * @param imgData

  *            圖片編碼

  * @param imgFilePath,存放到本地路徑

  * @return

  * @throws IOException

  */

  @SuppressWarnings("finally")

  public static boolean GenerateImage(String imgData, String imgFilePath) throws IOException { // 對(duì)字節(jié)數(shù)組字符串進(jìn)行Base64解碼并生成圖片

  if (imgData == null) // 圖像數(shù)據(jù)為空

  return false;

  BASE64Decoder decoder = new BASE64Decoder();

  OutputStream out = null;

  try {

  out = new FileOutputStream(imgFilePath);

  // Base64解碼

  byte[] b = decoder.decodeBuffer(imgData);

  for (int i = 0; i < b.length; ++i) {

  if (b[i] < 0) {// 調(diào)整異常數(shù)據(jù)

  b[i] += 256;

  }

  }

  out.write(b);

  } catch (FileNotFoundException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } finally {

  out.flush();

  out.close();

  return true;

  }

  }

  }

  5、導(dǎo)出jar包

  代碼調(diào)試通過后,導(dǎo)出該工程jar包備用(jmeter中Beanshell處理器可以導(dǎo)入jar包并使用其功能)。

  選中工程名->export->jar file->配置導(dǎo)出的jar選項(xiàng),如圖設(shè)置,點(diǎn)擊Finish完成導(dǎo)出。

  至此,我們就擁有了一個(gè)ToImage.jar的文件,該文件提供兩個(gè)方法:

  GetImageStr:圖片轉(zhuǎn)化成base64字符串

  GenerateImage:base64字符串轉(zhuǎn)化成圖片

圖片104

  三、Jmeter實(shí)現(xiàn)驗(yàn)證碼識(shí)別

  實(shí)現(xiàn)驗(yàn)證碼識(shí)別,需要借助OCR(Optical Character Recognition,光學(xué)字符識(shí)別)插件,我們可以通過gitee下載一個(gè),當(dāng)然可以自己實(shí)現(xiàn)識(shí)別代碼。

  我們采用gitee上的開源的jmeter-captcha識(shí)別碼插件,可以下載其jar包直接使用,也可以下載源碼包二次開發(fā)。作者建議二次開發(fā),因?yàn)椴煌?yàn)證碼的底紋干擾不同,處理方式也不太一樣,如果是打包的jar包,識(shí)別率就會(huì)收到影響。

  本文采用jar包直接演示,如需要可以直接找作者索要,源碼見gitee。

  https://gitee.com/changpei12315/jmeter-captcha

  1、下載jmeter-captcha,并配置到到{JMEMTER_HOME}/lib/ext/下

  https://gitee.com/hyj-jmeter/jmeter-captcha/releases

圖片105

  2、下載tessdata語言包,為空默認(rèn)在{JMEMTER_HOME}/lib/tessdata下

  https://gitee.com/changpei12315/tessdata_fast

  將下載的tessdata_fast中的文件復(fù)制到tessdata中即可。

圖片106

  3、jmeter中測試計(jì)劃設(shè)置

  添加ToImage.jar包

  添加sun.misc.BASE64Decoder.jar包

  定義一個(gè)變量code,用于中轉(zhuǎn)存儲(chǔ)驗(yàn)證碼數(shù)據(jù)

圖片107

  4、jmeter采樣器后置處理設(shè)置

  線程組->后置處理器->Beanshell后置處理器,并設(shè)置如下:

  import com.qf.ToImage;

  //先將圖像文件讀入到此處,轉(zhuǎn)為base64

  String aaa = ToImage.GetImageStr("E:/1.png");

  System.out.println(aaa);

  //使用put方法將加密的圖片數(shù)據(jù)輸出到code變量(測試計(jì)劃中定義)中

  vars.put("code",aaa);

圖片108

  線程組->后置處理器->驗(yàn)證碼識(shí)別插件(完成前兩步才有),配置如下:

圖片109

 

  5、運(yùn)行查看結(jié)果

  其實(shí)本案例中的驗(yàn)證碼的識(shí)別率很低,需要調(diào)整ocr對(duì)圖片的灰度、干擾線等代碼優(yōu)化。

圖片110

  四、其他簡單驗(yàn)證碼的識(shí)別

  如果驗(yàn)證碼圖片比較簡單,沒有復(fù)雜底紋和干擾的話,識(shí)別率還是挺高的。

  1、白底純數(shù)字的驗(yàn)證碼識(shí)別

  驗(yàn)證碼識(shí)別插件設(shè)置語言為:eng

  Beanshell后置處理器設(shè)置讀入文件為:E:/sz.png

圖片112

  3、白底純字母的驗(yàn)證碼識(shí)別

  驗(yàn)證碼識(shí)別插件設(shè)置語言為:eng

  Beanshell后置處理器設(shè)置讀入文件為:E:/zm.png

圖片113

  4、白底純漢字的驗(yàn)證碼識(shí)別

  驗(yàn)證碼識(shí)別插件設(shè)置語言為:chi_sim

  Beanshell后置處理器設(shè)置讀入文件為:E:/hz.png 

  五、總結(jié)

  后續(xù)持續(xù)更新一篇對(duì)干擾優(yōu)化的文章,可以替換掉現(xiàn)有的jmeter-captcha.jar包。

  以及一篇深度學(xué)習(xí)的文章,通過學(xué)習(xí)算法訓(xùn)練學(xué)習(xí),可以有效提升識(shí)別準(zhǔn)確率。歡迎大家的持續(xù)關(guān)注和點(diǎn)贊。

  更多關(guān)于軟件測試培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話可以點(diǎn)擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
抖音小店照片要求尺寸多大

在抖音平臺(tái)開設(shè)小店已經(jīng)成為了越來越多人的選擇,相信大家已經(jīng)在各大社交平臺(tái)上看到有不少小店的推廣。在抖音上,照片是展示產(chǎn)品的重要手段,因...詳情>>

2023-10-08 16:14:25
抖音招商團(tuán)長托管服務(wù)費(fèi)怎么退回來

抖音招商團(tuán)長托管服務(wù)是抖音為有意愿創(chuàng)作內(nèi)容并帶動(dòng)其他創(chuàng)作者成為團(tuán)隊(duì)成員的用戶提供的一種服務(wù)。通過該服務(wù),招商團(tuán)長可以自主組建團(tuán)隊(duì)并得到...詳情>>

2023-10-08 16:08:53
抖音小店怎么做代銷

抖音已經(jīng)成為了一個(gè)非常受歡迎的短視頻應(yīng)用程序,在其中許多用戶都精心打造了自己的小店,用于銷售各種各樣的商品,獲取額外的收入。然而,要想...詳情>>

2023-10-08 15:28:41
怎樣開抖音小店帶貨賺錢

隨著直播帶貨的火熱,越來越多的人開始嘗試通過抖音小店來開展帶貨業(yè)務(wù)。抖音小店是抖音直播帶貨的配套,可以讓用戶在購買直播中產(chǎn)品時(shí)就實(shí)現(xiàn)購...詳情>>

2023-10-08 15:06:36
能不能幫我打開抖音小店店鋪呢怎么弄

抖音小店是近年來非常火爆的一個(gè)網(wǎng)絡(luò)業(yè)務(wù),也是提供了很多商業(yè)機(jī)會(huì)的平臺(tái)。對(duì)于一個(gè)創(chuàng)業(yè)者而言,開設(shè)抖音小店是一個(gè)不錯(cuò)的選擇。但是,許多小店...詳情>>

2023-10-08 15:01:21
精品视频一区二区三区免费| 精品国产亚洲一区二区三区| 午夜精品国产自在现线拍| 九九精品久久| 精品视频在线看| 亚洲天堂免费| 999久久狠狠免费精品| 亚洲第一页乱| 精品国产一区二区三区久 | 欧美一级视频免费| 国产不卡福利| 国产精品1024永久免费视频| 一级女性全黄生活片免费| 黄色福利| 国产不卡福利| 色综合久久天天综合绕观看| 欧美国产日韩在线| 韩国三级视频在线观看| 九九久久99| 99久久精品费精品国产一区二区| 青青久在线视频| 超级乱淫黄漫画免费| 欧美国产日韩精品| 精品国产亚一区二区三区| 欧美激情一区二区三区中文字幕| 999久久狠狠免费精品| 成人a大片高清在线观看| 九九精品在线| 欧美a级片免费看| 在线观看成人网 | 天天做日日爱| 国产一区二区精品久久| 欧美a免费| 美女被草网站| 精品视频一区二区三区| 色综合久久久久综合体桃花网| 国产激情一区二区三区| 国产麻豆精品| 日韩免费在线视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 高清一级毛片一本到免费观看| 四虎精品在线观看| 青青青草影院| 亚洲天堂免费| 日本伦理片网站| 黄色福利片| 国产亚洲男人的天堂在线观看| 毛片高清| 日韩av片免费播放| 韩国三级视频网站| 久久久成人影院| 国产高清在线精品一区二区| 精品国产一区二区三区久久久蜜臀| 国产国语在线播放视频| 国产成人精品综合久久久| 色综合久久手机在线| 精品视频在线观看免费| 你懂的日韩| 欧美一级视频免费观看| 国产伦久视频免费观看 视频| 日日夜人人澡人人澡人人看免| 成人免费网站视频ww| 国产一区二区精品在线观看| 青青久在线视频| 欧美日本免费| 成人影视在线播放| 国产亚洲男人的天堂在线观看| 国产一区二区精品久久| 久久久成人影院| 午夜精品国产自在现线拍| 国产网站免费| 日韩av东京社区男人的天堂| 精品国产香蕉伊思人在线又爽又黄| 精品视频在线观看一区二区| 欧美另类videosbestsex久久| 国产不卡高清在线观看视频| 成人免费观看网欧美片| 日韩在线观看免费| 久久久久久久网| 日韩免费片| 香蕉视频久久| 成人免费观看男女羞羞视频| 成人影院一区二区三区| 亚洲 欧美 91| 黄视频网站在线看| 四虎论坛| 国产a毛片| 精品视频在线观看免费| 九九免费精品视频| 日韩在线观看视频网站| 毛片高清| 青青久久网| 国产精品123| 日韩中文字幕在线播放| 欧美激情中文字幕一区二区| 国产网站麻豆精品视频| 国产91精品一区| 999久久66久6只有精品| 午夜激情视频在线播放| 精品视频一区二区三区| 日本免费乱人伦在线观看| 国产伦精品一区二区三区在线观看| 日韩中文字幕在线观看视频| 久久成人亚洲| 亚洲精品久久久中文字| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久国产精品只做精品| 黄视频网站在线免费观看| 欧美爱色| 日本特黄特黄aaaaa大片| 欧美激情在线精品video| 精品视频在线观看一区二区三区| 成人免费观看的视频黄页| 一本高清在线| 美女被草网站| 亚洲天堂免费| 黄视频网站在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产网站免费视频| 欧美a级片免费看| 欧美a级大片| 黄色短视频网站| 一级女性全黄生活片免费| 美女免费精品视频在线观看| 韩国毛片| 精品国产一区二区三区久久久狼| 九九热国产视频| 黄色福利片| 国产精品自拍亚洲| 日韩中文字幕在线播放| 精品视频一区二区三区| 91麻豆精品国产高清在线| 韩国毛片基地| 久久久久久久免费视频| 久久精品成人一区二区三区| 色综合久久手机在线| 青青久久精品| 亚飞与亚基在线观看| 成人免费一级纶理片| 精品毛片视频| 黄视频网站在线看| 91麻豆精品国产片在线观看| 亚洲天堂在线播放| 99久久视频| 尤物视频网站在线| 日本伦理片网站| 黄视频网站在线看| 国产精品123| 精品视频在线观看一区二区| 国产原创中文字幕| 高清一级做a爱过程不卡视频| 青青久久精品| 可以免费看污视频的网站| 精品视频一区二区三区免费| 久久99中文字幕久久| 四虎影视库| 国产高清视频免费| 毛片成人永久免费视频| 一级毛片视频免费| 日韩在线观看视频网站| 91麻豆精品国产高清在线| 天堂网中文字幕| 国产伦精品一区三区视频| 日韩在线观看免费完整版视频| 夜夜操天天爽| 亚洲精品中文一区不卡| 国产伦理精品| 国产亚洲男人的天堂在线观看| 午夜在线亚洲| 成人免费观看的视频黄页| 亚洲www美色| 青青久久网| 午夜家庭影院| 欧美1区| 中文字幕一区二区三区 精品| 国产激情一区二区三区| 99热热久久| 精品视频在线观看一区二区三区| 国产麻豆精品| 99热精品一区| 精品国产一区二区三区久久久蜜臀| 成人影视在线观看| 午夜在线影院| 99久久精品费精品国产一区二区| 亚洲第一色在线| 一级女性全黄久久生活片| 久久精品人人做人人爽97| 日韩一级精品视频在线观看| 一级女性全黄久久生活片| 国产高清视频免费| 可以免费看毛片的网站| 成人免费福利片在线观看| 国产高清在线精品一区二区| 欧美另类videosbestsex高清| 精品久久久久久综合网| 黄色短视频网站| 日韩在线观看免费| 一级女人毛片人一女人| 国产一区二区精品在线观看| 成人高清免费|