目前,我正在为iOS和Android维护两种不同的测试套件。
目前, 如果我想在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?现在,有没有办法告诉appium,在else命令中,如果它是iOS,那么如何在appium中启动iOS服务器?我们是否需要为iOS和Android提供两个不同的env.rb
?
如果还需要任何细节,请告诉我。
答案 0 :(得分: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