婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Windows下Ruby+Watir自動化測試的環境搭建及數據讀取

Windows下Ruby+Watir自動化測試的環境搭建及數據讀取

熱門標簽:徐州網絡外呼系統哪個好 常德電銷平臺外呼系統軟件價格 百度地圖標注自定義圖片 白銀外呼paas系統 滴滴外呼系統 地圖標注賺錢項目注冊 電銷機器人廠商代理 高德地圖標注客服 湖州u友防封電銷卡

Watir的使用環境搭建

1、watir環境工具安裝包:

1) ruby186-26.exe下載地址:http://files.rubyforge.vm.bytemark.co.uk/rubyinstaller/
2) watir-1.5.2.gem下載地址:http://rubyforge.org/frs/?group_id=104release_id=28016
3)rubygems-update-1.3.7.gem下載地址:http://rubyforge.org/frs/?group_id=126

2、firewatir環境工具安裝包:

1)步驟1中的軟件包
2)Firefox2.0下載地址:http://www.hacker.cn/Get/gjrj/06102608545293311.shtml
3)firefox插件:firbug1.05,JSSh。Jssh下載地址:地址
4)Firewatir-1.1下載地址:http://rubyforge.org/frs/?group_id=104release_id=28017

3、watir安裝
1)安裝ruby186-26.exe;
2)升級gem,把gem包拷貝到ruby安裝目錄,在命令行輸入命令:gem install rubygems-update 1.3.7.gem(gem包名)。提醒:安裝完后進入ruby目錄:lib\ruby\gems\1.8\gems\rubygems-update-1.3.4,點擊這個文件夾中的文件:setup.rb,升級gem即可
3) 安裝watir包,把watir包拷貝到ruby安裝目錄,使用命令行進入ruby安裝的目錄,輸入命令:gem install watir-1.5.2.gem。
4)使用命令gem list查看是否安裝成功。

4、安裝firewatir

1)安裝firefox和firebug,Jssh插件,安裝方法:打開firefox瀏覽器,點擊“文件”/“打開”,選擇插件文件名,安裝即可。

2)安裝firewatir,使用命令行進入ruby安裝的目錄,輸入命令:gem install firewatir-1.1.gem

5、測試firewatir是否安裝成功?

使用命令行進入firewatir安裝路徑下(\ruby\lib\ruby\gems\1.8\gems\firewatir-1.1),進入unittests文件夾,輸入命令:ruby mozilla_all_tests.rb,如果可以正確執行程序,說明安裝正確沒有問題,到此可以開始自動化測試開發的旅程了。

6、在安裝watir過程出現'nmake' 不是內部或外部命令,也不是可運行的程序或批處理文件。

使用命令

gem install --local watir-1.5.2.gem 

就安裝成功了!


讀取各種數據源中的測試參數化數據
自動化測試時常用到的技術就是參數化,不支持參數化的測試框架是痛苦的。QTP自身本來就有,但是類似ruby的watir,以及selenium等都不是天然支持的,因為這些個框架只提供了最基礎的自動化驅動類庫,而驅動以外的執行管理、數據管理等又是一個課題。大部分的selenium和watir類似項目用的執行框架都是單元測試的框架,天然也不支持參數化。現在只有junit4版本支持參數化,以及testNG默認支持多種參數化。如果你開始項目的話可以優先考慮兼容這些類似框架的語言來做自動化。
watir雖然本身不支持參數化,ruby的單元測試也不支持,但是參數化也要做啊,沒辦法只能想想變通的法子。所以單獨寫了一個參數化的類,來補充一下參數化功能的不足。其工作方式是提供統一的測試數據源的數據讀取,在單元測試中調用這個接口,但是不指定具體的參數行,這個參數行在單獨的配置文件里配置。這個就可以統一的管理每次測試執行時所取用的參數行內容了。下面的代碼是用來取用各種數據源里面的測試數據的。

#encoding: utf-8 
require 'DBI' 
require 'odbc_utf8' 
 
def generate_sql(table, what=nil, where=nil) 
 what="*" unless what 
 where="1=1" unless where 
 "select %s from %s where %s" % [what, table, where] 
end 
 
def generate_hash(header, all_data) 
 t_arr = [] 
 all_data.each do | row | 
 t_hash = {} 
 for i in 0..header.size-1 do 
  t_hash[header[i]] = row[i] 
 end 
 t_arr  t_hash 
 end 
 t_arr 
end 
 
def select_hash_db(dsn,user,password,db,sql) 
 begin 
 dbh = DBI.connect(dsn, user, password) 
 dbh.do("use #{db}") 
 dbh.do("SET NAMES UTF8") if dsn.split(':')[1] == "Mysql" 
 sth = dbh.execute(sql) 
 arr = Array.new 
 sth.fetch_hash do | row | 
  arr  row 
 end 
 sth.finish 
 arr 
 rescue DBI::DatabaseError => e 
 puts "An error occurred" 
 puts "Error code: #{e.err}" 
 puts "Error message: #{e.errstr}" 
 ensure 
 dbh.disconnect if dbh 
 end 
