您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Watir
Watir webdriver一些常用的方法
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/1/2 16:07:02 ] 推薦標(biāo)簽:Watir 測(cè)試

我們喜歡在錯(cuò)誤發(fā)生的時(shí)候有更詳細(xì)的信息,但是不可能一直盯著跑,那在錯(cuò)誤發(fā)生時(shí),拍個(gè)screenshot,以便我們回頭來(lái)查看

time = Time.new
$b.driver.save_screenshot(File.dirname(__FILE__) + '/screenshots/' + @method_name + '_' + time.strftime('%Y%m%d_%H%M%S') + '.png');

實(shí)際上,我們可以用的assert語(yǔ)句還有 assert_true, assert_false和assert_equal,我們判斷返回值是否等于我們的期望值的時(shí)候,可以這么寫(xiě):

assert_equal 'Click Me', $b.text_field(:name, 'click1').value

我們?cè)诮M織case的時(shí)候,好引入模塊化,或者層次化,這樣能搞好的整理我們的代碼,例如:


def form_register_page
  $b.text_field(:name, 'organization_name').set('Magic/More Magic')
  $b.text_field(:name, 'question_38').set('As mentioned above, we make magic and more magic.')
  $b.text_field(:name, 'question_39').set('People who like magic and more magic, as opposed to less magic.')
  $b.link(:id=> 'show-more').click
  $b.text_field(:name, 'question_41').set('Im putting stuff into question 41')
  $b.text_field(:name, 'question_45').set('Im putting stuff into question 45')
end

對(duì)于一個(gè)form里的所有操作,我們都可以封裝到一個(gè)方法里,更加易讀。


對(duì)于time out,是個(gè)老大難問(wèn)題,我們好能夠多處理一下,這里是個(gè)很好的實(shí)例:
def load_link(waittime)
  begin
    Timeout::timeout(waittime)  do
    yield
  end
  rescue Timeout::Error => e
    puts "Page load timed out: #{e}"
    retry
  end
end
 
def browse_to_new_project
load_link(30){ $b.goto $site + "/designtourney/projects/new" }
end
 
def click_logo_design
load_link(30){ $b.link(:class, 'logo-design').click }
end

雖然默認(rèn)的log已經(jīng)足夠使用,但是可讀性不是很好,我們可以設(shè)置一個(gè)更加豐富的log文件來(lái)處理error:

module Test
  module Unit
    class TestSuite
      alias :old_run :run
      def run(result, &progress_block)
        old_run(result, &progress_block)
        File.open('errors.log', 'w'){|f|
          result.faults.each{|err|
            case err
              when Test::Unit::Error, Test::Unit::Failure
                f << err.test_name
                f << " "
              #not in log file
              when Test::Unit::Pending, Test::Unit::Notification, Test::Unit::Omission
              end
          }
        }
      end
    end
  end
end

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