目錄
一、Appium的介紹 ???
二、Appium實(shí)戰(zhàn)(以真機(jī)為例)
一、Appium的介紹 ???
?????? Appium是一款開(kāi)源的自動(dòng)化測(cè)試工具,其支持iOS和安卓平臺(tái)上的原生的,基于移動(dòng)瀏覽器的,混合的應(yīng)用。
1、 使用appium進(jìn)行自動(dòng)化測(cè)試的好處
?? ? ? Appium在不同平臺(tái)中使用了標(biāo)準(zhǔn)的自動(dòng)化APIs,所以在跨平臺(tái)時(shí),不需要重新編譯或者修改自己的應(yīng)用。
??? ?? Appium支持Selenium WebDriver支持的所有語(yǔ)言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語(yǔ)言,更可以使用Selenium WebDriver的Api。Appium支持任何一種測(cè)試框架.Appium實(shí)現(xiàn)了真正的跨平臺(tái)自動(dòng)化測(cè)試。(本文主要介紹Python的用法)
2、Appium架構(gòu)
????? Appium 是一個(gè)用Node.js編寫(xiě)的HTTP server,它創(chuàng)建、并管理多個(gè) WebDriver sessions 來(lái)和不同平臺(tái)交互,如 iOS ,Android等等.?
?? ?? Appium 開(kāi)始一個(gè)測(cè)試后,就會(huì)在被測(cè)設(shè)備(手機(jī))上啟動(dòng)一個(gè) server ,監(jiān)聽(tīng)來(lái)自 Appium server的指令. 每種平臺(tái)像 iOS 和Android都有不同的運(yùn)行、和交互方式。所以Appium會(huì)用某個(gè)樁程序“侵入”該平臺(tái),并接受指令,來(lái)完成測(cè)試用例的運(yùn)行。
????? 下面直接開(kāi)始正題,進(jìn)行移動(dòng)端自動(dòng)化測(cè)試實(shí)戰(zhàn)。
appium自動(dòng)化測(cè)試視頻:2023年,你一定要學(xué)會(huì)的APP自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)_嗶哩嗶哩_bilibilihttps://www.bilibili.com/video/BV13g4y1G7QC/?spm_id_from=333.999.0.0
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-451137.html
二、Appium實(shí)戰(zhàn)(以真機(jī)為例)
?????? aapt dump badging D:\XXX.apk? 獲取安裝包的所有信息
?????? adb devices(查看手機(jī)是否連接到電腦)
?????? adb shell pm list packages:列出所有的包名,找到所查看包的包名。
?????? adb shell dumpsys package com.android.XXX:查看某個(gè)包的具體信息
?????? 其它:
?????? adb devices:查看Android設(shè)備是否連接到電腦。
?????? adb shell dumpsys activity:查看當(dāng)前運(yùn)行的是哪個(gè)activity,運(yùn)行的一些進(jìn)程等
?????? adb shell dumpsys activity activities
?????? adb shell pm list packages:列出所有的包名。
?????? adb shell dumpsys package:列出所有的安裝應(yīng)用的信息
?????? adb shell dumpsys package com.android.XXX:查看某個(gè)包的具體信息
?????? adb shell dumpsys activity | grep mFocusedActivity:查看當(dāng)前resume的是哪個(gè)activity
?????? adb logcat | grep ActivityManager:查看當(dāng)前正在運(yùn)行的Activity
?????? adb logcat | grep Displayed:查看當(dāng)前正在運(yùn)行的Activity
1、 連接真機(jī)或者模擬器(此處以真機(jī)為例)
?????? 連接手機(jī)時(shí)注意選擇手機(jī)的開(kāi)發(fā)者模式,cmd打開(kāi)命令行窗口,輸入adb devices獲取到設(shè)備的deviceName。
???????
2.獲取Activity
?????? cmd打開(kāi)命令行窗口,輸入aapt dump badging D:\XXX.apk(xxx指安裝包名,D:\是指路徑)直接查看需要測(cè)試app安裝包的具體信息。
???????
?????? 標(biāo)記的就是包名,繼續(xù)往下拖拽,可以找到activity的信息。
???????
?????? 這里的紅圈就可以看到activity的信息。這兩個(gè)值,在appium腳本中都需要提前獲取到,所以需要提前介紹這個(gè)獲取方法。如果你覺(jué)得在cmd里面不好看,你可以把cmd信息導(dǎo)出到一個(gè)txt文件,例如 aapt dump badging shoujibaidu.apk > 123.txt 回車后,會(huì)在桌面生成一個(gè)123.txt文件,你可以打開(kāi),通過(guò)查詢找到這些信息。通過(guò)上面的方法,只要我們有android SDK環(huán)境,那么我們就可以獲取到任意一個(gè)包的包名和Activity信息。
appium自動(dòng)化測(cè)試:
2023年,你一定要學(xué)會(huì)的APP自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)_嗶哩嗶哩_bilibilihttps://www.bilibili.com/video/BV13g4y1G7QC/?spm_id_from=333.999.0.0? ? ? ? ? ? ? ? ? ?
3.啟動(dòng)Appium?
???? 1)? 雙擊桌面上的appium圖標(biāo)打開(kāi),點(diǎn)擊Android Settings進(jìn)行設(shè)置。
?????
???? 2)將上方獲取到的真機(jī)的deviceName填入 ,選擇platformName和platformVersion
?????
????? 3)將服務(wù)的session配置成可重寫(xiě)(非必要的配置)
???????
????? 配置好后,點(diǎn)擊右上角的啟動(dòng)按鈕進(jìn)行啟動(dòng)即可。
???????
??????? 啟動(dòng)成功,下一步該寫(xiě)代碼了。
4、將上方得到的設(shè)備和安裝包信息寫(xiě)入腳本中
desired_caps = {
'platformName': 'Android',
'deviceName':'8TB6V4ZPZ54LPJ5P',
'platformVersion': '5.1',
'app': PATH(r'D:\shell_customer-debug.apk'),
'appPackage': 'com.jyibb.shell_customer',
'appActivity': 'com.jyibb.module_launch_customer.SplashActivity', # 'unicodeKeyboard': 'True',#此兩行是為了解決字符輸入不正確的問(wèn)題
# 'resetKeyboard': 'True' #運(yùn)行完成后重置軟鍵盤(pán)的狀態(tài)
5、查找app定位元素
????? 啟動(dòng)Android SDK中的一個(gè)神器可以查找app的定位元素進(jìn)行腳本的編寫(xiě)。在Android SDK中的tools中有一個(gè)uiautomatorviewer.bat,如下圖所示:
??????
????? 點(diǎn)擊uiautomatorviewer.bat進(jìn)行啟動(dòng),左上角一共四個(gè)按鈕,作用分別是打開(kāi)本地文件、dump頁(yè)面、dump壓縮格式的頁(yè)面、保存;啟動(dòng)后點(diǎn)擊左上角第三個(gè)圖標(biāo)進(jìn)行真機(jī)界面的呈現(xiàn)。
???????
????? 第一次連接會(huì)比較慢,耐心等候一下,連接好后以后就快了。我這里以百度界面為例。
?????
? ?? 這是連接真機(jī)后的界面顯示。這樣就可以根據(jù)id、class、text等定位元素進(jìn)行定位了。
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").clear()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").send_keys('appium測(cè)試')
driver.find_element_by_id("float_search_or_cancel").click()
driver.find_element_by_id("floating_action_button").click()
driver.quit()
三.下方直接上完整代碼,以我自己的app為例
#coding:utf-8
from appium import webdriver
import time,os
PATH = lambda p:os.path.abspath(os.path.join(os.path.dirname(__file__),p))
#設(shè)備及安裝包信息
desired_caps = {
'platformName': 'Android',
'deviceName':'8TB6V4ZPZ54LPJ5P',
'platformVersion': '5.1',
'app': PATH(r'D:\shell_customer-debug.apk'),
'appPackage': 'com.jyibb.shell_customer',
'appActivity': 'com.jyibb.module_launch_customer.SplashActivity',
# 'unicodeKeyboard': 'True',
# 'resetKeyboard': 'True'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)#等待時(shí)間可根據(jù)自己的情況進(jìn)行添加
driver.find_element_by_id("com.jyibb.shell_customer:id/layout_main_header_mine").click()
time.sleep(5)
driver.find_element_by_id("com.jyibb.shell_customer:id/login_phone_number_p").send_keys('15000000000')
driver.find_element_by_id("com.jyibb.shell_customer:id/login_password_p").click()
driver.find_element_by_id("com.jyibb.shell_customer:id/login_password_p").send_keys("111111q")
time.sleep(5)
driver.find_element_by_id("com.jyibb.shell_customer:id/bt_login_p").click()
????? 至此運(yùn)行腳本即可進(jìn)行自動(dòng)化測(cè)試。
? appium自動(dòng)化測(cè)試:
2023年,你一定要學(xué)會(huì)的APP自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)_嗶哩嗶哩_bilibilihttps://www.bilibili.com/video/BV13g4y1G7QC/?spm_id_from=333.999.0.0
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-451137.html
?
到了這里,關(guān)于appium自動(dòng)化測(cè)試實(shí)戰(zhàn)詳解及框架搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!