end 
 
class Text_Adapter 
 
 def initialize(file_path, sep=" ", col_num=nil, row_num=nil) 
 
 end 
 
 def get_pars(row=nil) 
 
 end 
 
end 
 
class Mysql_Adapter 
 def initialize(ds_connector, table_name, what=nil, where=nil) 
 @sql_str = generate_sql(table_name, what, where) 
 @ds_connector = ds_connector 
 end 
 
 def get_pars(row=nil) 
 dsc_arr = @ds_connector.split("#") 
 all_data = select_hash_db(dsc_arr[0],dsc_arr[1],dsc_arr[2],dsc_arr[3],@sql_str) 
 if row.class==Fixnum 
  all_data[row] 
 else 
  all_data 
 end 
 end 
end 
 
class Excel_Adapter 
 
 def initialize(ds_connector, table_name, what=nil, where=nil) 
 @connection = WIN32OLE.new('ADODB.Connection') 
 @record_set = WIN32OLE.new('ADODB.Recordset') 
 @ds_connector = ds_connector 
 @sql_str = generate_sql(table_name, what, where) 
 end 
 
 def get_pars(row=nil) 
 t_arr = [] 
 @connection.Open(@ds_connector) 
 @record_set.Open(@sql_str, @connection) 
 @record_set.Fields.count.times do | i | 
  t_arr  @record_set.Fields.Item(i).name 
 end 
 all_data = @record_set.GetRows.transpose 
 all_data = generate_hash(t_arr, all_data) 
 if row.class==Fixnum 
  all_data[row] 
 else 
  all_data 
 end 
 end 
end 
 
 
class Parameter 
 def initialize(ds_connector, table_name, what=nil, where=nil) 
 dsc_arr = ds_connector.split("#", 2) 
 eval("@adp = #{dsc_arr[0]}.new dsc_arr[1], table_name, what, where") 
 end 
 
 def get_pars(row=nil) 
 @adp.get_pars(row) 
 end 
end 

調用方法:

par = Parameter.new(Ds_mysql_connector, 'demo') 
p par.get_pars(0) 

配置文件配置:

