国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

這篇具有很好參考價(jià)值的文章主要介紹了Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一 . 前言

由于IOS系統(tǒng)比Android系統(tǒng)相對封閉,所以進(jìn)行IOS自動(dòng)化測試也是相對復(fù)雜,不過大家不用擔(dān)心,小編已經(jīng)幫你們踩了大部分坑,網(wǎng)上大部分文章都是CV過來的,沒有真正的從0到1落地,我們需要具備開源精神,只為讓更多的小伙伴們少走彎路,歡迎大家在留言區(qū)評論交流!

二 . 環(huán)境依賴

*mac
*xcode
*python
*pycharm
*appium
*pytest
*jdk1.8
*allure
*git
*node
*jenkins
*npm or cnpm
*ios-deploy
*brew
*libimobiledvice
*carthage
*ios phone
*apple id
*webdriveragent

三 . 環(huán)境配置

1. 安裝xcode

方式一:

如果已經(jīng)升級至最新macOS系統(tǒng),可以直接通過App Store安裝最新版本的Xcode

方式二:

如果不想升級最新macOS系統(tǒng),可以使用離線包的形式安裝,安裝地址:Xcode 版本(官方)

2. 安裝python

小編這邊采用的是python3.9,需要使用其他版本也可以,建議3.6+,安裝地址:python3.9(官方)

3. 安裝pycharm

下載社區(qū)版本免費(fèi),一般滿足我們?nèi)粘J褂?,安裝地址:pycharm(官方)

4. 安裝appium

小編這邊采用的是appium 1.17.1,下載 Appium-mac-1.17.1.dmg 包即可, 安裝地址:github appium 1.17.1(官方)

4.1 下載appium命令版,需要先安裝npm,在文章后面有介紹

版本:1.17.1
終端:sudo npm install --unsafe-perm=true --allow-root -g appium@1.17.1

4.2 配置appium GUI版本

版本:1.17.1
參數(shù):{
“bundleId”: “被測應(yīng)用”,
“platformName”: “iOS”,
“platformVersion”: “15.2”,
“deviceName”: “設(shè)備名稱”,
“automationName”: “XCUITest”,
“udid”: “可以使用xcode查詢”
}

5. 安裝pytest

打開已安裝的Pycharm左下角,在Terminal打開當(dāng)面目錄下的命令行窗口,輸入命令:

pip install pytest

6. 安裝jdk1.8

6.1 使用allure報(bào)告或Android SDK必須依賴Java環(huán)境,下載dmg包進(jìn)行安裝即可,安裝地址: oracle jdk1.8(官方)
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

6.2. 配置JDK環(huán)境變量

6.2.1 如果此前建過.bash_profile隱藏配置文件,直接在終端輸入$ open -e .bash_profile打開文件即可,如果沒有則輸入下方命令

$ touch .bash_profile

6.2.2 輸入下方命令打開此文件

$ open -e .bash_profile

6.2.3 打開.bash_profile文件輸入環(huán)境配置參數(shù),將下方參數(shù)放入其中,并保存(如果用的是vi打開的按esc 輸入:wq退出如果是文本直接command + S)退出即可,JAVA_HOME是JDK安裝路徑,然后保存

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH

6.2.4 輸入以下命令使配置文件生效

$ source .bash_profile

6.2.5 最后檢查下環(huán)境變量是否配置成功

$ echo $JAVA_HOME

Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地
6.2.6 查詢JDK版本信息

$ java -version

Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地
7. 安裝allure

7.1 allure官網(wǎng)

	http://allure.qatools.ru/

7.2 allure下載地址,小編版本使用的是2.19.0

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.19.0/

7.3 allure運(yùn)行原理

allure屬于第三方工具,展現(xiàn)更好看的測試報(bào)告,allure服務(wù)兼容pytest生成allure能識(shí)別的json文件,類似于 Apache ECharts你負(fù)責(zé)提供 ECharts能識(shí)別的json數(shù)據(jù), ECharts負(fù)責(zé)展示不同的可視化圖表

