由于本人使用的是Android設備做自動化測驗,所以以下內容均基于Android系統做出的整理
一、啟動app
啟動app需要設定Capability引數,而Capability引數放在Desired Capalibity中,Desired Capalibity告訴Appium想要的自動化平臺和應用程式,這是一組鍵值對,主要是用于通知Appium服務器建立需要的session
設定Capability的公共部分
platformName 自動化測驗手機的作業系統(Android/iOS)
platformVersion 手機對應的版本(Android 10)
deviceName 連接的設備名(模擬器或真機)
設定Capability 的Android部分
appActivity 通過APK包獲取,獲取方式在下方有說明
appPackage 通過APK包獲取包名,獲取方式在下方有說明
Android完整案例:
def start(self):
caps = {"platformName": "Android",
"deviceName": "000002b74cd8494e",
"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的作用?
作業系統,例如:Android、iOS、FirefoxOS
2.deviceName的作用是什么?(獲取設備名的方式在下面內容)
設備名,連接的設備名(真機或模擬器)
3.platforVersion的作用是什么?
作業系統版本,對應連接的模擬器或手機的系統版本
4.appActivity和appPackage的作用是什么?(獲取的方式在下面內容)
使Appium確切知道應為您的應用程式啟動哪個程式包和活動,否則,Appium會嘗試從您的應用清單中自動確定這些內容,
5.autoGrantPermissions的作用是什么?
讓appium自動授權app權限,如果noReset為True,則該條不生效(該引數為Android獨有),對應的值為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()建構式的第一個引數中需要顯示指定appium server監聽的埠
二、退出App
def teardown(self):
driver.quit()
三、appium實作原理
客戶端(即PC端)通過4723埠,向服務端(server)發送代碼請求,服務端與移動端(設備:手機或模擬器)通過4724埠進行通信,當服務端接收到請求后,移動端的Bootstrap.jar包,將命令傳送給Uiautomator執行點擊、滑動的操作,
Bootstrap的作用:啟動socket通信,監聽4724埠
如下圖所示:

appium只是一個框架,呼叫的自動化框架是Android或iOS本身的框架,默認埠號是4723,本地的IP地址是:http://127.0.0.1,或http://locahost
四、如何獲取deviceName?
移動端在“手機->設定->開發者選項”中打開USB除錯,PC端按下【Windows+R】,輸入cmd,運行cmd,輸入adb devices,如下圖所示:

圖中的device前面的引數即表示設備名:U4AIUKFAL7W4MJLR
五、如何獲取apk的appActivity和appPackage?
1、在Android SDK的檔案夾下找到aapt.exe應用程式,在"D:\Android\SDK\build-tools\30.0.1"路徑下,如下圖所示:

2、按下【Windows+R】,輸入cmd,運行cmd ,進入該盤,再進入appt.exe所在的檔案夾,輸入的內容為:“cd D:\Android\SDK\build-tools\30.0.1”,則可以進入該檔案夾,進入檔案夾后輸入“aapt dump badging apk所在的路徑+apk名字”,如下圖所示即為成功,下圖所示為獲取到的app的appPackage

下圖所示為獲取到的app的appActivity

以上內容如有錯誤的地方,歡迎大家指正!
如果對你有一點點幫助,各位的「點贊」就是小編創作的最大動力,我們下篇文章見!
好文推薦
2021軟體測驗工程師面試題匯總(內含答案)-看完BATJ面試官對你豎起大拇指!
什么樣的人適合從事軟體測驗作業?
軟體測驗和軟體開發哪個發展更好
那個準點下班的人,比我先升職了…

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/292374.html
標籤:其他
