1. 程式人生 > >移動自動化測試_Appium_003_連華為P9真機測試

移動自動化測試_Appium_003_連華為P9真機測試

    我的手機是華為P9的,手頭也沒有其他測試的機子。就只能拿自己的當小白鼠了~~

    1. 開啟手機的USB模式。USB模式其實就是android的一個開發者模式,

        是哪一款手機,直接百度查下相應的USB模式怎麼開,大把的回答的。華為的步驟是:

       進入手機主介面->設定->關於手機->版本號 

       連續快速的點選版本號多次,網上是說7次左右。

       返回上一個介面,就會多出一個開發者選項的條目。

        進入開發者選項介面,選中USB除錯即可。

     2. 將手機與電腦用資料線連線。再次確認USB模式是否開啟成功。

        命令列: adb devices -l    檢查手機是否與電腦連線成功。 連線電腦時提示要安裝華為手機助手,還有應用商店版本需要更新。反正它提示啥你就裝啥吧。在這一步我也卡殼了好久,USB模式開啟了過會兒檢查又關閉,也不知道是什麼原因。如果設定了手機密碼啥的也暫時關掉吧。好像是勾選了USB模式之後,選擇了一個預設除錯的應用就可以了。反正下面這個介面出來我也是折騰了老半天。~~~~(>_<)~~~~    

    3.啟動Appium並開啟一個Appium Server。

     這裡用的device就是上面查詢到的內容。在啟動Appium之前指定device的引數。


 

啟動成功:


 

    4. test case程式碼:

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
 


import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;

import java.io.File;
import java.net.URL;
import java.util.List;
 
public class AppDemo {
    private  AndroidDriver  driver;
 
    @BeforeMethod(alwaysRun=true)
    public void setUp() throws Exception {
        // set up appium
//        File classpathRoot = new File(System.getProperty("user.dir"));
//        File appDir = new File(classpathRoot, "apps");
//        File app = new File(appDir, "notepad.apk");
//        System.out.println(app.isFile() + "==" + app.exists());
//        DesiredCapabilities capabilities = new DesiredCapabilities();
//        capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
//        capabilities.setCapability("platformName", "Android");
//        capabilities.setCapability("deviceName","KWG5T16621002512");
//        capabilities.setCapability("platformVersion", "7.0");
//        capabilities.setCapability("app", app.getAbsolutePath());
//        capabilities.setCapability("appPackage", "com.example.android.notepad");
//        capabilities.setCapability("appActivity", "com.example.android.notepad.NotesList");
//        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        
        File classpathRoot = new File(System.getProperty("user.dir"));
        File appDir = new File(classpathRoot, "apps");
        File app = new File(appDir, "ContactManager.apk");
        System.out.println(app.isFile() + "==" + app.exists());
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName","KWG5T16621002512");
        capabilities.setCapability("platformVersion", "4.4");
        capabilities.setCapability("app", app.getAbsolutePath());
        capabilities.setCapability("appPackage", "com.example.android.contactmanager");
        capabilities.setCapability("appActivity", ".ContactManager");
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }
 
    @AfterMethod(alwaysRun=true)
    public void tearDown() throws Exception {
        driver.quit();
    }
    