7.4 allure使用

7.4.1 下載zip包,默認(rèn)在mac /users/用戶/Downloads,然后解壓到任意目錄

7.4.2 配置環(huán)境變量,打開終端

$ open -e .bash_profile

添加此內(nèi)容,和上面配置JDK環(huán)境變量一樣

#allure 2.19.0
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
export PATH=${PATH}:/Users/用戶/allure-2.19.0/bin

PATH更換自己的,然后保存退出即可

7.4.3 驗(yàn)證allure環(huán)境變量是否安裝成功

$ allure --version

Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

7.4.4 結(jié)合pytest生成json測試文件

7.4.4.1 安裝三方庫

pip install allure-pytest

7.4.4.2 生成json測試文件,在pytest.ini文件中配置

[pytest]
addopts = -vs --alluredir ./temp

會(huì)自動(dòng)生成json文件
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

在主函數(shù)中添加產(chǎn)生報(bào)告的代碼 ,注意:路徑應(yīng)該與json測試文件路徑保持一致

if __name__ == '__main__':
    pytest.main(["-vs", "test_case/test_all.py", '--clean-alluredir', '--alluredir=./temp'])
    os.system("allure generate ./temp -o ./report --clean")

打開自動(dòng)生成的report目錄下index.html即可
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

8. 安裝git

方式一:

一般Xcode安裝好后不需要再單獨(dú)安裝Git,Xcode自帶git

方式二:

可以先安裝后面的brew再安裝git,終端輸入該命令即可

brew install git

驗(yàn)證git是否安裝成功,終端輸入該命令即可

git --version

Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

9. 安裝node

說明:安裝就有npm命令了,可以使用npm -v 查詢是否安裝成功,node -v 驗(yàn)證node.js版本
地址: node.js(官方)
版本:12.15.0

10. 安裝jenkins

使用brew安裝可能會(huì)存在更新的問題,小編這邊使用包安裝方式
安裝地址:jenkins(官方)
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

11. 安裝npm or cnpm

說明:中國版的npm,速度更快
版本:5.2.0
終端:npm install -g cnpm --registry=https://registry.npm.taobao.org
提示:added 845 packages from 976 contributors in 11.97s,表示安裝成功

12. 安裝ios-deploy

說明:用于轉(zhuǎn)發(fā)xcode的ip地址,對于一些國外的ios我們需要轉(zhuǎn)發(fā)端口
終端:cnpm install -g ios-deploy

提示:** BUILD SUCCEEDED **表示安裝成功

13. 安裝brew

說明:使用終端命令brew -v去查看電腦是否已經(jīng)安裝,一般mac會(huì)自帶,如果沒有自行安裝
版本:1.9.1
終端:ruby <(curl -fsSKL raw.github.com/mxcl/homebrew/go)

14. 安裝libimobiledvice

說明:真機(jī)調(diào)試,檢查是否連接設(shè)備,類似于安卓adb
終端:brew install --HEAD libimobiledevice

15. 安裝carthage

說明:webdiverAgent需要
終端:brew install carthage

16. 注冊apple id

說明:app store下載xcode時(shí)會(huì)跳出登錄彈框
使用公司公共賬號(hào)也可以,后續(xù)該賬號(hào)需要加入公司開發(fā)者團(tuán)隊(duì),一個(gè)團(tuán)隊(duì)可以加100個(gè)開發(fā)者賬號(hào)
注冊地址:注冊apple id(官方)

17. 安裝webdriveragent

