app實(shí)戰(zhàn)運(yùn)用
一、打開(kāi)模擬器

二、cmd中打開(kāi)dos命令
adb connect 127.0.0.1:62001

三、安裝測(cè)試包
adb install D:\app\baiduyuedu_3760.apk
E:\dcs\two\app\mojibase.apk
四、打開(kāi)appium

@--

五、(定位元素沒(méi)有xpath的就刪除原有uiautomatorviewer.bat,替換成新的)
開(kāi)始定位,定位插件

@--

@--

六、

@--

七、更換插件(原有插件)

(1)更換sdk下tools
路徑:D:\app\adt-bundle-windows-x86_64-20140702\sdk\tools

(2)將jar放在sdk\tools\lib 下
路徑:D:\app\adt-bundle-windows-x86_64-20140702\sdk\tools\lib

(3)將jar放在
案例:sdk\platforms\android-20
路徑:D:\app\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20
然后啟動(dòng)

@--

=====================================
案例1:
from appium import webdriver
from time import *
cs={
'platformName':'Android', #平臺(tái)系統(tǒng):Android or Ios
'deviceName':'OPPO R17', #設(shè)備名稱
'platformVersion':'android-5.1W', #平臺(tái)版本
'appPackage':'com.moji.mjweather', #包名
'appActivity':'com.moji.mjweather.LauncherActivity', #activity
'unicodeKeyboard': True, #使用unicode編碼方式發(fā)送字符串 }
'resetKeyboard':True} #是將鍵盤隱藏起來(lái)
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(10)
# dx.find_element_by_id("com.moji.mjweather:id/jc").click() #同意進(jìn)入
dx.find_element_by_id("com.moji.mjweather:id/azz").send_keys("北京市")
=====================================================================
查看參數(shù)數(shù)據(jù):
(1)查看設(shè)備和版本
'platformName':'Android', #平臺(tái)系統(tǒng):Android or Ios
'deviceName':'SM-G9350', #設(shè)備名稱
'platformVersion':'android-4.4W', #平臺(tái)版本

(2)查看包名和活動(dòng)路徑名(命令:aapt d badging E:\dcs\two\app\mojibase.apk)
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity 活動(dòng)路徑名

@--

(3)
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub")

===================================================================
from appium import webdriver
from time import sleep
desired_caps={
'platformName':'Android', #平臺(tái)系統(tǒng):Android or Ios
'deviceName':'SM-G9350', #設(shè)備名稱
'platformVersion':'android-4.4W', #平臺(tái)版本
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity
'unicodeKeyboard': True, #使用unicode編碼方式發(fā)送字符串 }
'resetKeyboard':True} #是將鍵盤隱藏起來(lái)
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
(一)
'platformName':'Android', #平臺(tái)系統(tǒng):Android or Ios
'deviceName':'SM-G9350', #設(shè)備名稱
'platformVersion':'android-4.4W', #平臺(tái)版本

修改手機(jī)類型

aapt d badging D:\app\baiduyuedu_3760.apk
包名:

@--