    @Test(groups={"noteTest"})
    public void noteTest1()
    {
    	WebElement el = driver.findElement(By.xpath(".//*[@text='Add Contact']"));
        el.click();
        List<AndroidElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
        textFieldsList.get(0).sendKeys("Some Name");
        textFieldsList.get(2).sendKeys("
[email protected]
"); driver.swipe(100, 500, 100, 100, 2); driver.findElementByXPath(".//*[@text='Save']").click(); } }

     5. 執行TestNG的測試用例。又碰到了網上很多人都碰到過的一個錯誤,真是好事多磨啊。做我們這一行可真是一件預設耐心的事情啊。O(∩_∩)O哈哈~


     

   錯誤: info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: [\"bad pid 'uiautomator'\"])","origValue":"Could not extract PIDs from ps output. PIDS: [], Procs: [\"bad pid 'uiautomator'\"]"},"sessionId":null}

   按照網上搜到的解決方案,修改所謂的adb.js檔案。解決了該問題。

   檔案路徑:E:\software\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js


 

註明:此時我升級了selenium 的包到2.53.0,java-client包到4.1.2

selenium-server-standalone-2.53.0.jar 

java-client-4.1.2.jar

相關jar包和安裝包的分享路徑:連結:https://pan.baidu.com/s/1c10nXM4 密碼:ud21

網上測試的APK和測試程式碼可以在github上下載。有時間可以看看。

相關推薦

移動自動化測試_Appium_003_P9測試

    我的手機是華為P9的,手頭也沒有其他測試的機子。就只能拿自己的當小白鼠了~~     1. 開啟手機的USB模式。USB模式其實就是android的一個開發者模式,         是哪一款手機,直接百度查下相應的USB模式怎麼開,大把的回答的。華為的步驟是:        進入手機主介面->

部分調試無法顯示log問題解決

方式 輸入 project class log 重新 pro logcat clip 真機測試時,部分華為手機無法獲取所有的log信息。或者說無法獲取Error下面級別的log信息。比方P7 這是由於部分華為機出廠默認log設置為關閉狀態。因此僅僅能獲取Error以上級

mate8除錯沒有日誌

作為一名開發人員,錯誤log對於我們除錯程式至關重要,在工作中發現有兩款手機在程式出錯時,並沒有顯示相應的log日誌,j網上找了下沒找到,幸虧我們老大之前遇見過,這裡將方法告訴大家,希望有所幫助 在手機撥打電話介面,輸

TR069網管測試ITMS平臺(內部測試使用)

ins 內部測試 配置 安裝步驟 sta and ger 虛擬機ip 瀏覽器 聲明:本篇華為ITMS平臺僅用於學習和測試使用,如果需要商用,請購買正版軟件! 原創作品,轉載請註明出處,嚴禁非法轉載或者用於商業目的! email:[email protected] 一.

P9總是在拍照的時候,電量變為0,自動關機

華為P9是兩年多以前、也就是它剛上市的時候買的,當時3688,官網買的,主打拍照,我當時只是覺得華為算個知名品牌才買的,但其實我不怎麼用拍照,這個問題大概是我在今年過年的時候開始出現,我平時不怎麼拍照,也就得過且過,但是今天我真的抓狂,有個宣講會我同學叫我到時間通知一下他到場

產品線TSE測試經理的職責

  華為公司某產品線TSE的職責: ①需求澄清。每個需求在開發前組織開發負責人和測試人員面對面進行需求澄清,確保需求理解達成一致,疑問和分歧點形成的遺留問題和使用者確認。 ②測試用例設計。需求澄清完成後,TSE設計測試用例,用例設計完畢後組織開發、測試、SE進行用例檢

應用在P9手機上安裝失敗原因分析 (錯誤碼:-110)

問題描述: 應用在之前的華為手機上都能正常安裝,但是在華為P9手機上安裝失敗,提示錯誤為: 失敗原因: 系統問題導致安裝失敗(錯誤碼:-110) 原因分析: 開始懷疑是android的版本問題,後來看了一下在華為Mate8上面也能正常安裝,華為Mate8和華為P9

p9手機恢復出廠設定瞭如何找回

新買的華為p9手機,剛拿到手總是很新奇了,時不時的就喜歡拿出來搗鼓搗鼓,不知道就怎麼點到出廠設定了,一下子剛存好的電話,照片,簡訊,全沒了。出廠設定就相當與對華為p9手機進行了格式化,這樣的情況下,還能找的會資料嗎?   很多人不太瞭解出廠設定是什麼,如今,我們用的都是智

Android在測試無法輸出Log.d的解決辦法

在真機測試時想輸出Log.d但是沒反應,試了Log.i就有,很苦惱困惑,找了許多資料後解決辦法如下: 撥號盤輸入: *#*#2846579#*#* 點選ProjectMenu(也可能是系統選單)--->後臺設定---->LOG設定--->LOG開關 開啟重

關於移動端web開發的測試

install 相對 同步 css 響應 .html http bsp 關於 五月已經過去一大半了,心情不太好,因為太困沒狀態,所以剛剛去跑了好幾圈,心情終於沒那麽郁悶了,來吧,今天要記錄的是在做移動端網頁時如何真機測試。 網上方法有很多,我就掌握一個就夠了<攤手&g

2016校招試題(軟體開發)

今天華為的機試題明顯變難了,而且和往年的不一樣了,準備了前些年的題目,但是今年的做起來很不習慣。機試時可以上網,但是搜不到原題。最後的機試分數300分,只做了第一題和第二題。 如果你想去華為,早早準備,多刷刷華為的OJ (華為線上訓練與測試平臺) http://career-oj

1119Appium app自動化測試經驗分享-ADB無線連線

有一次手機餓死 沒電了,還要來跑指令碼,很無奈啊,資料線連線電腦充電好慢的。有沒有其他方法,既可以跑指令碼,還可以正常充電呢? 那就可以利用adb通過WiFi對手機進行除錯,手機正常去充電。 一) 如何設定adb無線連線 原理:Android裝置與電腦在同一區域

防火牆 雙熱備負載均衡實驗

雙機熱備 FW1的配置 FW2的配置 interface GigabitEthernet 1/0/1  ip address 10.1.1.2 255.255.255.0  vrrp vrid 1 v

2015屆校園招聘試題

第一題(60分):        按要求分解字串,輸入兩個數M,N;M代表輸入的M串字串,N代表輸出的每串字串的位數,不夠補0。例如:輸入2,8, “abc” ,“123456789”,則輸出為“abc00000”,“12345678“,”90000000”轉載請標明出處,

微信小程式自動化測試全流程(安卓+Appium)

一、連線手機 1.手機設定成開發者模式(我用的oppo,所以是設定-關於手機-三擊“版本號”,開發者模式開啟) 2.開啟USB除錯(設定-其它設定-開發者選項-USB除錯開啟,最好不鎖螢幕和不使用鎖屏) 3.此時資料線是與電腦連線 的,手機端會出現“允許除

iOS自動化測試之xcode+ios10 demo在除錯的流程