原理:appium->WebDriverAgent->XCUITest
iOS 9 之前一直以 instruments 下的 UIAutomation 為驅(qū)動(dòng)底層技術(shù)(弊端由于 instruments 的限制,單臺(tái) mac 只能對應(yīng)單臺(tái)設(shè)備);
iOS 9.3 時(shí)代推出 XCUITest 工具,用以替代 UIAutomation;
iOS 10 時(shí)代蘋果直接廢棄了 UIAutomation,F(xiàn)acebook 推出 WebDriverAgent(實(shí)現(xiàn)的 server 能夠支持單臺(tái) mac 對應(yīng)多個(gè)設(shè)備);
Appium 在 iOS 9.3 后全面采用 WebDriverAgent 的方案;
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地
facebook下載地址:https://github.com/facebookarchive/WebDriverAgent
WebDriverAgent2年前facebook已不在維護(hù)!?。”救耸褂胊ppium分支
appium下載地址:https://github.com/appium/WebDriverAgent
下載完成后終端進(jìn)入該目錄(你桌面WebDriverAgent項(xiàng)目的地址):cd /Users/用戶名/Desktop/WebDriverAgent-master
終端:./Scripts/bootstrap.sh
最后使用xcode打開WebDriverAgent項(xiàng)目的WebDriverAgent.xcodeproj文件進(jìn)行配置

Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地配置完成之后,真機(jī)連接mac,使用command+u運(yùn)行,ios上會(huì)自動(dòng)安裝一個(gè)runner程序,這是我們需要去手機(jī)設(shè)置描述文件信任該程序,運(yùn)行成功后xcode控制臺(tái)打印已下信息表示成功
Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地

18. 使用腳本獲取driver對象

18.1 添加依賴 requirements.txt

allure_python_commons==2.8.19
Appium_Python_Client==0.46
HTMLTestRunner==0.8.0
pytest==6.2.5
selenium==3.141.0

18.2 恭喜你,到最后一步了,一段簡單的代碼,只是為了測試IOS自動(dòng)化測試環(huán)境是否搭建成功

import time
from appium import webdriver
from tools.LoggerUtil import LoggerUtil

logger = LoggerUtil()

class InitDevices(object):
    driver: webdriver = None

    @classmethod
    def start(cls, port: str, ip: str = '127.0.0.1', **kwargs):
        caps = {
            'bundleId': '填寫你需要測試的app bundleId ',
            'platformName': 'iOS',
            'platformVersion': '14.4',
            'deviceName': 'iPhone',
            'automationName': 'XCUITest',
            'udid': '00008020-001434C42232002E',
            'newCommandTimeout': '21600'
        }
        if kwargs:
            for k, v in kwargs.items():
                caps[k] = v
                logger.info("{} 我是主函數(shù)的驅(qū)動(dòng)參數(shù)".format(caps))
            cls.driver = webdriver.Remote(f"http://{ip}:{port}/wd/hub", caps)
            cls.driver.implicitly_wait(10)
            logger.info("---連接設(shè)備成功---")
            logger.info("{} 我是主函數(shù)的driver".format(cls.driver))
            return cls.driver
        else:
            logger.info("{} 我是主函數(shù)的驅(qū)動(dòng)參數(shù)".format(caps))
            cls.driver = webdriver.Remote(f"http://{ip}:{port}/wd/hub", caps)
            cls.driver.implicitly_wait(10)
            logger.info("---連接設(shè)備成功---")
            logger.info("{} 我是主函數(shù)的driver".format(cls.driver))
            return cls.driver

    @classmethod
    def quit(cls):
        """
        關(guān)閉driver對象
        :return:
        """
        cls.driver.quit()

if __name__ == '__main__':
    comm = InitDevices.start('4723', noReset=True)
    time.sleep(1)
    comm.quit()

注意:連接設(shè)備后一定要quit()關(guān)閉連接,不然下次連接會(huì)出現(xiàn)端口占用的情況,本地運(yùn)行不報(bào)錯(cuò),控制臺(tái)返回driver對象即成功了!

Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地文章來源地址http://www.zghlxwxcb.cn/news/detail-445697.html