##鏈接excel中數據庫的串 
EXCEL_DSN = %{Excel_Adapter#Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties=Excel 5.0;} 
EXCEL_FILE = %{D:\\1.xlsx} 
##鏈接mysql的串 
Ds_mysql_connector = %{Mysql_Adapter#DBI:Mysql:shoppingcart:127.0.0.1#root#password#shoppingcart} 
##指定當次運行側事故參數的行號,從0開始 
PAR_ROW = 1 

相應的文件指向路徑、ip地址、數據庫名、用戶名、密碼等需要修改

您可能感興趣的文章:
  • 在Docker中自動化部署Ruby on Rails的教程

標簽:普洱 梧州 遼寧 公主嶺 荊門 張家界 永州 三沙

巨人網絡通訊聲明:本文標題《Windows下Ruby+Watir自動化測試的環境搭建及數據讀取》,本文關鍵詞  Windows,下,Ruby+Watir,自動化,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Windows下Ruby+Watir自動化測試的環境搭建及數據讀取》相關的同類信息!
  • 本頁收集關于Windows下Ruby+Watir自動化測試的環境搭建及數據讀取的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国内精品嫩模私拍在线| 高清av一区二区| 国产中文字幕一区| 欧美三区免费完整视频在线观看| 国产精品国产三级国产有无不卡| 激情深爱一区二区| 日韩免费在线观看| 久久综合九色欧美综合狠狠| 成人激情免费电影网址| 国产精品天天看| 国产成人自拍网| 国产精品免费久久| 色欧美片视频在线观看| 亚洲综合区在线| 欧美最猛性xxxxx直播| 亚洲综合一区二区精品导航| 欧美亚洲综合在线| 亚洲国产精品综合小说图片区| 精品一区二区在线观看| 免费在线看一区| 国产精品灌醉下药二区| 欧美色图在线观看| 久久疯狂做爰流白浆xx| 中文字幕第一区综合| 日本精品视频一区二区三区| 舔着乳尖日韩一区| 久久午夜国产精品| 91玉足脚交白嫩脚丫在线播放| 亚洲一卡二卡三卡四卡| 日韩视频在线观看一区二区| 国产麻豆成人传媒免费观看| 中文字幕亚洲精品在线观看| 中文字幕亚洲成人| 欧美一卡2卡三卡4卡5免费| 国产电影精品久久禁18| 伊人夜夜躁av伊人久久| 欧美一区二区三区小说| 成人午夜视频免费看| 悠悠色在线精品| 欧美变态tickling挠脚心| 91视频一区二区三区| 麻豆极品一区二区三区| 中文字幕在线观看一区| 日韩写真欧美这视频| 亚洲va国产天堂va久久en| 亚洲电影第三页| 在线观看中文字幕不卡| 国产成人av资源| 天堂成人国产精品一区| 亚洲视频在线观看三级| 日韩精品一区二区三区中文精品| 91论坛在线播放| 激情综合色播激情啊| 水野朝阳av一区二区三区| 亚洲三级在线免费| 色噜噜狠狠色综合欧洲selulu| 91女厕偷拍女厕偷拍高清| 国产一区二区网址| 午夜久久久影院| 亚洲视频中文字幕| 国产欧美在线观看一区| 精品区一区二区| 欧美日韩午夜精品| 欧洲日韩一区二区三区| 91免费版pro下载短视频| 国产亚洲欧洲997久久综合| 中文字幕视频一区| 中文字幕一区二区三区蜜月| 久久嫩草精品久久久久| 日韩欧美精品在线| 在线观看91精品国产麻豆| 色综合久久中文字幕| 成人app软件下载大全免费| 国产高清一区日本| 国产一区二区伦理片| 国产精品国产三级国产普通话蜜臀| 亚洲黄网站在线观看| 亚洲欧美一区二区久久| 亚洲视频在线一区二区| 亚洲欧美综合色| 日韩码欧中文字| 亚洲视频免费在线观看| 国产精品久久二区二区| 中文字幕一区二区三区四区不卡| 欧洲一区二区三区在线| 国产福利一区二区三区视频| 成人精品亚洲人成在线| av在线不卡免费看| av不卡免费在线观看| 91女人视频在线观看| 欧美在线一区二区| 在线播放91灌醉迷j高跟美女 | 欧美一区二区高清| 欧美一区二区免费视频| 亚洲精品在线观看网站| 久久久不卡网国产精品二区 | 日韩三区在线观看| ...xxx性欧美| 色综合中文字幕国产 | 国产九色sp调教91| 日本午夜一本久久久综合| 国产麻豆日韩欧美久久| 欧美日韩国产片| 亚洲精品在线电影| 国产精品美女久久久久久久久久久| 国产精品丝袜91| 一区二区三区欧美日韩| 五月婷婷激情综合| 国产福利一区二区三区视频在线 | 亚洲欧美日韩综合aⅴ视频| 亚洲激情在线播放| 美女视频黄a大片欧美| 亚洲一区二区欧美激情| 国产精品大尺度| 亚洲人成网站在线| 一区二区三区欧美久久| 韩国理伦片一区二区三区在线播放| 福利电影一区二区| 欧美福利一区二区| 久久久久综合网| 亚洲二区在线视频| 国产在线麻豆精品观看| 日韩激情中文字幕| 92国产精品观看| 日韩美女一区二区三区| 亚洲猫色日本管| 国产精品99久久久久久久vr| 欧美丰满嫩嫩电影| 久久人人爽人人爽| 免费成人在线观看| 91高清视频在线| 日本一区二区动态图| 调教+趴+乳夹+国产+精品| 国产suv精品一区二区6| 日韩欧美一区二区免费| 亚洲一区二区视频在线| 亚洲大片精品永久免费| 欧美国产日韩一二三区| 蜜桃精品视频在线| 在线亚洲免费视频| 国产精品免费免费| 福利一区福利二区| 久久人人97超碰com| 麻豆成人免费电影| 欧美日本在线一区| 亚洲精品乱码久久久久久| 欧美高清精品3d| 国产精品中文字幕日韩精品| 欧美一区国产二区| 视频一区国产视频| 欧美欧美午夜aⅴ在线观看| 亚洲乱码中文字幕综合| av网站一区二区三区| 欧美一区二区在线播放| 亚洲午夜国产一区99re久久| 亚洲精品视频免费观看| 97久久超碰国产精品| 亚洲欧美日韩在线不卡| 色综合久久天天| 欧美tickle裸体挠脚心vk| 欧美精品久久久久久久久老牛影院 | 欧美xxxx老人做受| 秋霞影院一区二区| 日韩欧美中文字幕制服| 久久国产视频网| 精品捆绑美女sm三区| 成人免费在线视频| 精品久久人人做人人爰| 国产成人亚洲综合a∨婷婷| 国产色一区二区| 成人avav影音| 亚洲综合色区另类av| 67194成人在线观看| 美女视频黄a大片欧美| 久久久亚洲精华液精华液精华液 | 国产精品亚洲а∨天堂免在线| 一本久久综合亚洲鲁鲁五月天| 国产在线精品一区在线观看麻豆| 一区二区理论电影在线观看| 欧美日韩在线精品一区二区三区激情| 亚洲丰满少妇videoshd| 日韩视频不卡中文| 国产麻豆精品久久一二三| 国产精品久久久久久久久果冻传媒 | 中文字幕+乱码+中文字幕一区| 高清国产午夜精品久久久久久| 国产精品第五页| 免费观看一级特黄欧美大片| 日本欧美一区二区三区乱码| 国产亚洲欧美在线| 91在线播放网址| 日本怡春院一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 色综合天天在线| 男男gaygay亚洲| 亚洲色图在线播放| 亚洲一区二区综合| 爽好久久久欧美精品| 蜜桃av一区二区在线观看| 国产精品国产三级国产普通话三级|