您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Watir
Ruby+watir自動(dòng)化測(cè)試中實(shí)現(xiàn)識(shí)別驗(yàn)證碼圖片
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/22 10:54:28 ] 推薦標(biāo)簽:

   前幾天做了一個(gè)loadrunner結(jié)合tesseract-ocr來(lái)識(shí)別驗(yàn)證碼,盡管識(shí)別精度不是太高,甚至有些驗(yàn)證碼圖片不能被識(shí)別,但是使用循環(huán)的方法也是可以得到正確的驗(yàn)證碼的。性能測(cè)試中不建議使用這個(gè)方法,因?yàn)樯婕暗酱蟛l(fā)壓力的情況。但是在功能自動(dòng)化測(cè)試中我是贊成使用的,功能自動(dòng)化不像性能自動(dòng)化那樣對(duì)同一個(gè)操作(登錄)有大并發(fā)的出現(xiàn)。

  我們使用的自動(dòng)化框架是基于ruby+watir搭建的一套UI框架,通過(guò)識(shí)別UI中的對(duì)象來(lái)進(jìn)行功能自動(dòng)化測(cè)試,來(lái)達(dá)到檢測(cè)系統(tǒng)功能健康狀況。

  ruby中也有處理圖片的gem包,比如:rmagick、tesseract-ocr、rtesseract,以及ImageMagick-6.5.6-8-Q8-windows-dll.exe(需要安裝),我用的是ruby1.9.2平臺(tái)的版本,本人不才,配置了很久還是調(diào)試不出來(lái),require "rtesseract"里面的方法都對(duì)不上,貌似和ruby的版本有關(guān)系,后放棄這個(gè)方法,使用下面的方法來(lái)實(shí)現(xiàn)的,也不用install任何gem包,反而覺(jué)得更簡(jiǎn)單啦。

  1、安裝tesseract-ocr-setup-3.02.02.exe,自己在網(wǎng)上下載的

  2、配置一個(gè)批處理文件放到C盤的根目錄下,需要ruby調(diào)用這個(gè)批處理來(lái)執(zhí)行tesseract.exe

  批處理內(nèi)容:

  ?
c:
cd C:Program FilesTesseract-OCR
tesseract.exe c:CheckImg.jpg c:CheckCode -l

  3、ruby腳本,腳本步驟如下:

  a、首先獲取驗(yàn)證碼的圖片;

  b、調(diào)用C盤下的批處理文件;

  c、獲取txt中的驗(yàn)證碼;

  4、把這段腳本做成一個(gè)def,登錄的測(cè)試用例去調(diào)用這個(gè)def,返回一個(gè)CheckCode
復(fù)制代碼

  def CheckCode_ok(url,gifurl,CheckCode)

  #獲取驗(yàn)證碼圖片

  require 'net/http'

  Net::HTTP.start(url) do |http|

  resp = http.get(gifurl)

  File.open("C:\CheckImg.jpg", "wb") do |file|

  file.write(resp.body)

  file.close

  end

  end

  #執(zhí)行批處理文件

  system("c:\CheckBat.bat")

  #獲取txt中的驗(yàn)證碼

  if File.exists?("c:\CheckCode.txt") ==true

  File.open("c:\CheckCode.txt","r") do |line|

  CheckCode=line.readline

  line.close

  end

  end

  puts CheckCode

  return CheckCode

  end
復(fù)制代碼

  方法如下:

  CheckCode(url,gifurl,CheckCode)

  url:即存在驗(yàn)證碼圖片的url,如:https://memberprod.alipay.com/account/reg/index.htm

  gifurl:即驗(yàn)證碼圖片的url,如:https://omeo.alipay.com/service/checkcode?sessionID=fb70db3212e3c44bb5e909b51841adb5&r=0.48708463088160914

  CheckCode:ruturn這個(gè)驗(yàn)證碼供返回

  優(yōu)化了一下腳本:把方法中的傳參數(shù)精簡(jiǎn)到2個(gè)

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd