最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Appium+python+unittest搭建UI自動(dòng)化框架的實(shí)現(xiàn)

 更新時(shí)間:2024年03月27日 10:37:35   作者:咖啡加剁椒⑨  
本文主要介紹了Appium+python+unittest搭建UI自動(dòng)化框架的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

下面以Appium+python+unittest為例介紹UI自動(dòng)化框架的搭建思路

1. 最開始入門級(jí)別的代碼

以登錄頁面舉例,如下:

圖片

最開始的登錄腳本:

圖片

2. 對(duì)元素操作的公用方法進(jìn)行封裝

按照上述代碼寫了很多行,發(fā)現(xiàn)每次操作元素都要寫同樣的代碼,一是啰嗦,二是工作量大,這樣就要將重復(fù)高的操作抽象出來進(jìn)行封裝成類,及把元素定位,元素點(diǎn)擊,元素輸入、頁面滑動(dòng)等方法進(jìn)行封裝,如下代碼:

圖片

圖片

上述代碼只是展示了查找元素的方法,在BaseAction類中封裝元素對(duì)象的重用操作代碼筆者就不貼出來,大家明白思路即可。

3. 測試代碼和測試數(shù)據(jù)分離

開始測試數(shù)據(jù)還是寫在測試代碼中,如果用例多了,后期需要修改數(shù)據(jù),這樣只能在測試代碼中修改,實(shí)際中沒有這樣維護(hù)代碼的,所以需要將測試數(shù)據(jù)和代碼分離,筆者選擇ini配置文件存放數(shù)據(jù)。

那么問題來了,把數(shù)據(jù)放在ini配置文件中,在代碼中怎樣獲取數(shù)據(jù)呢,這就需要將操作配置文件的方法封裝成一個(gè)單獨(dú)的類,即如下代碼

圖片

圖片

通過對(duì)元素操作公用方法的封裝和測試代碼和測試數(shù)據(jù)的分類,優(yōu)化的腳本如下:

存放數(shù)據(jù)的ini配置文件:

app配置:

圖片

存放元素控件:

圖片

存放元素輸入的數(shù)據(jù):

圖片

測試腳本:

圖片

4. 通用的公用類封裝

以上的腳本中,其實(shí)還缺少一些東西,如啟動(dòng)appiumsever,日志記錄,發(fā)送郵件,數(shù)據(jù)庫操作等,這幾種操作都是框架公用的,所以單獨(dú)封裝成類,代碼如下:

appiumsever類:

圖片

log工具類:

圖片

還有發(fā)送郵件類和數(shù)據(jù)庫操作類筆者就不貼出來了,重在大家理解思路即可。

5. 筆者框架分層分享

現(xiàn)在在測試界吹噓的分層自動(dòng)化,意思就是把各種代碼實(shí)現(xiàn)的類根據(jù)不同的功能進(jìn)行分層,自動(dòng)化測試框架包括的元素大致如下:

基于Appium框架運(yùn)用python語言以及unittest單元測試框架,搭建的APP的UI自動(dòng)化框架如下:
AppAuto/:
apk: 存放app的apk安裝包
config: 存放配置文件以及測試數(shù)據(jù),把所有的項(xiàng)目的配置均放在這里,用python支持較好的配置文件格式如ini等進(jìn)行配置。
實(shí)現(xiàn)配置和數(shù)據(jù)與代碼分離。
screenshot: 存放測試用到的圖片以及測試時(shí)用例失敗截圖
log: 存放日志文件,包括運(yùn)行時(shí)日志runtime.log、error.log和appium.log日志
report: 存放生成的html格式的測試報(bào)告文件
src:源碼層
common層: 框架級(jí)公用方法庫
chche.py: 緩存
dbsever.py: 數(shù)據(jù)庫操作封裝公用類
emailsever.py: 發(fā)送郵件服務(wù)封裝公用類
confparser.py: 配置文件解析器
log.py: 日志記錄工具
appiumsever.py: appium服務(wù)公用類
initappdriver.py: 初始化driver類
adbconnect.py: adb連接操作
...
(如果還有框架級(jí)別的公用方法,還可以在該層封裝成類,通過面向?qū)ο蟮姆绞秸{(diào)用即可)
functions層: 用例級(jí)公用方法庫(元素操作公用方法封裝,基于PageObject模式對(duì)控件公用方法封裝,常用業(yè)務(wù)操作封裝)
eleaction.py: 封裝元素操作的一些公共方法
login.py: 登錄操作
...
(該層主要是封裝用例層面的公用方法,常用的操作步驟,針對(duì)PageObject思想對(duì)不同類型的頁面控件元素的操作封裝等)
testcase層: 測試用例層
basecase.py: 測試用例基礎(chǔ)類
testcase1.py: 測試用例1
...
runner層: 測試套件層
testrunner.py: 各種加載測試用例的方法封裝,以及生成報(bào)告
run.py: 執(zhí)行器,整個(gè)框架運(yùn)行該文件即可

下面是筆者搭建的一個(gè)小框架,僅供參考:

圖片

到此這篇關(guān)于Appium+python+unittest搭建UI自動(dòng)化框架的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python搭建自動(dòng)化框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Python圖片處理之圖片裁剪教程

    Python圖片處理之圖片裁剪教程

    這篇博文的目的是從圖片中提取一定的矩形區(qū)域作為新的圖片 簡單來說:我的全家福丟了,所以我想從以前的房間照片里,提取出其中的全家福并重新打印一張(忽視畫質(zhì)問題)現(xiàn)在我就是這么個(gè)目的,需要的朋友可以參考下
    2021-05-05
  • django query模塊

    django query模塊

    這篇文章主要介紹了django query模塊,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python基本數(shù)據(jù)類型練習(xí)題

    python基本數(shù)據(jù)類型練習(xí)題

    這篇文章主要介紹了python基本數(shù)據(jù)類型,Python?中的變量不需要聲明。每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。在?Python?中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內(nèi)存中對(duì)象的類型。下面舉例說明改內(nèi)容,,需要的朋友可以參考一下
    2022-01-01
  • Python 列表去重去除空字符的例子

    Python 列表去重去除空字符的例子

    今天小編就為大家分享一篇Python 列表去重去除空字符的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python實(shí)現(xiàn)二維數(shù)組的對(duì)角線遍歷

    python實(shí)現(xiàn)二維數(shù)組的對(duì)角線遍歷

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)二維數(shù)組的對(duì)角線遍歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作

    python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作

    這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 讀取nii或nii.gz文件中的信息即輸出圖像操作

    讀取nii或nii.gz文件中的信息即輸出圖像操作

    這篇文章主要介紹了讀取nii或nii.gz文件中的信息即輸出圖像操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例

    Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例

    這篇文章主要介紹了Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python httpx的具體使用

    python httpx的具體使用

    本文主要介紹了python httpx的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面

    PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面

    這篇文章主要為大家詳細(xì)介紹了PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評(píng)論

霍城县| 四子王旗| 安丘市| 赤城县| 江阴市| 云和县| 临沂市| 福安市| 大悟县| 绥中县| 游戏| 东海县| 闽清县| 天津市| 固安县| 改则县| 习水县| 武隆县| 利津县| 大庆市| 班戈县| 建始县| 孟连| 涟源市| 报价| 双桥区| 娱乐| 沭阳县| 四川省| 藁城市| 平和县| 永德县| 邢台县| 崇仁县| 哈巴河县| 萨嘎县| 金华市| 蕉岭县| 阿克苏市| 寿光市| 福泉市|