您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Watir
Watir Webdriver生成文件型log的實例
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2013/12/31 14:09:11 ] 推薦標簽:Watir log

我們想獲得很好的log日志,這需要我們動手去寫,這里有個生成文件log的實例:

首先我們有個主log生成器, logfactory.rb

require 'logger'

# default logger
class LoggerFactory
 
  # start logger
  def LoggerFactory.start_default_logger(fileNamePrefix)
   
    # time = Time.now.strftime("%m %d %Y %H %M %s") 
 time = Time.now.strftime("%Y%m%d%H%M%S")

    # logger = CoreLogger.new(File.join(File.dirname(__FILE__), "#{fileNamePrefix}_#{time}.txt") ,logs to keep, maxlogsize)
 logger = CoreLogger.new(File.join(File.expand_path(".") + "\logs\", "#{fileNamePrefix}_#{time}.txt") ,2, 1000000)
    return logger
  end 
end

class  CoreLogger < Logger
 
  # extend the logger, overide it
  def initialize(fileName, logsToKeep, maxLogSize)
    super(fileName , logsToKeep, maxLogSize)
    self.level = Logger::INFO   # set to INFO level
    self.datetime_format = "%d-%b-%Y %H:%M:%S"
    self.info("Logger starting...")         
  end
 
  #overloaded "log" from logger.rb to something more intuitive.
  def log(message)
    puts "log #{message} "         #optional. comment out if you don't want to see logging in the console
    info(message)                   #calls info in logger.rb -- would be good to use different logging levels
  end
end 

然后在我們的case中引入:

require 'logfactory'

可以進行使用了:

def login_action
# Navigate to target URL
$browser.goto(TEST_SITE)
$logger.log("Passed: Step " + $stepcounter.to_s() + ": Navigate to URL:" + TEST_SITE)
$stepcounter=$stepcounter + 1

# wait till the user name element show up
Watir::Wait.until {$browser.text.include? "USER NAME:"}
  
# enter user name
    $browser.text_field(:name, "UserName").set(LOGINID)
    $logger.log("Passed: Step " + $stepcounter.to_s() + ": Enter '" + LOGINID + "' in the User Name text field")
    $stepcounter=$stepcounter + 1
    # enter user password
    $browser.text_field(:name, "UserPassword").set(PASSWORD)
    $logger.log("Passed: Step " + $stepcounter.to_s() + ": Enter '" + PASSWORD + "' in the Password text field")
$stepcounter=$stepcounter + 1
    # click Login button
    $browser.button(:value, "Login").click
    $logger.log("Passed: Step " + $stepcounter.to_s() + ": Click the 'Login' button")
$stepcounter=$stepcounter + 1
# if the duplicate login session pop up show up
if $browser.button(:value, 'OK').exist? # Yes, pop up is here
$browser.button(:value, 'OK').click # Click OK button
$logger.log("Passed: Step " + $stepcounter.to_s() + ": click the 'OK' button")
$stepcounter=$stepcounter + 1
end

# check login sucessfully or not
# Watir::Wait.until {$browser.title.include?('Home')}
    $browser.div(:id, "content").wait_until_present

if $browser.div(:id, "content").text.include?"Home"
$logger.log("Passed: Step " + $stepcounter.to_s() + ": Login successfully")
$stepcounter=$stepcounter + 1
else
$logger.log("Failed: Step " + $stepcounter.to_s() + ": Login failed")
$stepcounter=$stepcounter + 1
end
 end
  
  def logout_action
 
 # click the logout link
   $browser.link(:text, "Log Out").click
   $logger.log("Passed: Step " + $stepcounter.to_s() + ": Click the 'Log Out' link")

      # close the browser
      $browser.close
  end

生成的結果如:
# Logfile created on 2012-11-21 16:17:52 +0800 by logger.rb/31641
I, [21-Nov-2012 16:17:52#5096]  INFO -- : Logger starting...
I, [21-Nov-2012 16:17:52#5096]  INFO -- :
I, [21-Nov-2012 16:17:54#5096]  INFO -- : ------------------------------------------
I, [21-Nov-2012 16:17:54#5096]  INFO -- : ## Beginning of test case 01            ##
I, [21-Nov-2012 16:17:54#5096]  INFO -- : ------------------------------------------
I, [21-Nov-2012 16:17:55#5096]  INFO -- : Passed: Step 1000: Navigate to URL:http://10.32.152.113:8080/
I, [21-Nov-2012 16:17:57#5096]  INFO -- : Passed: Step 1001: Enter 'test@gmail.com' in the User Name text field
I, [21-Nov-2012 16:17:58#5096]  INFO -- : Passed: Step 1002: Enter 'password123' in the Password text field
I, [21-Nov-2012 16:17:58#5096]  INFO -- : Passed: Step 1003: Click the 'Login' button
I, [21-Nov-2012 16:17:59#5096]  INFO -- : Passed: Step 1004: click the 'OK' button
I, [21-Nov-2012 16:18:00#5096]  INFO -- : Passed: Step 1005: Login successfully
I, [21-Nov-2012 16:18:00#5096]  INFO -- : ------------------------------------------
I, [21-Nov-2012 16:18:00#5096]  INFO -- : ## End of test case 01                  ##
I, [21-Nov-2012 16:18:00#5096]  INFO -- : ------------------------------------------

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