Watir测试框架介绍
发布时间:2021-06-06
发布时间:2021-06-06
Watir测试框架介绍 Watir测试框架介绍2008年08月11日 2008年08月11日
Watir环境配置 Watir环境配置安装ruby 安装rubyruby下载地址:http://www.rubyruby下载地址:/zh_CN/downloads/ 下载Windows一步安装版,默认安装,安装成功后可以运行命令查看版本:ruby 下载Windows一步安装版,默认安装,安装成功后可以运行命令查看版本:ruby –v
安装watir 安装watir1.运行命令先更新gem:gem update --system 1.运行命令先更新gem: --system 2.运行命令安装watir: gem install watir 2.运行命令安装watir:
WatirRecorder++(watir脚本录制工具 WatirRecorder++(watir脚本录制工具) 脚本录制工具)下载:/blog/content/binary/WatirRecorder_Setup_lite.msi 下载:/blog/content/binary/WatirRecorder_Setup_lite.msi
安装DBI 安装DBI下载地址: /frs/download.php/33960/dbi-0.2.0.zip /frs/download.php/33960/dbi安装步骤:1.将下载的DBI解压到C:\ 安装步骤:1.将下载的DBI解压到C:\dbi 2.分别在命令行中运行下面命令安装: 2.分别在命令行中运行下面命令安装: cd c:\dbi c:\ ruby setup.rb config --with=dbi,dbd_mysql --with=dbi,dbd_mysql ruby setup.rb setup ruby setup.rb install # as superuser
Eclipse 环境搭建JDK安装及配置 JDK安装及配置: 安装及配置: (1)默认安装JDK,路径如:C:\jdk1.5.0_11 )默认安装JDK,路径如:C:\ JDK下载地址/javase/downloads/index.jsp JDK下载地址/javase/downloads/index.jsp (2)配置环境变量: (2)配置环境变量: 打开"我的电脑"右键属性--"高级"--"环境变量" 打开"我的电脑"右键属性--"高级"--"环境变量"页面, 在系统变量里,添加变量JAVA_HOME,变量值:C:\ 在系统变量里,添加变量JAVA_HOME,变量值:C:\jdk1.5.0_11 在系统变量里,添加变量CLASSPATH,变量值:.;%JAVA_HOME%\ 在系统变量里,添加变量CLASSPATH,变量值:.;%JAVA_HOME%\lib 在系统变量里,在变量Path变量值前增加:%JAVA_HOME%\ 在系统变量里,在变量Path变量值前增加:%JAVA_HOME%\bin; Eclipse下载安装: Eclipse下载安装: 下载安装 下载地址: /downloads/ 安装方法:将下载的Eclipse解压到c:\ 安装方法:将下载的Eclipse解压到c:\eclipse RDT安装配置 RDT安装配置 : 下载地址:/project/showfiles.php?group_id=50233 下载地址:/project/showfiles.php?group_id=50233 安装方法:将RDT解压到eclipse目录:c:\ 安装方法:将RDT解压到eclipse目录:c:\eclipse 安装说明: /download.rdt.html 相关配置方法: /art/200605/26177.htm
Ruby 包管理工具(gem) 包管理工具(gem)gem介绍: gem介绍: 介绍gem是ruby
管理包的工具,是ruby安装后自带工具,在安装包时会经常用到该工具 gem是ruby管理包的工具,是ruby安装后自带工具,在安装包时会经常用到该工具
gem相关命令: gem相关命令: 相关命令显示gem的帮助:gem 显示gem的帮助:gem –h 或 gem –help 显示gem版本号:gem 显示gem版本号:gem –v 或 gem –version 运行build子命令构建gem包:gem 运行build子命令构建gem包:gem build package.gemspec 列出本地安装的gems: 列出本地安装的gems:gem list –local 列出远程安装的gems: 列出远程安装的gems:gem list –remote –d
Watir示例 Watir示例require 'watir' # 加载watir文件 加载watir文件 check_text = “watir测试框架” “watir测试框架” #定义变量 ie = Watir::IE.new # 打开一个IE浏览器 打开一个IE浏览器 ie.goto("") #打开google首页 打开google首页 ie.text_field(:name,"q").set(check_text) #输入搜索内容 sleep(1) ie.radio(:index, 3).set sleep(1) ie.button(:name,"btnG").click # 点击按钮"Google搜索" 点击按钮"Google搜索" if ie.contains_text("符合#{check_text}的查询结果") #判断页面是否包含相应文字 ie.contains_text("符合#{check_text}的查询结果") puts "搜索成功!" "搜索成功!" else puts "搜索失败!" "搜索失败!" end ie.close #关闭IE窗口 关闭IE窗口
Watir API介绍(一) API介绍(一)文本框: 文本框:<INPUT id="email" name="_fmu.u._0.e" value="" /> 方法1 ie.text_field(:id,'email').set("文本内容") 方法1: ie.text_field(:id,'email').set("文本内容") 方法2 方法2: ie.text_field(:name, 'email').set("文本内容") 'email').set("文本内容") 方法3 方法3: ie.text_field(:name,"email").clear
下拉框: 下拉框:<SELECT name="cert_no"> <OPTION value="身份证">身份证</OPTION> value="身份证">身份证</OPTION> </SELECT> 方法1 ie.select_list(:name,"cert_no").select("身份证") 方法1: ie.select_list(:name,"cert_no").select("身份证") 方法2 方法2: ie.select_list(:name,"cert_no").clearSelection
超链接: 超链接:<a href = "/">google</a> 方法1 方法1:ie.link(:text,"google").click 方法2 方法2:ie.link(:url,"/").click
复选框: 复选框:
Watir API介绍(二) API介绍(二)
<input type = "checkbox" name = "checkme" value = "1"> 方法1 方法1: ie.checkbox(:name,"checkme").set 方法2 方法2: ie.checkbox(:name,"checkme").clear 方法3 方法3: values = ie.checkbox(:name,"checkme").value <input type = "checkbox" name = "checkme" value = "2"> #多个同名的复选框处理 方法1 方法1: ie.checkbox(:name,"checkme","2").set 方法2 方法2: ie.checkbox(:name,"checkme","2").clear
单选框: 单选框:<input type = "radio" name = "clickme" id = "1"> 方法1 方法1: ie.radio(:name, "clickme").set 方法2 方法2: ie.radio(:name, "clickme").clear
一般按钮: 一
般按钮:<input type = "button" name = "clickme" value = "Click Me"> 方法1 方法1: ie.button(:value, "Click Me").click 方法2 方法2: ie.button(:name,"clickme").click
Watir API介绍(三) API介绍(三)submit按钮: submit按钮: 按钮<form action = "submit" name = "submitform" method = "post"> <input type = "submit" value = "Submit"></input> </form> 方法: ie.button(:value."Submit").click
图片按钮: 图片按钮:<form action ="submit" name = "doitform" method = "post"> <input type = "image" src = "images/doit.gif" name = "doit"> </form> 方法:ie.button(:name, 方法:ie.button(:name, "doit").click
Form中无按钮: Form中无按钮: 中无按钮<form action = "login" name = "loginform" method = "get"> <input name = "username" type = "text"></input> </form> 方法1 方法1:ie.form(:name,"loginform").submit 方法2 方法2:ie.form(:action,"login").submit
Watir API介绍(四) API介绍(四)获取隐含对象值: 获取隐含对象值: <INPUT type=hidden value=您的Email name=field1> value=您的Email 方法:values 方法:values = ie.hidden(:name,'field1').value 获取窗口对象: 获取窗口对象: 方法1 方法1: ie2 = Watir::IE.attach(:url, ‘ /’) #根据URL获取 #根据URL获取 方法2 方法2: ie3 = Watir::IE.attach(:title, ‘ Google’) #根据窗口标题获取 #根据窗口标题获取 方法3 方法3: ie4 = Watir::IE.attach(:title, //) #正则表达式匹配获取 #正则表达式匹配获取 URL编码: URL编码: 编码 require 'cgi‘ string = "URL编码" "URL编码" string = CGI::escape(string) CGI::escape(string) puts string # 转换结果: URL%B1%E0%C2%EB URL解码: URL解码: 解码 require 'cgi' string = "URL%BD%E2%C2%EB" string = CGI::unescape(string) puts string # 转换结果:URL解码 转换结果:URL解码
oracle数据库操作--插入数据 oracle数据库操作--插入数据require 'DBI' require 'jcode' $KCODE = ‘s’ #设置汉字代码为EUC,windows环境为"s",linux环境为"e" 设置汉字代码为EUC,windows环境为"s",linux环境为"e" #数据库变量 db_host = 'DBI:OCI8:TEST95' db_user = 'adm_zhifb' db_psw = 'ali88' dbh = DBI.connect(db_host, db_user, db_psw) #连接数据库 #插入数据 insert_sql = "insert into table values('1','2')" begin rs = dbh.prepare(insert_sql) rs.execute #执行SQL 执行SQL mit #提交数据 rs.finish rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message: #{e.errstr}" ensure dbh.disconnect if dbh end
oracle数据库操作— oracle数据库操作—查询数据require ‘DBI’ #加载DBI文件 加载DBI文件 require 'jcode' $KCODE = ‘s' #设置汉字代码为EUC,windows环境为"s",linux环境为"e" 设置汉字代码为EUC,windows环境为"s",linux环境为"e" #数据库变量 db_host = 'DBI:OCI8:TEST95' db_user = 'adm_zhifb' db_psw = 'ali88' select_sql = "select value1,value2 from table" begin rs =
dbh.prepare(select_sql) rs.execute #执行查询 value_rows = rs.fetch_all #获取表数据 column_names_rows = rs.column_names #获取表列名 DBI::Utils::TableFormatter.ascii(column_names_rows,value_rows) #以表格的格式输出 DBI::Utils::XMLFormatter.table(value_rows) #以XML的格式输出 XML的格式输出 rs.finish rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message: #{e.errstr}" ensure dbh.disconnect if dbh end
oracle数据库操作— oracle数据库操作—删除查据require 'DBI' require 'jcode' $KCODE = 'e' #设置汉字代码为EUC,windows环境为"s",linux环境为"e" 设置汉字代码为EUC,windows环境为"s",linux环境为"e" #数据库变量 db_host = 'DBI:OCI8:TEST95' db_user = 'adm_zhifb' db_psw = 'ali88' dbh = DBI.connect(db_host, db_user, db_psw) #连接数据库 #删除数据 delete_sql = "delete from table where value1 =? and value2=?" begin rs = dbh.prepare(delete_sql) rs.execute('1','2') mit rs.finish rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message: #{e.errstr}" ensure dbh.disconnect if dbh end
调用Javascript脚本 调用Javascript脚本require 'watir' #定义调用JS的类方法 定义调用JS的类方法 class Watir::IE def run_script(js) ie.Document.parentWindow.execScript(js) end end ie = Watir::IE.new ie.goto("") #调用类方法 js_string = "alert(\"测试调用Javascript!\");" "alert(\ 测试调用Javascript! ie.run_script(js_string)
文件操作class CreateFile #定义类,类名首字母需大写 def rows_to_file(rows) #定义类方法 @@data_rows = rows #定义类变量,无需申明变量类型 @@content = '' @@filename = "c:\\filename.txt" #定义文件路径 "c:\ @@data_rows.each do |x| #遍历数组 @@content = @@content + x.to_s + ‘-‘ ‘#to_s:转换为字符串 #to_s:转换为字符串 end #写文件,参数说明:"a+" 在原有内容后追加数据 "w" :先将文件清空,再写入 写文件,参数说明:"a+" File.open( @@filename, "a+" ) do |file| file.puts @@content end end end rows = ['a','b','c'] CreateFile = CreateFile.new CreateFile.rows_to_file(rows)
Excel操作 Excel操作加载win32ole文件: 加载win32ole文件: require ‘win32ole’ win32ole’ 文件 创建应用对象: 创建应用对象: 新建Excel文件 新建Excel文件: 文件: excel = WIN32OLE.new("Excel.Application") excel.workbooks.Add #默认Excel文件 默认Excel文件
excel.workbooks.Add 1 #单工作表 创建Excel文件对象 创建Excel文件对象:wb 文件对象: 创建工作表对象: 创建工作表对象: 打开Excel文件 打开Excel文件: 文件: 取单元格值: 取单元格值: 单元格赋值: 单元格赋值: 保存Excel文件 保存Excel文件: 文件: 退出Excel: 退出Excel: = excel.ActiveWorkBook
sheet = web.ActiveSheet excel.workbook.open "文件路径名.xls" "文件路径名.xls" str = sheet.Cell[1][2].Value
sheet.Cells[3][6].va
lue = "test" wb.Save 或 wb.SaveAs "文件名" "文件名" excel.quit
Q&A?