日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试)

發(fā)布時(shí)間:2024/7/5 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、環(huán)境搭建篇

(一)安裝JDK

大家自行安裝

(二)安裝Appium

1、appium desktop

2、appium server

> brew install node # get node.js

> npm install -g appium # get appium

> npm install wd # get appium client

> appium & # start appium

> node your-appium-test.js

(三)iOS真機(jī)環(huán)境配置

1、Homebrew

如果沒有安裝過Homebrew,先安裝

2、npm

3、安裝依賴庫

brew install libimobiledevice --HEAD? #可獲取ios真機(jī)設(shè)備的信息

sudo npm install -g ios-deploy --unsafe-perm=true #如果要在iOS10+的系統(tǒng)上使用appium,則需要安裝ios-deploy

brew install carthage

brew install usbmuxd

4、appium-doctor安裝

npm install appium-doctor -g

安裝后執(zhí)行appium-doctor –ios指令,可以查看與iOS相關(guān)配置是否完整,下圖是全部配置都成功,如果出現(xiàn)有一項(xiàng)不正確在執(zhí)行一次就可以,或者直接跳過

appium-doctor –ios

5、更新Appium中的WebDriverAgent

2)cd進(jìn)入下載后的WebDriverAgent文件

3)執(zhí)行./Scripts/bootstrap.sh

4)用Xcode打開WebDriverAgent.xcodepro文件

配置WebDriverAgentLib和WebDriverAgentRunner的證書

如圖所示配置,

修改bundleid,隨便修改,只要不跟已經(jīng)注冊(cè)過的沖突就行了,要求唯一

team選擇真實(shí)的開發(fā)者賬號(hào)

手機(jī)連上電腦

選擇自己的手機(jī)

然后點(diǎn)擊test運(yùn)行

?

如果出現(xiàn)如下圖錯(cuò)誤,在ios設(shè)備-設(shè)置-通用-描述文件和設(shè)備管理,信任一下開發(fā)者,再次test運(yùn)行就不會(huì)出現(xiàn)錯(cuò)誤了

運(yùn)行成功后,在xcode控制臺(tái)可以打印出ip地址和端口號(hào)

進(jìn)入到Appium中的WebDriverAgent目錄,目錄路徑如

/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/

將自己下載并編譯后的WebDriverAgent替換Appium原有的WebDriverAgent

(六)利用Appium-Python-Client進(jìn)行iOS的自動(dòng)化測(cè)試

這一步是將python與appium關(guān)聯(lián)起來

在終端輸入:pip install Appium-Python-Client,安裝即可

(七)Appium中開啟iOS webview調(diào)試進(jìn)行h5自動(dòng)化測(cè)試

在做ios的h5頁面測(cè)試時(shí),測(cè)試包必須要使用develop證書打包,app要是debug包,才可以進(jìn)行真機(jī)測(cè)試

實(shí)踐:如果在ios真機(jī)的webview頁面執(zhí)行appium自動(dòng)化,需要做以下準(zhǔn)備:

1)安裝ios_webkit_debug_proxy,在執(zhí)行webview自動(dòng)化時(shí)必須啟動(dòng)該服務(wù)

a.brew install ios-webkit-debug-proxy

2)運(yùn)行ios-webkit-debug-proxy

a.官方提供的命令:ios_webkit_debug_proxy -c UUID:27753 -d

b.使用chrome dev-tools調(diào)試

i.運(yùn)行命令

ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html

ii.根據(jù)日志提示,獲得端口并打開頁面對(duì)應(yīng)端口頁面,如lcoalhost:9221

iii.點(diǎn)擊設(shè)備提示拷貝鏈接到地址欄即可訪問;

c.使用safari調(diào)試

i.打開mac上的safari瀏覽器開發(fā)者模式

ii.打開設(shè)備上的webview頁面

iii.點(diǎn)擊safari瀏覽器菜單中的開發(fā)-device,選擇進(jìn)程;

在appium中使用ios-webkit-debug-proxy:

第一種方式:set the desired capability,加上"startIWDP":true,

// example desired capabilities

{

"browserName":"Safari",

"platformName":"iOS",

"deviceName":"iPhone 7",

"automationName":"XCUITest",

"startIWDP":true,

"udid":"auto"

}

第二種方式:直接手動(dòng)啟動(dòng)ios-webkit-debug-proxy,然后再執(zhí)行自動(dòng)化,注意此時(shí)需要制定端口27753(appium默認(rèn)iwdp端口為這個(gè))以及設(shè)備ID,即