到了這里,關(guān)于Appium+Python+Pytest+Allure+Git+Node+Jenkins+Xcode IOS自動(dòng)化測試從0到1落地的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • APP自動(dòng)化測試-Python+Appium+Pytest+Allure框架實(shí)戰(zhàn)封裝(詳細(xì))

    APP自動(dòng)化測試-Python+Appium+Pytest+Allure框架實(shí)戰(zhàn)封裝(詳細(xì))

    pytest只是單獨(dú)的一個(gè)單元測試框架,要完成app測試自動(dòng)化需要把pytest和appium進(jìn)行整合,同時(shí)利用allure完成測試報(bào)告的產(chǎn)出。 編寫常規(guī)的線性腳本具體的步驟如下: 1、設(shè)計(jì)待測試APP的自動(dòng)化測試用例 2、新建app測試項(xiàng)目 3、配置conftest.py文件等 4、編寫整體app測試用例運(yùn)行文件

    2024年02月14日
    瀏覽(17)
  • Python、Pytest、Allure、Selenium和Jenkins實(shí)現(xiàn)自動(dòng)化測試集成實(shí)例

    Python、Pytest、Allure、Selenium和Jenkins實(shí)現(xiàn)自動(dòng)化測試集成實(shí)例

    下方查看歷史精選文章 重磅發(fā)布 - 自動(dòng)化框架基礎(chǔ)指南pdfv1.1 大數(shù)據(jù)測試過程、策略及挑戰(zhàn) 測試框架原理,構(gòu)建成功的基石 在自動(dòng)化測試工作之前,你應(yīng)該知道的10條建議 在自動(dòng)化測試中,重要的不是工具 本文將介紹如何使用Python、Pytest、Allure、Selenium和Jenkins實(shí)現(xiàn)測試自動(dòng)

    2024年02月09日
    瀏覽(91)
  • pytest+requests+Python3.7+yaml+Allure+Jenkins+docker實(shí)現(xiàn)接口自動(dòng)化

    pytest+requests+Python3.7+yaml+Allure+Jenkins+docker實(shí)現(xiàn)接口自動(dòng)化

    目錄 接口自動(dòng)化測試框架(用例自動(dòng)生成) 項(xiàng)目說明 技術(shù)棧 環(huán)境部署 框架流程圖與目錄結(jié)構(gòu)圖及相關(guān)說明 1、框架流程圖如下 2、代碼目錄結(jié)構(gòu)圖如下 關(guān)聯(lián)詳解 函數(shù)助手詳解 代碼設(shè)計(jì)與功能說明 1、定義運(yùn)行配置文件 runConfig.yml 2、接口配置文件 apiConfig.ini 3、測試用例的設(shè)

    2024年02月09日
    瀏覽(699)
  • 【自動(dòng)化測試】Pytest+Appium+Allure 做 UI 自動(dòng)化的那些事

    【自動(dòng)化測試】Pytest+Appium+Allure 做 UI 自動(dòng)化的那些事

    文本主要介紹下 Pytest+Allure+Appium 記錄一些過程和經(jīng)歷。 法主要用了啥: Python3 Appium Allure-pytest Pytest Appium 不常見卻好用的方法 Appium 直接執(zhí)行 adb shell 方法 #Appium 啟動(dòng)時(shí)增加 --relaxed-security 參數(shù) Appium 即可執(zhí)行類似adb shell的方法 appium -p 4723 --relaxed-security #使用方法 def adb_shell(se

    2024年01月25日
    瀏覽(88)
  • Yaml版接口自動(dòng)化詳細(xì)講解(Python + pytest + allure + log + yaml + mysql + redis + 釘釘通知 + Jenkins)

    目錄 框架介紹 框架結(jié)構(gòu) 框架功能講解 common? # 配置 ????????config.yaml? # 公共配置 ????????setting.py? #?環(huán)境路徑存放區(qū)域 data? #?測試用例數(shù)據(jù) Files? #?上傳文件接口所需的文件存放區(qū)域 logs? #?日志層 report? # 測試報(bào)告層 test_case? # 測試用例代碼 ????????__init

    2024年02月13日
    瀏覽(52)
  • 【Pytest實(shí)戰(zhàn)】Pytest+Allure+Jenkins自動(dòng)化測試框架搭建

    【Pytest實(shí)戰(zhàn)】Pytest+Allure+Jenkins自動(dòng)化測試框架搭建

    ??作者簡介: 小曾同學(xué).com,一個(gè)致力于測試開發(fā)的博主??,主要職責(zé):測試開發(fā)、CI/CD 如果文章知識(shí)點(diǎn)有錯(cuò)誤的地方,還請大家指正,讓我們一起學(xué)習(xí),一起進(jìn)步。?? 座右銘:不想當(dāng)開發(fā)的測試,不是一個(gè)好測試??。 如果感覺博主的文章還不錯(cuò)的話,還請點(diǎn)贊、收藏哦

    2024年02月15日
    瀏覽(96)
  • 基于docker搭建pytest自動(dòng)化測試環(huán)境(docker+pytest+jenkins+allure)

    基于docker搭建pytest自動(dòng)化測試環(huán)境(docker+pytest+jenkins+allure)

    這里我以ubuntu18為例 如果有docker環(huán)境,可以直接拉取我打包好的鏡像 docker pull ziyigun/jenkins:v1.0 1.1 安裝docker 1.2 配置鏡像加速 bug1:ExecStart=/usr/bin/dockerd -H fd:// 如果發(fā)現(xiàn)docker啟動(dòng)或者重啟報(bào)錯(cuò): ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILU

    2024年02月12日
    瀏覽(118)
  • Pytest+selenium+allure+Jenkins自動(dòng)化測試框架搭建及使用

    Pytest+selenium+allure+Jenkins自動(dòng)化測試框架搭建及使用

    一、 ? ?環(huán)境搭建 1. ? ?Python下載及安裝 Python可應(yīng)用于多平臺(tái)包括windows, Linux 和 Mac OS X, 本文主要介紹windows環(huán)境下。你可以通過終端窗口輸入 \\\"python\\\" 命令來查看本地是否已經(jīng)安裝Python以及Python的安裝版本。 ? ? 如未安裝python, 推薦下載python 3.8.3以上版本,本文主要介紹window

    2024年01月18日
    瀏覽(99)
  • 測開新手:pytest+requests+allure自動(dòng)化測試接入Jenkins學(xué)習(xí)

    測開新手:pytest+requests+allure自動(dòng)化測試接入Jenkins學(xué)習(xí)

    2024軟件測試面試刷題,這個(gè)小程序(永久刷題),靠它快速找到工作了?。ㄋ㈩}APP的天花板) 最近在這整理知識(shí),發(fā)現(xiàn)在pytest的知識(shí)文檔缺少系統(tǒng)性,這里整理一下,方便后續(xù)回憶。 在python中,大家比較熟悉的兩個(gè)框架是unittest和pytest: Unittest是Python標(biāo)準(zhǔn)庫中自帶的單元測

    2024年02月01日
    瀏覽(100)
  • pytest + yaml 框架 -60.git+jenkins+allure+釘釘通知反饋

    pytest + yaml 框架 -60.git+jenkins+allure+釘釘通知反饋

    當(dāng)我們自動(dòng)化用例寫完后,接下來就是如何運(yùn)行用例,生成報(bào)告以及反饋通知了。 如果你們公司已經(jīng)有jenkins了,那么直接集成到j(luò)enkins上構(gòu)建你的自動(dòng)化任務(wù)是非常方便的。 第一步,將寫好的自動(dòng)化用例,上傳到本公司的git倉庫。 在jenkins上創(chuàng)建一個(gè)自由風(fēng)格的項(xiàng)目 源碼管理

    2024年02月04日
    瀏覽(429)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包