Windows下Ruby+Watir自动化测试的环境搭建及数据读取

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=104&release_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=104&release_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地址、数据库名、用户名、密码等需要修改

(0)

相关推荐

  • 在Docker中自动化部署Ruby on Rails的教程

    基本的Rails应用程序 现在让我们启动一个基本的Rails应用.为了更好的展示,我使用Ruby 2.2.0和Rails 4.1.1 在终端运行: $ rvm use 2.2.0 $ rails new && cd docker-test 创建一个基本的控制器: $ rails g controller welcome index --,然后编辑 routes.rb ,以便让该项目的根指向我们新创建的welcome#index方法: root 'welcome#index' 在终端运行 r

  • Windows下Ruby+Watir自动化测试的环境搭建及数据读取

    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=104&release_id=28016 3)rubygems-update-1.3.7.gem下载地址:http://rubyforge.org/frs/?group_

  • Windows下Ruby on Rails开发环境安装配置图文教程

    本文详细介绍如何在Windows配置Ruby on Rails 开发环境,希望对ROR初学者能有帮助. 一.下载并安装Ruby Windows下安装Ruby最好选择 RubyInstaller(一键安装包). 下载地址: http://rubyforge.org/frs/?group_id=167 . 我们这里下载目前较新的rubyinstaller-1.9.3-p0.exe 一键安装包.这个安装包除了包含ruby本身,还有许多有用的扩展(比如gems)和 帮助文档. 双击安装,安装过程出现如下

  • win10下VSCode+CMake+Clang+GCC环境搭建教程图解

    打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, 配置一下开发环境. 安装软件 CMake CMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程; 官网下载安装, 傻瓜式操作; 记得把安装目录下的bin文件添加到系统环境变量, 这个可以在安装的时候勾选, 勾选了就不用自己添加了; 检测是否安装

  • Mybatis开发环境搭建实现数据的增删改查功能

    config.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 拿到数据库

  • Ruby与Ruby on Rails框架环境搭建的简明教程

    安装Ruby与升级RubyGems 提示:在Ubuntu环境下安装过程中,如果提示权限问题,可以使用sudo make和sudo make install. 1.Ruby安装 wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz \ && tar -xzvf ruby-1.9.3-p125.tar.gz \ && cd ruby-1.9.3-p125 \ && ./configur

  • Windows下如何安装配置Redis环境

    下载redis:https://github.com/MicrosoftArchive/redis/releases(这里选择Redis-x64-3.0.504.zip) 一.单节点环境Redis临时服务 # 打开cmd,进入到刚才解压到的目录,启动临时服务:redis-server.exe redis.windows.conf (备注:通过这个命令,会创建Redis临时服务,不会在window Service列表出现Redis服务名称和状态,此窗口关闭,服务会自动关闭.) #打开另一个cmd窗

  • Windows下Python的Django框架环境部署及应用编写入门

    环境搭建 1.下载所需的软件包: (1)python安装包 (2)django安装包 以下2个包其实是安装python包管理工具,在后面安装django文档包模块时会用到,下载网站是pypi (1)setuptools.exe  (2)pip 2.安装所需的软件包: python安装包是exe,setuptools也是exe,所以直接双击安装即可,先安装 django.pip是python模块包:安装时先解压,而后进入目录后使用命令:python setup.py install 安装即可 3.

  • windows下配置php5.5开发环境及开发扩展

    网上的教程是比较多的,但是我发现在windows下的扩展开发比较少,而且大多都是php5.3版本以前的,今天我就给大家讲解一下php扩展开发,我就拿php5.5的版本来说明一下的了 windows环境(我个人的) 复制代码 代码如下: windows 8.1 企业版(mac os Boot Camp安装的) Visual Studio 2012 版本 msysgit  (http://msysgit.github.io/ 下载) php-sdk-binary-tools-20110915.zip

  • win10下ASP.NET Core部署环境搭建步骤

    随着ASP.NET Core 1.0 rtm的发布,网上有许多相关.net core 相关文章,今刚好有时间也在win10环境上搭建下 ASP.NET Core的部署环境,把过程记录下给大家. 1. 开发运行环境 1> Visual Studio 2015 Update 3* 2> .NET Core 1.0 for Visual Studio (包括asp.net core 模板,其中如果机器上没有.net core sdk会默认安装)地址https://go.microsoft.com/f

  • Windows下React Native的Android环境部署及布局示例

    搭建基础环境 JDK(必须,不解释) SDK(建议使用Android Studio,集成SDK以及模拟器) genymotion(如果是使用真机或者Android Studio自带的模拟器,可以选择不装) NVM(node版本控制器,需要node4.0以上版本) 以上配置不是必须,可自行选择适合自己的环境,部分安装过程可能会涉及到翻墙,需要配置代理 配置踩坑记录 genymotion 这里选择genymotion模拟器来讲解,也会提一下Android Studio自带的模拟器的一些注意点,使用真

随机推荐