2017-12-18 13 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 

私は、Androidでのライブを選択かもしれないし、含むマップを巻く必要がある次の実行:

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

2つの可能なアプローチ。 (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)); 
     } 
    } 
関連する問題