網(wǎng)站首頁 編程語言 正文
由于本人使用的是Android設(shè)備做自動化測試,所以以下內(nèi)容均基于Android系統(tǒng)做出的整理
一、啟動app
啟動app需要設(shè)置Capability參數(shù),而Capability參數(shù)放在Desired Capalibity中,Desired Capalibity告訴Appium想要的自動化平臺和應(yīng)用程序,這是一組鍵值對,主要是用于通知Appium服務(wù)器建立需要的session
設(shè)置Capability的公共部分
platformName ? ? 自動化測試手機的操作系統(tǒng)(Android/iOS)
platformVersion ?手機對應(yīng)的版本(Android 10)
deviceName ? ? ? 連接的設(shè)備名(模擬器或真機)
設(shè)置Capability 的Android部分
appActivity 通過APK包獲取,獲取方式在下方有說明
appPackage 通過APK包獲取包名,獲取方式在下方有說明
Android完整案例:
def start(self): caps = {"platformName": "Android", "deviceName": "U4AIUKFAL7W4MJLR", "platforVersion": "9", "appPackage": "com.sina.weibo", "appActivity": "com.sina.weibo.SplashActivity", "autoGrantPermissions": "true", "automationName": "UiAutomator2" } self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
1.plateforName的作用?
操作系統(tǒng),例如:Android、iOS、FirefoxOS
2.deviceName的作用是什么?(獲取設(shè)備名的方式在下面內(nèi)容)
設(shè)備名,連接的設(shè)備名(真機或模擬器)
3.platforVersion的作用是什么?
操作系統(tǒng)版本,對應(yīng)連接的模擬器或手機的系統(tǒng)版本
4.appActivity和appPackage的作用是什么?(獲取的方式在下面內(nèi)容)
使Appium確切知道應(yīng)為您的應(yīng)用程序啟動哪個程序包和活動。否則,Appium會嘗試從您的應(yīng)用清單中自動確定這些內(nèi)容。
5.autoGrantPermissions的作用是什么?
讓appium自動授權(quán)app權(quán)限,如果noReset為True,則該條不生效(該參數(shù)為Android獨有),對應(yīng)的值為True或False
6.automationName的作用是什么?
使用引擎,默認為Appium,其中Appium、UiAutomator2、Selendroid、Espresso用于Android,XCUITest用于iOS
7.webdriver.Remote("http://localhost:4723/wd/hub", caps)的作用是什么?
webdriver.Remote實際上就是原生webdriver的子類,另外Remote()構(gòu)造函數(shù)的第一個參數(shù)中需要顯示指定appium server監(jiān)聽的端口
二、退出App
def teardown(self): driver.quit()
三、appium實現(xiàn)原理
客戶端(即PC端)通過4723端口,向服務(wù)端(server)發(fā)送代碼請求,服務(wù)端與移動端(設(shè)備:手機或模擬器)通過4724端口進行通信,當服務(wù)端接收到請求后,移動端的Bootstrap.jar包,將命令傳送給Uiautomator執(zhí)行點擊、滑動的操作。
Bootstrap的作用:啟動socket通信,監(jiān)聽4724端口
如下圖所示:
appium只是一個框架,調(diào)用的自動化框架是Android或iOS本身的框架,默認端口號是4723,本地的IP地址是:http://127.0.0.1,或http://locahost
四、如何獲取deviceName?
移動端在“手機->設(shè)置->開發(fā)者選項”中打開USB調(diào)試,PC端按下【W(wǎng)indows+R】,輸入cmd,運行cmd,輸入adb devices,如下圖所示:
圖中的device前面的參數(shù)即表示設(shè)備名:U4AIUKFAL7W4MJR
五、如何獲取apk的appActivity和appPackage?
1、在Android SDK的文件夾下找到aapt.exe應(yīng)用程序,在"D:\Android\SDK\build-tools\30.0.1"路徑下,如下圖所示:
2、按下【W(wǎng)indows+R】,輸入cmd,運行cmd ,進入該盤,再進入appt.exe所在的文件夾,輸入的內(nèi)容為:“cd D:\Android\SDK\build-tools\30.0.1”,則可以進入該文件夾,進入文件夾后輸入“aapt dump badging apk所在的路徑+apk名字”,如下圖所示即為成功,下圖所示為獲取到的app的appPackage
下圖所示為獲取到的app的appActivity
原文鏈接:https://www.cnblogs.com/TinHuang/p/15539544.html
相關(guān)推薦
- 2022-03-23 解決plsql因事務(wù)未提交造成的鎖表問題_oracle
- 2023-01-20 C#實現(xiàn)自定義動畫鼠標的示例詳解_C#教程
- 2022-06-08 淺析C++可變參數(shù)模板的展開方式_C 語言
- 2021-12-28 vscode搭建go開發(fā)環(huán)境案例詳解_Golang
- 2022-08-26 Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟_python
- 2023-05-26 C++?static的作用解讀_C 語言
- 2023-03-22 Redis慢查詢?nèi)罩炯奥樵兎治鲈斀鈅Redis
- 2023-03-02 docker-compose安裝RabbitMQ及插件操作步驟_docker
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支