日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python自動化之如何利用allure生成測試報告

瀏覽:111日期:2022-06-20 15:58:16

Allure測試報告框架幫助你輕松實現”高大上”報告展示。本文通過示例演示如何從0到1集成Allure測試框架。重點展示了如何將Allure集成到已有的自動化測試工程中、以及如何實現報表的優化展示。Allure非常強大,支持多種語言多種測試框架,無論是Java/Python還是Junit/TestNG,其他語言或者框架實現的流程和本文一致,具體配置參照各語言框架規范

安裝

安裝allure

Windows用戶:

scoop install allure (需要先下載并安裝Scoop,該方法無需配置環境變量)

MAC用戶:

通過Homebrew進行自動安裝 brew install allure (如果Homebrew版本比較舊,需要先升級Homebrew,否則安裝的allure版本也很老,可能會與Python插件不兼容)

手動安裝:

可以從官網 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/ 手動下載目前最新版本為2.13.6

python自動化之如何利用allure生成測試報告

下載后解壓并配置環境變量

安裝allure-pytest插件

pip install allure-pytest

allure常用特性

希望在報告中看到測試功能,子功能或場景,測試步驟,包括測試附加信息可以使用@feature,@story,@step,@attach

步驟:

import allure 功能上加@allure.feature('功能名稱') 子功能上加@allure.story('子功能名稱') 步驟上加@allure.step('步驟細節') @allure.attach('具體文本信息'),需要附加的信息,可以是數據,文本,圖片,視頻,網頁 如果只測試部分功能運行的時候可以加限制過濾: pytest 文件名 --allure-features '需要運行的功能名稱' allure特性—feature/story

@allure.feature與@allure.store的關系

feature相當于一個功能,一個大的模塊,將case分類到某個feature中,報告中在behaviore中顯示,相當于testsuite story相當于對應這個功能或者模塊下的不同場景,分支功能,屬于feature之下的結構,報告在features中顯示,相當于testcase feature與story類似于父與子關系

step特性

測試過程中每個步驟,一般放在具體邏輯方法中 可以放在關鍵步驟中,在報告中顯示 在app,web自動化測試中,建議每切換到一個新的頁面當做一個step 用法: @allure.step() 只能以裝飾器的形式放在類或方法上面with allure.step(): 可以放在測試用例方法里面,但測試步驟的代碼需要被該語句包含

運行:

在測試執行期間收集結果

pytest [測試文件] -s -q --alluredir=./result --clean-alluredir

--alluredir這個選項,用于指定存儲測試結果的路徑 --clean-alluredir 這個選項用來清除之前生成的結果

查看測試報告:

方法一:測試完成后查看實際報告,在線看報告,會直接打開默認瀏覽器展示當前報告

allure serve ./result

方法二:從結果生成報告,這是一個啟動tomcat的服務,需要兩個步驟

生成報告:

allure generate ./result -o ./report --clean (注意:--clean用來清除之前已生成的報告)

打開報告:

allure open -h 127.0.0.1 -p 8883 ./report (該方法直接生成一個tomcat服務,可遠程訪問)

舉個例子:

有如下代碼文件

