我正在尝试使用Appium在使用PhoneGap构建的混合移动设备上运行一些自动化测试。我目前正试图让Android版自动化。
我成功地获得了将.apk安装到模拟器上的测试,并打开了应用程序。我这样做是通过运行节点服务器(不确定是否有其他方法)。这是我能够得到的。我不确定我必须采取的后续步骤来查找我的应用程序中的元素并断言它们。
我目前正在使用python测试脚本,因为我找到了一个使用python的例子。但是,只要有用于运行测试的资源,我就可以使用任何语言。
此时我只是对于要去哪里感到困惑。 Appium网站似乎没有关于用于测试的命令的详尽文档。
答案 0 :(得分:7)
我目前正在使用Appium自动化混合应用程序,并且几乎没有可用的文档。但是,我已经想出如何通过反复试验来完成这项工作。
先决条件:
1)调试混合应用程序的构建
2)使用Chrome浏览器>工具>检查设备 - 公开应用程序的webview组件
3)您需要使用xpath来识别控制台上的对象
4)执行脚本时使用开关上下文,如下所示
if(browser.equalsIgnoreCase("android")){
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME,"");
capabilities.setCapability("deviceName","Android");
capabilities.setCapability("device","Android");
capabilities.setCapability("takesScreenshot","true");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("platformVersion","4.4.2");
capabilities.setCapability("appPackage","uk.co.ee.myee");
capabilities.setCapability("appActivity","uk.co.ee.myee.Launcher");
capabilities.setCapability("udid","989fb005");
driver = new AppiumDriver(new URL("http://0.0.0.0:4723/wd/hub"),capabilities);
//driver = new AppiumSwipeableDriver(new URL("galaxy_s5_scl23.appkitbox.com:50305"),capabilities);
touch = new TouchAction(driver);
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextName);
if (contextName.contains("WEBVIEW")){
driver.context(contextName);
}
}
}
答案 1 :(得分:1)
您可以使用检查器(Appium GUI)并使用记录,尽管它仅支持应用程序的本机部分。
您应该从档案中查找示例测试脚本: https://github.com/appium/tutorial/tree/master/projects/java_android/src/test/java/appium/tutorial/android这对Java来说很有帮助。
答案 2 :(得分:1)
对于混合应用程序,您可以在appium模式下使用4.4以上的Android版本,对于较小的版本,您可以使用appium的“selendroid模式”。要在selendroid模式下进行检查,请使用“selendroid inpector”切换到编码的调试模式并点击URL “yourlocaldomain:8080 /检查员” 对于appium模式,您可以使用Windows或Mac上的GUI appium来定位元素。