Windows下Ruby+Watir自动化测试的环境搭建及数据读取
Watir的使用环境搭建 1、watir环境工具安装包: 1) ruby186-26.exe下载地址:http://files.rubyforge.vm.bytemark.co.uk/rubyinstaller/ 2、firewatir环境工具安装包: 1)步骤1中的软件包 3、watir安装 4、安装firewatir 1)安装firefox和firebug,Jssh插件,安装方法:打开firefox浏览器,点击“文件”/“打开”,选择插件文件名,安装即可。 2)安装firewatir,使用命令行进入ruby安装的目录,输入命令:gem install firewatir-1.1.gem 5、测试firewatir是否安装成功? 使用命令行进入firewatir安装路径下(rubylibrubygems1.8gemsfirewatir-1.1),进入unittests文件夹,输入命令:ruby mozilla_all_tests.rb,如果可以正确执行程序,说明安装正确没有问题,到此可以开始自动化测试开发的旅程了。 6、在安装watir过程出现'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。 使用命令 gem install --local watir-1.5.2.gem 就安装成功了!
#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,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,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,where=nil) @connection = WIN32OLE.new('ADODB.Connection') @record_set = WIN32OLE.new('ADODB.Recordset') @ds_connector = ds_connector @sql_str = generate_sql(table_name,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,where=nil) dsc_arr = ds_connector.split("#",2) eval("@adp = #{dsc_arr[0]}.new dsc_arr[1],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地址、数据库名、用户名、密码等需要修改 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |