appium計算器示例

文檔概述

appium的原理網(wǎng)上介紹的比較清楚,但是配置過程比較復(fù)雜。在這里對簡單配置和使用appium運行一次計算器計算做簡單總結(jié)。

準備工作

appium的運行環(huán)境還是比較復(fù)雜的,依賴的東西比較多,現(xiàn)總結(jié)如下(windows環(huán)境):

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

2、java的jdk;

3、Android的sdk;

4、安裝appium server:

可使用命令行安裝,但是網(wǎng)絡(luò)波動比較大,失敗次數(shù)可能比價多:npm install -g appium

建議直接到:appium.io 下載安裝桌面版的服務(wù)端。

其他軟件有需要再進行安裝,簡單的運行計算器計算以上軟件足以。

代碼實現(xiàn)

使用以下命令獲取當前打開app的包名和activity名稱:

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

使用adb device獲取設(shè)備id(java用)

java版本:

使用開發(fā)工具,導(dǎo)入三個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");                                // 設(shè)置測試機的版本
        cap.setCapability("appPackage", "com.android.calculator2");                 // 將上面獲取到的包名和Activity名設(shè)置為值
        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();                  //徹底退出程序
    }
}

開啟服務(wù)端:

003

也可以使用命令行開啟(比較卡頓):appium

004

之后運行plus函數(shù),就會看到測試機自動啟動了計算器比計算出3+7的結(jié)果,同時服務(wù)器還會記錄日志。

python版本:

python環(huán)境需要安裝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();    

開啟服務(wù)器,運行python腳本即可。

問題與小結(jié)

錯誤1:

在測試過程中發(fā)現(xiàn)錯誤:

005

這是由于appium的會話機制不能及時停止,導(dǎo)致第二次運行就會無法連接。

解決辦法:

1、桌面版服務(wù)器,在設(shè)置里面勾選:

006

2、命令行服務(wù)器,添加參數(shù):- -session-override即可

appium  - -session-override

3、代碼中添加參數(shù)

cap.setCapability("sessionOverride", true); // 每次啟動時覆蓋session,否則第二次后運行會報錯不能新建session

錯誤2:

007

提示服務(wù)器未開啟。

錯誤3:

008

解決辦法:修改配置信息中的手機版本或者設(shè)備id

小結(jié)1:

在測試過程中發(fā)現(xiàn)即使手機鎖屏appium也可以直接進行解鎖運行4.4。在6.0上面就不可以了,服務(wù)器日志提示錯誤:

009

不可以在6.0的系統(tǒng)上自動解鎖了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 前言:本篇文章并非我的原創(chuàng),而是翻譯自英文原著。這里的每一句話我都仔細揣摩過并且加以實踐,著實花了一些時間,在此記...
    顧顧314閱讀 22,301評論 0 19
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,671評論 9 468
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評論 6 342
  • 明天就是我們的傳統(tǒng)節(jié)日:中秋節(jié)了!每到這個季節(jié),就會聽到周圍很多人嘴里常念叨春捂秋凍,不生雜??! 秋季到來,天...
    莫逸語閱讀 487評論 0 1

友情鏈接更多精彩內(nèi)容