#!/usr/bin/python# -*- coding: UTF-8 -*-'''@author:chenshifeng@file:test_allure.py@time:2020/10/10'''import allureimport pytest@allure.feature(’登錄模塊’)class TestLogin(): @allure.story(’登錄成功’) @allure.title(’登錄成功標題’) def test_login_sucess(self):with allure.step(’步驟1:打開應用’): print(’應用已打開’)with allure.step(’步驟2:進入登錄頁面’): print(’登錄頁面已打開’)with allure.step(’步驟3:輸入用戶名和密碼’): print(’用戶名和密碼輸入成功’)print(’登錄測試用例:登錄成功’) @allure.story(’登錄成功’) def test_login_sucess2(self):assert ’1’ == 1print(’登錄測試用例:登錄成功’) @allure.story(’登錄失敗’) def test_login_failure_a(self):print(’登錄測試用例:登錄失敗,用戶名缺失’) @allure.story(’登錄失敗’) def test_login_failure_b(self):print(’登錄測試用例:登錄失敗,密碼缺失’) @allure.story(’登錄失敗’) def test_login_failure_c(self):with allure.step(’輸入用戶名’): print(’已輸入用戶名’)with allure.step(’輸入密碼’): print(’已輸入密碼’)with allure.step(’點擊登錄’): print(’已點擊登錄’)print(’登錄測試用例:登錄失敗,密碼錯誤’)@allure.feature(’搜索模塊’)class TestSearch(): def test_search1(self):print(’搜索用例1’) TEST_CASE_LINK = ’https://mirrors.huaweicloud.com/’ @allure.testcase(TEST_CASE_LINK,’測試用例連接’) def test_search2(self):print(’搜索用例2’) @allure.step(’搜索步驟’) def test_search3(self):print(’搜索用例3’)

依次執行命令: 

pytest test_allure.py --alluredir=./result --clean-alluredir

allure serve ./result

chenshifengdeMacBook-Pro:testcode chenshifeng$ pytest test_allure.py --alluredir=./result --clean-alluredir============================================================================= test session starts =============================================================================platform darwin -- Python 3.9.0, pytest-6.1.1, py-1.9.0, pluggy-0.13.1rootdir: /Users/chenshifeng/MyCode/PythonCode/SFDSZL/test_pytest, configfile: pytest.iniplugins: allure-pytest-2.8.18collected 8 items test_allure.py .F...... [100%]================================================================================== FAILURES ===================================================================================________________________________________________________________________ TestLogin.test_login_sucess2 _________________________________________________________________________self = <test_allure.TestLogin object at 0x7fef3d5cba90> @allure.story(’登錄成功’) def test_login_sucess2(self):> assert ’1’ == 1E AssertionError: assert ’1’ == 1test_allure.py:27: AssertionError=========================================================================== short test summary info ===========================================================================FAILED test_allure.py::TestLogin::test_login_sucess2 - AssertionError: assert ’1’ == 1========================================================================= 1 failed, 7 passed in 0.07s =========================================================================chenshifengdeMacBook-Pro:testcode chenshifeng$ allure serve ./result Generating report to temp directory...Report successfully generated to /var/folders/p0/3_7fwrvx6n3ftpfd4wjb01300000gn/T/7024790777193223986/allure-reportStarting web server...2020-10-13 21:39:56.174:INFO::main: Logging initialized @6818ms to org.eclipse.jetty.util.log.StdErrLogServer started at <http://192.168.12.100:58977/>. Press <Ctrl+C> to exit

生成的報告:

python自動化之如何利用allure生成測試報告

allure特性-testcase

關聯測試用例(可以直接給測試用例的地址鏈接)

例子:

TEST_CASE_LINK = ’https://mirrors.huaweicloud.com/’@allure.testcase(TEST_CASE_LINK,’測試用例連接’)def test_search(self): print(’搜索用例’)

python自動化之如何利用allure生成測試報告

按重要性級別進行一定范圍測試

通常測試有P0、冒煙測試、驗證上線測試。按重要性級別來執行的,比如上線要把主流程和重要模塊都跑一遍,可通過以下方法解決

通過附加@pytest.mark標記

通過allure.feature,allure.story

也可以通過allure.severity來附加標記

級別: trivial:不重要,輕微缺陷(必輸項無提示,或者提示不規范) minor 不太重要,次要缺陷(界面錯誤與UI需求不符) normal:正常問題,普通缺陷(數值計算錯誤) critical:嚴重,臨界缺陷(功能點缺失) blocker:阻塞,中斷缺陷(客戶端程序無響應,無法執行下一步操作)

使用方法:

 在方法、函數和類上面加 @allure.severity(allure.severity_level.TRIVIAL)

