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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

pytest allure测试报告_Appium+pytest+allure+jenkins如何实现多台手机连接

發(fā)布時(shí)間:2025/4/5 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pytest allure测试报告_Appium+pytest+allure+jenkins如何实现多台手机连接 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

很多人可能想到的是多線程(threading)。

今天分享一種比多線程更簡(jiǎn)單的方法,雖然不是多臺(tái)手機(jī)同時(shí)運(yùn)行,但可以連接多臺(tái)手機(jī)依次運(yùn)行。

大致的運(yùn)行方式是:001號(hào)測(cè)試用例:A手機(jī),B手機(jī)...,002號(hào)測(cè)試用例:A手機(jī),B手機(jī)...

環(huán)境準(zhǔn)備

◆ appium的安裝:adt,nodejs,appium的python庫(kù),appium server◆ pytest的安裝:pytest◆ allure的安裝:allure的python庫(kù)pytest-allure-adaptor◆ jenkins上插件的安裝 ◆ jenkins的安裝:windows上的安裝◆ 手機(jī)/模擬器:華為榮耀暢玩5C,夜神模擬器

配置改寫(xiě),以上課所寫(xiě)的前程貸的自動(dòng)化框架為主。

框架的分層如下:

在上述框架中,我們的配置信息存在Caps目錄下的Caps.yaml中。

譬如這樣:

這只是一臺(tái)手機(jī)的設(shè)備信息和連接信息,

如果我們需要兩臺(tái)甚至多臺(tái),就需要把它們的信息都寫(xiě)入yaml文件,

每個(gè)手機(jī)的信息用一個(gè)列表描述。

注意:

01上述yaml文件中多了deviceDesc和udid,前者是我們用來(lái)區(qū)分不同的手機(jī),后者是appium用來(lái)區(qū)分不同的手機(jī)

02 給不同的手機(jī)設(shè)置不同的端口,榮耀暢玩5C使用的是4723,夜神模擬器使用的是4726


BaseDriver是公共的driver類,通過(guò)讀取yaml配置信息,生成并返回driver對(duì)象。

其基本的傳遞路徑是:

Caps.yaml-->BaseDriver.py-->conftest:設(shè)置不同的fixture,返回driver,

因此它是溝通配置信息和conftest的橋梁,

既然配置信息變了,相應(yīng)的BaseDriver的讀取也要改變,

改寫(xiě)前的BaseDriver.py,具體代碼如下:

由于是多臺(tái)手機(jī),每個(gè)手機(jī)的通過(guò)配置信息里的deviceDesc來(lái)區(qū)分,

BaseDriver類中的base_driver函數(shù)需要設(shè)置一個(gè)變量device來(lái)區(qū)別不同的手機(jī),

這個(gè)device是我們傳入的,如果我們傳入的是device="YeShen",還是用之前的代碼的話,得到將是全部的信息。

有必要通過(guò)if判斷篩選下,只取對(duì)應(yīng)device的配置信息。

conftest是比較關(guān)鍵的一部,

因?yàn)樗鼤?huì)調(diào)用BaseDriver()類中的base_driver()方法,

以往我們的conftest是這樣定義的:

但是現(xiàn)在不同了,這個(gè)basedriver()函數(shù)中必須傳入一個(gè)device的實(shí)參,

這個(gè)實(shí)參是從哪里獲得的?

pytest的fixture為我們提供了一種參數(shù)化的操作,

fixture可以帶入?yún)?shù)params,依賴于這個(gè)fixture的一套測(cè)試會(huì)根據(jù)參數(shù)的不同運(yùn)行多次,

而被裝飾函數(shù)中通過(guò)特殊的request對(duì)象來(lái)訪問(wèn)每個(gè)參數(shù):request.param訪問(wèn)的是列表中的每個(gè)元素

allure可以設(shè)置不同的特性:

◆ allure.feature(功能點(diǎn))◆ allure.story(子功能點(diǎn))◆ with allure.step(步驟)◆ allure.attach(附件)等

結(jié)合pytest,一個(gè)收集測(cè)試用例,一個(gè)生成測(cè)試報(bào)告。

現(xiàn)在通過(guò)allure在測(cè)試用例中給測(cè)試報(bào)告增加一些特性。

啟動(dòng)多個(gè)appium-server

之前有想過(guò)python代碼執(zhí)行appium命令的形式去自動(dòng)啟動(dòng)appium服務(wù),

但通過(guò)npm或cnpm安裝appium命令行都有報(bào)錯(cuò),只能手動(dòng)啟動(dòng)。

很簡(jiǎn)單,打開(kāi)兩個(gè)appium客戶端,一個(gè)設(shè)置端口為4723,一個(gè)4726,啟動(dòng)即可。

這方面的內(nèi)容不做過(guò)多介紹,只看下構(gòu)建和構(gòu)建后的操作,

其中allure-results是pytest運(yùn)行測(cè)試用例生成的xml報(bào)告所在的目錄,

jenkins上的Allure Commandline插件會(huì)自動(dòng)解析xml,生成對(duì)應(yīng)的html報(bào)告

十分美觀吧,右上角的TREND顯示的是多次運(yùn)行結(jié)果的趨勢(shì),

第7次到第19次都是5個(gè)fail,第20次6個(gè)fail

除此之外,allure報(bào)告的Behaviors功能中可以看到每個(gè)測(cè)試用例對(duì)應(yīng)的測(cè)試步驟、功能、子功能等,

測(cè)試報(bào)告還會(huì)標(biāo)記出同一個(gè)測(cè)試用例是哪臺(tái)手機(jī)執(zhí)行的,

如下圖:

TestLogin.test_login_errorPasswd[Honor_5C]

代表的執(zhí)行機(jī)是榮耀暢玩5C。

jenkins面板也展示了多次運(yùn)行結(jié)果的趨勢(shì)。


pytest中fixture的參數(shù)化雖然能夠?qū)崿F(xiàn)多臺(tái)手機(jī)同時(shí)連接,但是運(yùn)行并不是同時(shí)的。

因?yàn)閞equest.param讀取參數(shù)列表是遍歷讀取的,

所以造成了一個(gè)測(cè)試用例,手機(jī)A先執(zhí)行,手機(jī)B后執(zhí)行(假設(shè)params=["手機(jī)A", "手機(jī)B"]),

要想真正做到多臺(tái)手機(jī)同時(shí)運(yùn)行,就要用到多線程。

本文轉(zhuǎn)載自檸檬班社區(qū),未經(jīng)允許謝絕轉(zhuǎn)載

http://www.lemfix.com/topics/83

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的pytest allure测试报告_Appium+pytest+allure+jenkins如何实现多台手机连接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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