appium计算器示例

2017-08-23  本文已影响0人  Goorwl

文档概述

appium的原理网上介绍的比较清楚,但是配置过程比较复杂。在这里对简单配置和使用appium运行一次计算器计算做简单总结。

准备工作

appium的运行环境还是比较复杂的,依赖的东西比较多,现总结如下(windows环境):

1、首先安装nodejs(安装命令行版的appium用到);

2、java的jdk;

3、Android的sdk;

4、安装appium server:

可使用命令行安装,但是网络波动比较大,失败次数可能比价多:npm install -g appium

建议直接到:appium.io 下载安装桌面版的服务端。

其他软件有需要再进行安装,简单的运行计算器计算以上软件足以。

代码实现

使用以下命令获取当前打开app的包名和activity名称:

adb shell dumpsys window w |findstr \/ |findstr name=
001

使用adb device获取设备id(java用)

java版本:

使用开发工具,导入三个jar包,分别是:

002

代码如下:

public class Demo {
    private AppiumDriver driver;
    @BeforeClass
    public void setup() throws Exception {
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(CapabilityType.BROWSER_NAME, "");
        cap.setCapability("platformName", "Android");                               // 指定测试平台
         cap.setCapability("deviceName", "0617f727007387cb");                       // 指定测试机的ID,通过adb命令`adb
        cap.setCapability("platformVersion", "4.4");                                // 设置测试机的版本
        cap.setCapability("appPackage", "com.android.calculator2");                 // 将上面获取到的包名和Activity名设置为值
        cap.setCapability("appActivity", ".Calculator");
        cap.setCapability("appWaitActivity", "com.android.calculator2.Calculator"); // A new session could not be created的解决方法
        cap.setCapability("sessionOverride", true);                                 // 每次启动时覆盖session,否则第二次后运行会报错不能新建session
        driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);    // 固定写法
    }
    @Test
    public void plus() {
        // 获取7
        driver.findElementById("com.android.calculator2:id/digit7").click();
        // 获取+
        driver.findElementById("com.android.calculator2:id/plus").click();
        // 获取3
        driver.findElementById("com.android.calculator2:id/digit3").click();
        // 获取=
        driver.findElementById("com.android.calculator2:id/equal").click();
    }
    @AfterClass
    public void tearDown() throws Exception {
        driver.quit();                  //彻底退出程序
    }
}

开启服务端:

003

也可以使用命令行开启(比较卡顿):appium

004

之后运行plus函数,就会看到测试机自动启动了计算器比计算出3+7的结果,同时服务器还会记录日志。

python版本:

python环境需要安装appium库:

pip install Appium-Python-Client

编写测试代码:

from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

driver.find_element_by_id('com.android.calculator2:id/digit7').click()
driver.find_element_by_id('com.android.calculator2:id/plus').click()
driver.find_element_by_id('com.android.calculator2:id/digit3').click()
driver.find_element_by_id('com.android.calculator2:id/equal').click()

driver.quit();    

开启服务器,运行python脚本即可。

问题与小结

错误1:

在测试过程中发现错误:

005

这是由于appium的会话机制不能及时停止,导致第二次运行就会无法连接。

解决办法:

1、桌面版服务器,在设置里面勾选:

006

2、命令行服务器,添加参数:- -session-override即可

appium  - -session-override

3、代码中添加参数

cap.setCapability("sessionOverride", true); // 每次启动时覆盖session,否则第二次后运行会报错不能新建session

错误2:

007

提示服务器未开启。

错误3:

008

解决办法:修改配置信息中的手机版本或者设备id

小结1:

在测试过程中发现即使手机锁屏appium也可以直接进行解锁运行4.4。在6.0上面就不可以了,服务器日志提示错误:

009

不可以在6.0的系统上自动解锁了。

上一篇下一篇

猜你喜欢

热点阅读