       1、開啟專案檔案        2、資料線連線真機        3、點進General        4、可以看出Status中有Signing for "baiduTie

部分校園招聘試試題及答案(C語言版本)

1. 密碼擷取 描述:Catcher是MCA國的情報員,他工作時發現敵國會用一些對稱的密碼進行通訊,比如像這些ABBA,ABA,A,123321,但是他們有時會在開始或結束時加入一些無關的字元以防止別國破解。比如進行下列變化 ABBA->12ABBA,ABA->

測試中裝置的UDID加滿了如何給新裝置打包(iPhone上限100臺,以xcode7.3例)

    在蘋果個人開發者賬號(已付費99$)中,真機測試需要新增裝置的UDID,然後再製作mobileprovision檔案的時候包含進去,就可以在真機上DUBUG開發了。 但是蘋果規定的iPhone,iTouch,iPad各100臺。100個iPhone的名額加滿了,新的

2017年試_反轉數字求和

題目: 反轉數字求和。輸入“123,456”,反轉後求和:321+654=975,輸出975。 分析: 輸入的是字串,主要涉及到字串到數字的轉換,反轉可用數字求餘或字串的反轉。 用到的函式:

cordova+vue Cordova的環境搭建(android),測試

nod arc jdk1.8 nload 安裝 acl archive 配置環境變量 install 一、安裝node.js   去官網下載node.js(官網地址:https://nodejs.org),按默認路徑安裝。   安裝完後在命令行輸入   $ npm //(測