Windows 에서 Ruby+Watir 자동화 테스트 환경 구축 및 데이터 읽 기
1.watir 환경 도구 설치 패키지:
1)ruby 186-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)Firefox 2.0 다운로드 주소:http://www.hacker.cn/Get/gjrj/06102608545293311.shtml
3)fireforx 플러그 인:firbug 1.05,JSsh.Jssh 다운로드 주소:주소
4)Firewatir-1.1 다운로드 주소:http://rubyforge.org/frs/?group_id=104&release_id=28017
3.watir 설치
1)ruby 186-26.exe 설치;
2)gem 를 업그레이드 하고 gem 패 키 지 를 ruby 설치 디 렉 터 리 에 복사 하여 명령 행 에 명령 을 입력 합 니 다:gem install ruby gems-update 1.3.7.gem(gem 패키지 이름).알림:설치 후 ruby 디 렉 터 리 에 들 어 갑 니 다:lib\ruby\gems\\1.8\\gems\ruby gems-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)fireforx 와 firebug,Jssh 플러그 인 을 설치 합 니 다.설치 방법:fireforx 브 라 우 저 를 열 고"파일"/"열기"를 누 르 고 플러그 인 파일 이름 을 선택 하여 설치 하면 됩 니 다.
2)firewatir 를 설치 하고 명령 행 을 사용 하여 ruby 가 설치 한 디 렉 터 리 에 들 어가 명령 을 입력 하 십시오:gem install firewatir-1.1.gem
5.firewatir 설치 성공 여 부 를 테스트 합 니까?
명령 행 을 사용 하여 firewatir 설치 경로(\ruby\lib\ruby\\gems\1.8\\gems\\firewatir-1.1)에 들 어가 유 니 트 테스트 폴 더 에 들 어가 명령 을 입력 하 십시오:ruby mozillaall_tests.rb,프로그램 을 정확하게 실행 할 수 있다 면 설치 가 정확 하고 문제 가 없다 는 것 을 설명 하고 자동화 테스트 개발 의 여정 을 시작 할 수 있 습 니 다.
6.watir 를 설치 하 는 과정 에서'nmake'는 내부 또는 외부 명령 이 아니 라 실행 가능 한 프로그램 이나 일괄 처리 파일 도 아 닙 니 다.
사용 명령
gem install --local watir-1.5.2.gem
설치 에 성 공 했 습 니 다!각종 데이터 원본 의 테스트 매개 변수 화 데 이 터 를 읽 습 니 다.
자동화 테스트 에서 자주 사용 하 는 기술 은 바로 파라미터 화 이 고 파라미터 화 를 지원 하지 않 는 테스트 프레임 워 크 는 고통스럽다.QTP 자체 가 원래 있 지만 ruby 와 유사 한 watir,selenium 등 은 천연 적 으로 지원 되 지 않 습 니 다.이러한 프레임 워 크 는 가장 기본 적 인 자동화 구동 라 이브 러 리 만 제공 하고 구동 이외 의 집행 관리,데이터 관리 등 은 또 하나의 과제 이기 때 문 입 니 다.대부분의 selenium 과 watir 유사 프로젝트 에 사용 되 는 실행 프레임 워 크 는 유닛 테스트 의 프레임 워 크 이 고 천연 적 으로 도 파라미터 화 를 지원 하지 않 습 니 다.현 재 는 Junit 4 버 전 만 매개 변수 화 를 지원 하고 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 주소,데이터베이스 이름,사용자 이름,비밀번호 등 수정 이 필요 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby의 단일 메소드 및 단일 클래스 상세 정보단일 방법 Ruby는 단일 객체에만 적용되는 단일 객체 추가 방법을 단일 방법이라고 합니다. 또한 위에서 사용한 정의 방법 외에 Object#define_를 통해singleton_method 방법으로 단일 방법 정의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.