2017-05-25 54 views
0

目前,我正在爲iOS和Android維護兩個不同的測試套件。以編程方式將設備平臺版本和操作系統版本傳遞給appium

目前, 如果我想在不同的設備版本的Android運行測試,我手動去appium和選擇/更改設備版本,如果我想運行的iOS而非Android的測試啓動服務器 ,我去appium並將其更改爲iOS並開始運行iOS測試。所以我們在Jenkins中有兩個不同的分支,分別運行iOS和Android測試。

我想知道,如果 1.我可以通過編程方式將設備版本傳遞給appium?也就是說,如果連接了6.0,appium應該識別版本,如果連接了7.0,它也應該被識別,比我在appium中手動修改它。我目前正在使用

deviceInfo_Hash = { 
     "PLATFORM" => "Android", 
     "DEVICE_VERSION" => system('adb shell getprop | grep build.version.release'), 
     "DEVICE_MODEL" => system('adb devices -l'), 
     "APP_VERSION" => system('adb shell dumpsys package my.package | grep versionName'), 
    } 

獲取設備的詳細信息並將其存儲在一個文件中。有沒有辦法將這些信息傳遞給appium?

有沒有辦法告訴appium,連接的設備是android還是iOS?即如果android已連接,請運行android步驟,如果iOS然後運行iOS測試步驟,而不是手動運行並更改appium中的值?目前,我正在使用,

Before do 
    if $driver.device_is_android? 
    puts "Device connected is Android" 
    end 
end 

看看連接的設備是android嗎?現在,有沒有辦法在else命令中告訴appium,如果它是iOS,那麼我該如何在appium中啓動iOS服務器?我們是否需要iOS和Android兩種不同的env.rb

請讓我知道是否需要進一步的細節。

回答

0

我已經更新了env.rb這個,目前它似乎認識到我的設備版本是什麼並繼續。

這適用於Android。

def caps 
    { 
     caps:{ deviceName: "Samsung", 
      platformName: "Android", 
      Fullreset: "false", 
      Noreset: "true", 
      Platformversion: system('adb shell getprop | grep build.version.release'), 
      app: (File.join(File.dirname(__FILE__), "app-fs-debug.apk")), 
      Packagename: "br.com.fs.ensinabyfs", 
      newCommandTimeout: "3600", 
      autoGrantPermissions: "true", 
      appium_lib: { wait: 20, 
          debug: false, 
      } 
     } 
    } 
end 
相關問題