ios_webkit_debug_proxy -c 17d5c2ae122f79a23fbd29168e0948dce22e8ce5:27753 -d

二、元素定位方法篇

(一)通過weidtor定位元素

1)安裝

終端中輸入,安裝weditor

pip install weditor

2)啟動(dòng)

注意:先要運(yùn)行webdriveragent

然后終端輸入命令:python -m weditor

點(diǎn)擊connect后,出現(xiàn)手機(jī)畫面,reload是同步手機(jī)畫面

點(diǎn)擊界面元素,右側(cè)出現(xiàn)該元素的定位信息

(二)通過appium desktop定位

1、運(yùn)行Appium-Desktop,點(diǎn)擊start server,開啟server

2、點(diǎn)擊Start Inspector Session按鈕

3、配置Desired Capabilities

如何獲取設(shè)備信息?

設(shè)備連接上電腦,然后在終端輸入idevice_id -l,就可以顯示當(dāng)前設(shè)備的udid

ideviceinfo顯示當(dāng)前設(shè)備的信息,可以查看當(dāng)前的deviceName, platformName

SHAPE \* MERGEFORMAT

ideviceinstaller -l查看當(dāng)前設(shè)備所有安裝的app的信息

配置好信息后,點(diǎn)擊start session

運(yùn)行成功后,會(huì)彈出一個(gè)控制界面,在該界面中可以控制手機(jī)上正在運(yùn)行的程序,可以定位元素

三、python+appium+ios,自動(dòng)化測(cè)試實(shí)踐

(一)新建文件test.py

(二)簡(jiǎn)單自動(dòng)化腳本編寫

#encoding=utf-8

import time

import os

import unittest

from appium import webdriver

#初始化

class MyTestCase(unittest.TestCase):

def setUp(self):

desired_caps = {

'platformName': 'iOS',

'deviceName': 'iphone',

'platformVersion': '12.4',

'bundleId' : 'com.jack.TongHua',

'udid' : 'bf5ffb03be1c90e05665f41dd648b8fb60a0c2c0', 'startIWDP':'true'

}

#初始化驅(qū)動(dòng)

self.driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

def testRefresh(self):

#點(diǎn)擊刷新按鈕

self.driver.find_element_by_accessibility_id("btn update").click()

def tearDown(self):

#退出

self.driver.quit()

if __name__ == '__main__':

unittest.main()

1、對(duì)類MyTestCase添加setUp函數(shù)(這是測(cè)試用例執(zhí)行前的準(zhǔn)備動(dòng)作,負(fù)責(zé)告訴appium監(jiān)聽那個(gè)端口、與那個(gè)手機(jī)連接、安裝那個(gè)應(yīng)用等信息)

2、對(duì)類MyTestCase添加TearDown函數(shù)(這是測(cè)試用例執(zhí)行結(jié)束后的動(dòng)作,可以執(zhí)行保存執(zhí)行結(jié)果等操作)

(三)腳本寫好后,先要運(yùn)行webdriveragent

方法一:用xcode的運(yùn)行webdriveragent

方法二:使用命令行運(yùn)行webdriveragent

先切到webdriveragent目錄下,然后輸入xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id='bf5ffb03be1c90e05665f41dd648b8fb60a0c2c0' test

(四)執(zhí)行自動(dòng)化測(cè)試腳本

(五)pyhton+appium+iOS,遍歷真機(jī)的webview

1、運(yùn)行ios_webkit_debug_proxy

ios_webkit_debug_proxy -c bf5ffb03be1c90e05665f41dd648b8fb60a0c2c0:27753 -d

2、driver.contexts獲得頁面所有context,這個(gè)方法會(huì)將context存在list里,打印出list內(nèi)容,查看你要的webview在第幾個(gè),用switch_to.context()切換到那個(gè)webview即可,代碼如下

#假設(shè)我的目標(biāo)webview存在list里的第三個(gè)

myWebview = self.driver.context[2]

self.driver.switch_to.context(myWebview)

這樣就切換到了目標(biāo)webview,接下來就可以像web自動(dòng)化一樣,操作html元素了。

3、怎么得到元素屬性

1).啟動(dòng)webkit服務(wù),并指定谷歌瀏覽器進(jìn)行監(jiān)聽

ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html

2).運(yùn)行用例代碼,停留在含webview的頁面

3).谷歌瀏覽器地址輸入http://127.0.0.1:92223,就可以看到手機(jī)的webview url

4)將url復(fù)制出來,就可以像定位web元素一樣去定位h5元素

總結(jié)

以上是生活随笔為你收集整理的手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。