執行:

 pytest -s -v 文件名 --allure-severities normal,critical

舉例說明:

#!/usr/bin/python# -*- coding: UTF-8 -*-'''@author:chenshifeng@file:test_severity.py@time:2020/10/11'''import allureimport pytest# 不加任何標記,默認normaldef test_with_no_severity(): pass# trivial:不重要,輕微缺陷(必輸項無提示,或者提示不規范)@allure.severity(allure.severity_level.TRIVIAL)def test_with_trivial_severity(): pass# minor 級別 不太重要,次要缺陷(界面錯誤與UI需求不符)@allure.severity(allure.severity_level.MINOR)def test_with_minor_severity(): pass# normal:正常問題,普通缺陷(數值計算錯誤)@allure.severity(allure.severity_level.NORMAL)def test_with_normal_severity(): pass# critical:嚴重,臨界缺陷(功能點缺失)@allure.severity(allure.severity_level.CRITICAL)def test_with_ritical_severity(): pass# blocker:阻塞,中斷缺陷(客戶端程序無響應,無法執行下一步操作)@allure.severity(allure.severity_level.BLOCKER)def test_with_blocker_severity(): pass@allure.severity(allure.severity_level.NORMAL)class TestClassWithNormalSeverity(object): # 不加任何標記,默認為同class級別 def test_inside_with_normal_severity(self):pass # 重新設置了critical級別 @allure.severity(allure.severity_level.CRITICAL) def test_inside_with_critical_severity(self):pass

執行:

chenshifengdeMacBook-Pro:testcode chenshifeng$ pytest test_severity.py --alluredir=./result --clean-alluredir -vs============================================================================= test session starts =============================================================================platform darwin -- Python 3.9.0, pytest-6.1.1, py-1.9.0, pluggy-0.13.1 -- /usr/local/bin/python3.9cachedir: .pytest_cacherootdir: /Users/chenshifeng/MyCode/PythonCode/SFDSZL/test_pytest, configfile: pytest.iniplugins: allure-pytest-2.8.18collected 8 items test_severity.py::test_with_no_severity PASSEDtest_severity.py::test_with_trivial_severity PASSEDtest_severity.py::test_with_minor_severity PASSEDtest_severity.py::test_with_normal_severity PASSEDtest_severity.py::test_with_ritical_severity PASSEDtest_severity.py::test_with_blocker_severity PASSEDtest_severity.py::TestClassWithNormalSeverity::test_inside_with_normal_severity PASSEDtest_severity.py::TestClassWithNormalSeverity::test_inside_with_critical_severity PASSED============================================================================== 8 passed in 0.03s ==============================================================================chenshifengdeMacBook-Pro:testcode chenshifeng$ allure serve ./result Generating report to temp directory...Report successfully generated to /var/folders/p0/3_7fwrvx6n3ftpfd4wjb01300000gn/T/17788207943997663035/allure-reportStarting web server...2020-10-13 22:27:49.842:INFO::main: Logging initialized @6620ms to org.eclipse.jetty.util.log.StdErrLogServer started at <http://192.168.12.100:59696/>. Press <Ctrl+C> to exit

python自動化之如何利用allure生成測試報告

終極用例:

百度搜索:

#!/usr/bin/python# -*- coding: UTF-8 -*-'''@author:chenshifeng@file:test_baidudemo.py@time:2020/10/13'''import pytestimport allurefrom selenium import webdriverimport time@allure.testcase(’https://www.github.com’)@allure.feature('百度搜索')@pytest.mark.parametrize(’test_data1’,[’allure’,’pytest’,’unittest’])def test_steps_demo(test_data1): with allure.step(’打開百度網頁’):driver=webdriver.Chrome()driver.get(’http://www.baidu.com’)driver.maximize_window() with allure.step(f’輸入搜索詞:{test_data1}’):driver.find_element_by_id(’kw’).send_keys(test_data1)time.sleep(2)driver.find_element_by_id(’su’).click()time.sleep(2) with allure.step(’保存圖片’):driver.save_screenshot(’./screenshot/baidu.png’)allure.attach.file(’./screenshot/baidu.png’,attachment_type=allure.attachment_type.PNG) with allure.step(’關閉瀏覽器’):driver.quit()