====================================================
結(jié)合項(xiàng)目編寫5條自動(dòng)化用例
案例1
mport unittest #導(dǎo)入unittest 框架,python自帶的框架
from appium import webdriver #導(dǎo)入appium模塊
from time import * #導(dǎo)入時(shí)間
from HTMLTestRunner3_New import HTMLTestRunner
class appceshi(unittest.TestCase): #創(chuàng)建一個(gè)類,繼承unittest.case的類
def setUp(self) -> None:
cs={
'platformName':'Android', #平臺(tái)系統(tǒng):Android or Ios
'deviceName':'OPPO R17', #設(shè)備名稱
'platformVersion':'android-7.1W', #平臺(tái)版本
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #活動(dòng)activity
'unicodeKeyboard': True, #使用unicode編碼方式發(fā)送字符串 }
'resetKeyboard':True} #是將鍵盤隱藏起來(lái)
self.dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(15)
def tearDown(self) -> None:
self.dx.quit()
def test1_jrts(self): #進(jìn)入圖書(shū)界面
self.dx.find_element_by_xpath("http://android.widget.TextView[@text='圖書(shū)']").click()
sleep(5)
def test2_jryh(self): #進(jìn)入用戶界面
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
sleep(3)
def test3_wdsc(self): #我的收藏界面
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
sleep(3)
self.dx.find_element_by_id("com.baidu.yuedu:id/account_my_book_fav_title").click()
sleep(3)
def test4_wdzdxf(self): #我的自動(dòng)續(xù)費(fèi)
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
sleep(3)
self.dx.find_element_by_id("com.baidu.yuedu:id/auto_buy_text").click()
sleep(3)
def test5_wdyl(self): #我的閱歷
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
sleep(3)
self.dx.find_element_by_id("com.baidu.yuedu:id/text_my_yueli").click()
sleep(3)
if __name__ == '__main__':
# unittest.main() #調(diào)用所有的用例
lj=r"D:\pyCharm\zdhcs" #相對(duì)路徑
d=unittest.TestLoader().discover(start_dir=lj,pattern="appceshi.py")
bglj=r"D:\pyCharm\zdhcs" #相對(duì)路徑
new=strftime("%y-%m-%d %H-%M-%S")
file=lj+"/"+str(new)+"_uizdh.html"
f=open(file,"bw")
b=HTMLTestRunner(
stream=f,description="自動(dòng)化執(zhí)行情況",title="ui自動(dòng)化測(cè)試報(bào)告",
tester="dcs"
)
b.run(d)
案例2:
import unittest
from appium import webdriver #導(dǎo)入appium模塊
from time import * #導(dǎo)入時(shí)間
class App_case(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
pass
@classmethod
def tearDownClass(cls) -> None:
pass
def setUp(self) -> None:
# 連接參數(shù) cs
cs = {
'platformName': 'Android', # 平臺(tái)系統(tǒng):Android or Ios
'deviceName': 'OPPO R17', # 設(shè)備名稱
'platformVersion': 'android-5.1w', # 平臺(tái)版本
'appPackage': 'com.baidu.yuedu', # 包名
'appActivity': 'com.baidu.yuedu.splash.SplashActivity', # 活動(dòng)activity
'unicodeKeyboard': True, # 使用unicode編碼方式發(fā)送字符串 }
'resetKeyboard': True} # 是將鍵盤隱藏起來(lái)
self.dx = webdriver.Remote("http://127.0.0.1:4723/wd/hub", cs)
sleep(10)
def tearDown(self) -> None:
sleep(4)
self.dx.quit() #關(guān)閉網(wǎng)頁(yè)
def test1_ts(self): #進(jìn)入圖書(shū)界面
self.dx.find_element_by_id("com.baidu.yuedu:id/righttitle").click() #點(diǎn)擊圖書(shū)
sleep(5)
def test2_gwc(self): #進(jìn)入購(gòu)物車界面并退出
self.test1_ts()
self.dx.find_element_by_id("com.baidu.yuedu:id/ball").click() #點(diǎn)擊購(gòu)物車
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/backbutton").click() #點(diǎn)擊退出
sleep(5)
def test3_ss(self): #搜索圖書(shū)內(nèi)容
self.dx.find_element_by_id("com.baidu.yuedu:id/search_account").click() #點(diǎn)擊搜索標(biāo)志
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("大哥") #輸入內(nèi)容
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/sug_item_name").click() #點(diǎn)擊作者名稱
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_search").click() #點(diǎn)擊搜索
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_back").click()#點(diǎn)擊退出
sleep(5)
def test4_sz(self): #進(jìn)入設(shè)置界面
self.dx.find_element_by_id("com.baidu.yuedu:id/title_account").click()#點(diǎn)擊我的按鈕
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_setting").click()#點(diǎn)擊設(shè)置
sleep(5)
def test5_wifi(self): #設(shè)置wifi
self.test4_sz()
self.dx.find_element_by_id("com.baidu.yuedu:id/rl_sync_wifi").click()#點(diǎn)擊wifi
sleep(5)
if __name__ == '__main__':
unittest.main()
案例3:
from appium import webdriver #導(dǎo)入appium模塊
from time import * #導(dǎo)入時(shí)間
#連接參數(shù) cs
cs={
'platformName':'Android', #平臺(tái)系統(tǒng):Android or Ios
'deviceName':'OPPO R17', #設(shè)備名稱
'platformVersion':'android-5.1W', #平臺(tái)版本
'appPackage':'com.taobao.taobao', #包名
'appActivity':'com.taobao.tao.welcome.Welcome', #活動(dòng)activity
'unicodeKeyboard': True, #使用unicode編碼方式發(fā)送字符串 }
'resetKeyboard':True} #將鍵盤隱藏起來(lái)
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(3)
dx.find_element_by_id("com.taobao.taobao:id/uik_mdButtonDefaultPositive").click() #點(diǎn)擊同意
sleep(4)
#充話費(fèi)
dx.find_element_by_xpath("http://android.widget.FrameLayout[@content-desc='充值']").click() #充值中心
sleep(3)
dx.find_element_by_xpath("http://android.view.View[@text='話費(fèi)流量']").click()
sleep(3)
dx.find_element_by_class_name("android.widget.EditText").send_keys("12345678901")
sleep(3)
#跳轉(zhuǎn)登錄
# dx.find_element_by_xpath("http://android.widget.FrameLayout[@content-desc='購(gòu)物車']").click()
# sleep(3) #購(gòu)物車
# dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_account_et").send_keys("admin") #賬號(hào)
# sleep(4)
# dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_password_et").send_keys("12345") #密碼
# sleep(3)
# dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_login_btn").click() #登錄
# sleep(3)
案例4:
from appium import webdriver #導(dǎo)入appium模塊
from time import * #導(dǎo)入時(shí)間
from unittestreport import TestRunner
import unittest
#連接參數(shù) cs
class Abcd(unittest.TestCase):
def setUp(self) -> None:
cs={
'platformName':'Android', #平臺(tái)系統(tǒng):Android or Ios
'deviceName':'OPPO R17', #設(shè)備名稱
'platformVersion':'android-5.1W', #平臺(tái)版本
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #活動(dòng)activity
'unicodeKeyboard': True, #使用unicode編碼方式發(fā)送字符串 }
'resetKeyboard':True} #是將鍵盤隱藏起來(lái)
self.dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(12)
def tearDown(self) -> None:
sleep(4)
self.dx.quit()
def test1_tl(self): #進(jìn)入書(shū)架
self.dx.find_element_by_xpath("http://android.widget.TextView[@text='小說(shuō)']").click()
def test2_ss(self): #搜索狼圖騰書(shū)本
self.dx.find_element_by_id("com.baidu.yuedu:id/search_account").click()
sleep(3)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("狼圖騰")
def test3_qlhc(self): #清理緩存
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_setting").click()
self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_clean_cache").click()
def test4_djqd(self): #點(diǎn)擊簽到
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
self.dx.find_element_by_xpath("http://android.widget.TextView[@text='簽到']").click()
def test5_wdgm(self): #我的購(gòu)買
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
self.dx.find_element_by_xpath("http://android.widget.TextView[@text='我的購(gòu)買']").click()
sleep(2)
self.dx.find_element_by_id("com.baidu.yuedu:id/positive").click()
if __name__ == '__main__':
unittest.main()

浙公網(wǎng)安備 33010602011771號(hào)