APP自動化測試(一)-appium

一:APP自動化測試框架比較

跨應用:比如在測試抖音的同時還想測試微信

Hybrid:混合應用程序

 

 

二:Appium自動化測試框架

官網:http://appium.io/

優點:

1:跨架構、支持原生、混合以及web移動應用

2:跨平臺,Android&IOS

3:跨語言,Java、Python、Ruby

 

下載安裝:

這裏我是通過翻qiang下載的

安裝後打開就是這玩意

當然下載了這個還不行,還要去配置JDK,eclipse,模擬器,Android SDK(我直接用android studio)

 

這裏可能會存在夜神內置的adb和SDK的adb衝突,可以把SDK的adb替換到夜神中(我沒弄這個)

複製SDK裏面的,改名字成這個,然後黏貼進去

 

 

 

Appium  Client下載:https://github.com/appium/java-client

 

 

三:Appium組件

Appium Server:實際上是一個web接口服務器,使用node.js實現

Appium GUI:Appium Desktop的前身,目前已經停止維護,封裝的Appium Server是1.4.16(不推薦使用)

Appium Desktop:內嵌Appium Server,提供了GUI界面(就是我上面下載那個,它集成了node.js,所以不用安裝node.js)

Appium  Client:客戶端向Appium Server發起請求,可以使用不同語言實現,如Java

 

 

 

四:基本配置

簡單瞭解一下

simple配置(簡單)

advanced配置(高級)

 

presets(預置配置)

我這配置一個

這裏對安卓測試

 

 

運行,因爲appium是工作在本地下的,所以爲127.0.0.1,默認監聽端口默認就行

最後一行說明appium工作已經開啓

 

 

 

 

五:開啓探測會話

這是啓動測試app要的一些信息,appium主要用來探測app的元素信息

我這用的是夜神模擬器

deviceName   127.0.0.1:62001  

所以這樣填,用來找到測試的設備

確認測試的平臺,比如安卓或者IOS

platformName   Android

確定測試的app,也就是包

怎麼查詢?可以通過這種方式,進入sdk裏面,路徑(我的是Android studio):E:\android-studio-bundle-145.3276617-windows\sdk\build-tools\24.0.2

選中上面的地址,輸入cmd

輸入這些內容後,比如我是要測試抖音,找到apk拉進去就行了,它會幫你填充apk的路徑,回車

這個就是包名字(其實也可以通過之前adb那種方式去查)

appPackage    com.ss.android.ugc.aweme

啓動應用程序,要加這個app的入口,在上面那裏也可以找到,不過我看抖音的時候沒看到

像微信可以看到

也可以用這種方式,模擬器啓動這個app,命令行輸入adb shell dumpsys window w | findstr \/ | findstr name=(方法很多,可以去百度看看)

appActivity     com.ss.android.ugc.aweme.splash.SplashActivity

看一下,沒問題就保存,下次就不用再次輸入

這裏可以看到

然後報錯了,大概的意思是說環境變量有問題

看了下日誌:

因爲我這是使用android studio的sdk,之前在配置adb的時候也弄了這個

E:\android-studio-bundle-145.3276617-windows\sdk\platform-tools

在這裏要重新改造一下

在系統變量新增一個環境變量,就是要這個名字,讓appium能識別(如果java識別不了,也可以改成JAVA_HOME這個名字)

在path加上這兩個

%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

在這裏我怕adb不行了,測試一下有沒有問題,發現沒問題

重啓一下appium,發現識別成功

 

回到之前運行,發現又報錯了

看日誌出現這個

error: pkg: /data/local/tmp/appium_cache/7280876e456c1bb793964772b5bcb2ac96ecfcc4.apk

Trying to proxy a session command without session id

Could not find 'apksigner.jar'

安裝這個後,我發現這個問題沒了:Could not find 'apksigner.jar'

於是我看最新的日誌

[2020-06-17 03:18:09][ADB] Install command stdout: pkg: /data/local/tmp/appium_cache/7280876e456c1bb793964772b5bcb2ac96ecfcc4.apk
[2020-06-17 03:18:09][ADB] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]


[2020-06-17 03:18:09][UiAutomator2] Did not get confirmation UiAutomator2 deleteSession worked; Error was: UnknownError: An unknown server-side error occurred while processing the command. Original error: Trying to proxy a session command without session id
[2020-06-17 03:18:09][ADB] Running 'E:\android-studio-bundle-145.3276617-windows\sdk\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62001 shell am force-stop com.tencent.mm'


Encountered internal error running command: Error: pkg: /data/local/tmp/appium_cache/7280876e456c1bb793964772b5bcb2ac96ecfcc4.apk
[2020-06-17 03:18:10][MJSONWP] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]


想了一下,跑去試試是不是SDK的問題,於是我更新了這兩個

後面發現同樣的問題還是存在,於是我查了很久,忽然想到我這個appium軟件是最新版本的,於是我想是不是有變動

於是我就這個方向翻牆去查(太難了,英文不過關的我),終於被我查到了問題

我夜神模擬器的安卓版本是5.1.1,一般是使用UIAutomator1的,比較新的一些安卓系統可能使用的是UIAutomator2,我想是不是1.7以後版本的appium默認是使用了UIAutomator2,於是我加了這個配置

automationName    UiAutomator1

 

然後運行,發現報錯不一樣了,現在是報這個錯誤

Encountered internal error running command: Error: Could not find package com.tencent.mm on the device

百度翻譯了一下,應該是我微信的包沒有安裝到模擬器上,可以直接拉包進模擬器,就能安裝了

但不知道爲毛,我的微信安裝不了,於是我用adb命令安裝,也安裝不了

於是算了,裝了個抖音去試試,運行是沒問題的了(能調起抖音app來運行)

看了一下日誌也沒問題

 

 

 

 

 

附加:在踩坑過程中也用了這些去查看,當然也不知道有沒有前置作用

(1)安裝appium-doctor

它是用來檢測環境的,使用 npm --registry http://registry.npm.taobao.org install appium-doctor -g

看着好像沒問題

 

 

 

(2)Python庫安裝

pip install appium-python-client

驗證一下

也可以直接在pycharm工具裏面輸入from app(這時候有提示,說明安裝成功)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章