執行:

chenshifengdeMacBook-Pro:testcode chenshifeng$ pytest test_baidudemo.py --alluredir=./result --clean-alluredir -vs============================================================================= test session starts =============================================================================platform darwin -- Python 3.9.0, pytest-6.1.1, py-1.9.0, pluggy-0.13.1 -- /usr/local/bin/python3.9cachedir: .pytest_cacherootdir: /Users/chenshifeng/MyCode/PythonCode/SFDSZL/test_pytest, configfile: pytest.iniplugins: allure-pytest-2.8.18collected 3 items test_baidudemo.py::test_steps_demo[allure] PASSEDtest_baidudemo.py::test_steps_demo[pytest] PASSEDtest_baidudemo.py::test_steps_demo[unittest] PASSED============================================================================= 3 passed in 24.65s ==============================================================================chenshifengdeMacBook-Pro:testcode chenshifeng$ allure serve ./result Generating report to temp directory...Report successfully generated to /var/folders/p0/3_7fwrvx6n3ftpfd4wjb01300000gn/T/18005664130273264423/allure-reportStarting web server...2020-10-13 23:03:39.221:INFO::main: Logging initialized @7360ms to org.eclipse.jetty.util.log.StdErrLogServer started at <http://192.168.12.100:60775/>. Press <Ctrl+C> to exit

報告:

python自動化之如何利用allure生成測試報告

總結

