虽然看着代码能理解Appium里面的Session和 Desired Capabilities,但实际具体的含义还是说不太清楚,所有有必要总结下。
如这段测试UWP开启session的代码:
public class Test{
private static IOSDriver TestSession=null;
@Before
public static void LaunchApp(){
try{
DesiredCapabilities capabilities=new DesiredCapabilities();
//这里开始打开app
capabilities.setCapability("app","AppName");
//IP:port一般是默认的http://127.0.0.1:4723
TestSession=new IOSDriver(new URL("IP:port"),capabilities);
TestSession.manage().TimeOuts().implicitlyWait(2,TimeUnit.SECONDS);
}
}
}
session
session就是一个会话,在Webdriver/Appium中,所有的command只有在session开始启动后才能正在开始。一般通过POST /session这个URL,然后传入Desired capabilities就可以开启session了。
开启session后,会返回一个全局唯一的sessionid,以后几乎所有的请求都必须带上这个sessionid,因为这个sessionid代表的是所打开的
浏览器或者移动设备模拟器或者是打开UWP的APP。
Windows平台的UWP是使用的IOS driver来创建session。
Desired Capabilities
这个主要用于告诉服务器本次
测试的一些配置信息。本次是进行浏览器测试还是移动端测试,如果是移动端,是
Android还是IOS等信息。
下面是打开Android设备的Session:
private
AndroidDriver driver;
@Before
public
void
setUp()
throws
Exception {
DesiredCapabilities capabilities =
new
DesiredCapabilities();
capabilities.setCapability(
"deviceName"
,
"Android Emulator"
);
capabilities.setCapability(
"platformVersion"
,
"4.4"
);
capabilities.setCapability(
"platformName"
,
"Android"
);
capabilities.setCapability(
"appPackage"
,
"com.android.settings"
);
capabilities.setCapability(
"appActivity"
,
".Settings"
);
capabilities);
}
@After
public
void
tearDown()
throws
Exception {
driver.quit();