Cucumber + Watir webdriver + Ruby 功能自动化测试

因为工作需要,这段时间在使用Cucumber + Watir webdriver + Ruby做网站的功能自动化测试。

第一步:搭建环境

A。安装ruby

下载ruby的exe安装文件并安装

下载ruby的devkit文件并安装

B。打开安装目录下的ruby》start command prompt with ruby窗口

安装cucumber

gem install cucumber

确定否安装成功cucumber -v,显示出cucumber的版本号时表明安装成功

安装Watir webdriver

gem install watir-webdriver

gem install rspec

第二步:构造cucumber运行目录

auto

|----features

|-----�N----Define_steps

|-----|-------------�N---defined_steps.rb(对feature文件进行解析,并调用对应的Actions.rb中的方法)

|-----�N----aaa.feature(测试用例,数量不限)

|----lib

|-----�N----Actions.rb(方法库)


详细介绍:

测试用例*.feature文件,用语言描述出测试用例的具体步骤,如

# language: zh-CN
功能: 登录管理
场景: 使用错误的用户名或密码登录会报错
假如进入51cto首页
并且点击登录链接
而且以错误帐号abc或错误密码111111登录
那么看到出错的文字信息

defined_steps.rb文件,对*.feature文件中的文字进行解析并调用Actions.rb文件中对应的方法,如

#encoding=UTF-8
#调用需要用到的库
begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
require 'cucumber/formatter/unicode'
require 'watir-webdriver'
require 'watir-webdriver-performance'
#调用Actions.rb文件
$:.unshift(File.dirname(__FILE__) + '/../../lib')
require 'Actions'
#执行用例前需要做的工作
Before do
#启动谷歌浏览器
$browser=Watir::Browser.new:chrome
#将Actions.rb方法为载入内存
$autotest=Actions.new
end
#执行测试用例后需要做的工作
After do
#关闭浏览器
$browser.close
end
# 假如,而且
Given /^进入51cto首页$/ do ||
$autotest.navigate_to()
end
Given /^以错误帐号(.*)或错误密码(.*)登录$/ do |username, password|
$autotest.invalid_login_action(username, password)
end
Given /^点击(.*)链接$/ do |link_name|
$autotest.click_link(link_name)
end
# 当
When /判断预期结果时/ do ||
sleep(3)
end
# 那么,并且
Then /^看到(.*)文字信息$/ do |information|
$autotest.display_text(information)
end


Actions.rb文件,测试用例执行时的方法库,如

#encoding=UTF-8
require 'watir-webdriver'
$LOAD_PATH << File.dirname(__FILE__)
class Actions
#跳转页面
def navigate_to()
#进入到社区首页
$browser.goto('http://www.51cto.com/')
#确认出现登录链接,来判断页面加载完毕
$browser.link(:text, '登录').wait_until_present
$browser.link(:text, '登录').flash
end
#错误用户名和密码登录
def invalid_login_action(username, password)
#判读用户名输入域显示
$browser.text_field(:name, 'email').wait_until_present
#输入用户名
$browser.text_field(:name, 'email').send_keys(username)
#判断用户密码域显示
$browser.text_field(:name, 'passwd').wait_until_present
#输入用户密码
$browser.text_field(:name, 'passwd').send_keys(password)
#判断登录键显示
$browser.button(:name, 'button').wait_until_present
#点击登录键
$browser.button(:name, 'button').click
end
#点击链接
def click_link(link_name)
$browser.link(:text, link_name).wait_until_present
$browser.link(:text, link_name).click
sleep(1)
end
#判断内容是否在页面上显示
def display_text(information)
$browser.span(:style, 'color:#FF0000;').wait_until_present
$browser.span(:style, 'color:#FF0000;').flash
end
end


第三步:执行测试用例

1、打开命令行窗口,进入到feature文件的上级目录

2、输入cucumber\tfeature\xxx.feature按下回车后,用例即开始执行

142337861.png

本文出自 “156881887” 博客,谢绝转载!

你可能感兴趣的:(Ruby,自动化测试,webdriver,watir)