到此這篇關于python自動化之如何利用allure生成測試報告的文章就介紹到這了,更多相關python allure生成測試報告內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产麻豆一区二区三区| 国产成人免费av一区二区午夜| 精品国产亚洲日本| 精品久久在线| 日韩伦理福利| 日韩国产网站| 亚洲三区欧美一区国产二区| 9国产精品视频| 欧美日韩xxxx| 日韩精品一区二区三区免费观看| 模特精品在线| 久久精品国产久精国产| 麻豆国产在线| 视频一区在线视频| 日本精品黄色| 石原莉奈在线亚洲三区| 欧美国产另类| 日韩午夜av| 欧美aⅴ一区二区三区视频| 91精品成人| 国产欧美激情| 精品一区欧美| 欧美国产中文高清| 一本色道精品久久一区二区三区| 国产精品久久久久久模特| 婷婷成人基地| 国内揄拍国内精品久久| 日韩一区二区久久| 麻豆精品视频在线观看| 久久福利毛片| 午夜av不卡| 国产欧美三级| 国产精品毛片一区二区三区| 精品一区二区三区在线观看视频| 中文精品视频| 国产成人免费av一区二区午夜| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线手机中文字幕| 日本va欧美va瓶| 午夜久久免费观看| 国产成人精品三级高清久久91 | 亚洲欧洲一区二区天堂久久| 麻豆免费精品视频| 蜜桃视频一区二区三区在线观看| 久久电影tv| 国产精品亲子伦av一区二区三区| 亚洲一区二区免费看| 中国字幕a在线看韩国电影| 日本欧美一区二区| 国产一级久久| 亚洲第一区色| 四虎成人av| 欧美国产专区| 青青伊人久久| 亚洲精品国产日韩| 香蕉精品视频在线观看| 福利一区二区免费视频| 欧美欧美黄在线二区| 亚洲专区欧美专区| 久久婷婷久久| 欧美xxxx中国| 久久69成人| 国产精品毛片aⅴ一区二区三区| 中文字幕一区二区精品区| 激情自拍一区| 日韩精品免费一区二区三区| 精品网站999| 欧美激情aⅴ一区二区三区 | 国产成人精品免费视| 91嫩草精品| 亚洲三级av| 蜜臀久久99精品久久久久宅男| 精品一区在线| 色婷婷久久久| 欧美亚洲日本精品| 国产精品二区不卡| 国产一区二区三区四区大秀| 欧美激情aⅴ一区二区三区 | 国产九九精品| 日韩精品视频一区二区三区| 亚洲日本在线观看视频| 天堂成人免费av电影一区 | 麻豆亚洲精品| 亚洲综合日韩| 久久成人国产| 日韩精品一二三四| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品日韩| 日韩专区在线视频| 亚洲欧美日韩一区在线观看| 日韩视频二区| 国产亚洲在线观看| 免费中文字幕日韩欧美| 午夜电影亚洲| 亚洲视频播放| 男人的天堂久久精品| 日韩一区二区久久| 国产亚洲一区在线| 免费久久99精品国产| 亚洲三级观看| 青草综合视频| 国产精品久久久久久久免费软件| 国产精品777777在线播放| 国产精品qvod| 国产一区二区三区视频在线| 91视频久久| 国模 一区 二区 三区| 亚洲激情欧美| 国产亚洲毛片在线| 亚洲专区视频| 国产精品一区亚洲| 精品国产三区在线| 成人在线网站| 在线国产一区| 日韩一区欧美二区| 欧美三区不卡| 高清精品久久| 婷婷激情综合| 亚洲区国产区| 国产福利资源一区| 电影天堂国产精品| 香蕉久久久久久久av网站| 亚州欧美在线| 国产精品久久久久久久久久久久久久久 | 国产精品久久免费视频| 精品一区二区三区亚洲| 精品三级久久| 亚洲欧美日韩精品一区二区| 日韩高清一区在线| 日本一二区不卡| 亚州av乱码久久精品蜜桃| 偷拍亚洲精品| 麻豆精品视频在线观看视频| 久久精品播放| 日本一区二区三区中文字幕| 国产一区二区三区久久| 欧美日韩国产在线一区| 欧美综合社区国产| 亚洲日本网址| 亚洲麻豆一区| 国产成年精品| 性一交一乱一区二区洋洋av| 国产精品一区二区免费福利视频| 亚洲a一区二区三区| 亚洲精品少妇| 日本久久综合| 在线免费观看亚洲| 麻豆91精品视频| 午夜国产欧美理论在线播放 | 国产亚洲一卡2卡3卡4卡新区| 亚洲综合电影| 亚洲九九精品| 日韩电影免费网站| 婷婷综合一区| 日韩成人亚洲| 欧美精品福利| 激情综合网址| 国产精品成人一区二区网站软件| 九色精品91| 国产日韩亚洲| 不卡在线一区二区| 国产高清日韩| 久久亚洲二区| 神马午夜在线视频| 91成人在线网站| 国产一区日韩一区| 国产精品亚洲四区在线观看 | 国产精品久久久网站| 1024精品久久久久久久久| 欧美欧美黄在线二区| 在线成人动漫av| 捆绑调教美女网站视频一区| 久久国产99| 国产v综合v| 国产精品对白| 中文字幕av一区二区三区人| 精品亚洲美女网站| 国产精品丝袜在线播放| 免费久久99精品国产自在现线| 手机在线电影一区| 欧美视频一区| 首页国产欧美久久| 欧美gv在线| 精品视频一区二区三区四区五区| 性色一区二区| 成人在线网站| 国产一区一一区高清不卡| 日韩av黄色在线| 人人爽香蕉精品| 亚洲视频综合| 天堂√中文最新版在线| 国产精品啊啊啊| 天堂俺去俺来也www久久婷婷| 蜜桃tv一区二区三区| 都市激情国产精品| 欧美黑人做爰爽爽爽| 日本成人在线网站| 蜜臀va亚洲va欧美va天堂| 香蕉久久精品| 人在线成免费视频|