2017-12-18 17 views
0

찾고 찾고있어 답변을 찾을 수 없습니다. 내 테스트 데이터로 java .properties 파일을 사용한다. .properties 파일을 반복하고 특정 키의 맵을 만드는 방법이 필요합니다. 이 파일에있는 다른 호텔을 고를 수 있습니다,하지만 난 단지 위의 원하는 :특정 키를 사용하여 java.properties 파일에서 맵로드

emulator.Android.driver.URL = https://emulator.com:443/wd/hub 
emulator.Android.driver.appiumVersion = 1.7.1 
emulator.Android.driver.deviceOrientation = portrait 
emulator.Android.driver.browserName = "" 
emulator.Android.driver.app = myApp.apk 
emulator.Android.driver.platformName = Android 
emulator.Android.driver.platformVersion = 6.0 
emulator.Android.driver.name = sSuiteName 
emulator.Android.driver.deviceName = Android Emulator 
emulator.Android.driver.appPackage=com.app.android.debug 
emulator.Android.driver.appActivity=com.app.android.LaunchActivity 
emulator.iOS.driver.URL = https://emulator.com:443/wd/hub 
emulator.iOS.driver.appiumVersion = 1.7.1 
emulator.iOS.driver.deviceOrientation = portrait 
emulator.iOS.driver.browserName = "" 
emulator.iOS.driver.app = myApp.zip 
emulator.iOS.driver.platformName = iOS 
emulator.iOS.driver.platformVersion = 10.2 
emulator.iOS.driver.deviceName = iPhone Simulator 
emulator.iOS.driver.bundleId=com.qa 
live.Android.driver.URL = https://live.com/wd/hub 
live.Android.driver.apiKey = myKey 
live.Android.driver.appiumVersion = 1.7.1 
live.Android.driver.deviceOrientation = portrait 
live.Android.driver.browserName = "" 
live.Android.driver.app = myApp.apk 
live.Android.driver.platformName = Android 
live.Android.driver.platformVersion = 6.0 
live.Android.driver.appPackage=com.app.android.debug 
live.Android.driver.appActivity=com.app.android.LaunchActivity 
live.iOS.driver.URL = https://live.com/wd/hub 
live.iOS.driver.apiKey = myKey 
live.iOS.driver.appiumVersion = 1.7.1 
live.iOS.driver.deviceOrientation = portrait 
live.iOS.driver.browserName = "" 
live.iOS.driver.app = myApp.zip 
live.iOS.driver.platformName = iOS 
live.iOS.driver.platformVersion = 10.2 
live.iOS.driver.name = sSuiteName 
live.iOS.driver.bundleId=com.qa 

참고 : 내가 원하는 .properties 파일의 섹션의 구조는 다음과 같다. 내 목표는 emulator.Android.driver와 같은 모든 속성을 추출하는 것입니다. * emulator.Android.driver를 제거하십시오. 그리고지도와 함께 바람을 쐬라. 예를 들어 iOS에서 실행되는 에뮬레이터의 속성을 추출한다고 가정 해 봅시다.

URL = https://emulator.com:443/wd/hub 
appiumVersion = 1.7.1 
deviceOrientation = portrait 
browserName = "" 
app = myApp.zip 
platformName = iOS 
platformVersion = 10.2 
deviceName = iPhone Simulator 
bundleId=com.qa 

다음 실행 내가 안드로이드 라이브 선택할 수 있습니다 및 포함 된지도 바람해야합니다 :

URL = https://live.com/wd/hub 
apiKey = myKey 
appiumVersion = 1.7.1 
deviceOrientation = portrait 
browserName = "" 
app = myApp.apk 
platformName = Android 
platformVersion = 6.0 
appPackage=com.app.android.debug 
appActivity=com.app.android.LaunchActivity 

사람이 올바른 방향으로 날 지점 수 있습니까 포함됩니다지도와 바람 것 ?

+1

지금까지 해보신 것은 무엇입니까? – Mureinik

+0

https://stackoverflow.com/questions/17209260/converting-java-util-properties-to-hashmapstring-string을 참조하십시오. –

+0

두 가지 접근 방법이 있습니다. (1) 모든 속성을 먼저 읽어 들인 다음 결과로 나오는'Map'을 반복하여, 필요한 속성을 새로운'Map'으로 복사하십시오. (2)'Map'을 구현하는 래퍼 클래스를 작성하고, 모든 속성을 저장하지만, 검색을 수행 할 때'emulator.Android.driver'를 추가합니다. –

답변

0

알아 냈습니다. 다음은 결과 코드입니다.

sSearchString = "emulator.Android.driver."; 
    mDriverProperties = new HashMap<String, String>(); 
    Set<String> sKeys = pTestProperties.stringPropertyNames(); 
    for (String sKey : sKeys) 
    { 
     if (sKey.startsWith(sSearchString)) 
     { 
      sKey = sKey.substring(sKey.lastIndexOf(".") + 1); 
      mDriverProperties.put(sKey, pTestProperties.getProperty(sSearchString + sKey)); 
     } 
    }