2017-05-25 55 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 
相关问题