Windows 에서 Ruby+Watir 자동화 테스트 환경 구축 및 데이터 읽 기

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 주소,데이터베이스 이름,사용자 이름,비밀번호 등 수정 이 필요 합 니 다.

좋은 웹페이지 즐겨찾기