Allure
Downloading and Configuring Environment
1. 下載 Allure: https://github.com/allure-framework/allure2/releases
2.解壓到allure-commandline目錄
3.環(huán)境配置:先進(jìn)入bin目錄陋葡,運(yùn)行allure.bat侣颂,然后添加環(huán)境變量PATH(\安裝路徑\allure-commandline\bin).注意:前面要加上“.;”
4.?cmd - allure--version,出現(xiàn)版本號(hào)即為安裝成功
運(yùn)行測(cè)試用例?pytest.main(["-m","login","-s","-q","--alluredir","./report"]) "-m": 標(biāo)記用例"login": 被標(biāo)記需要執(zhí)行用例"-s":允許終端在測(cè)試運(yùn)行時(shí)輸出某些結(jié)果"-q"簡(jiǎn)化輸出結(jié)果"--alluredir": 生成allure指定語(yǔ)法"./report":生成報(bào)告的路徑
(參考:https://blog.csdn.net/wwq_1111/article/details/51242011; https://docs.qameta.io/allure/)
Pytest?
python通用測(cè)試框架大多數(shù)人用的是unittest+HTMLTestRunner。pytest有豐富的plugins也很好用.Pytest 是一個(gè)非常成熟的全功能的Python測(cè)試框架,主要有以下幾個(gè)特點(diǎn):能夠支持簡(jiǎn)單的單元測(cè)試和復(fù)雜的功能測(cè)試巾兆,還可以用來(lái)做selenium/appnium等自動(dòng)化測(cè)試囤捻、接口自動(dòng)化測(cè)試(pytest+requests评抚。pytest具有很多第三方插件熟空,并且可以自定義擴(kuò)展,比較好用的如pytest-selenium(集成selenium)竟纳、pytest-html(完美html測(cè)試報(bào)告生成)撵溃、pytest-rerunfailures(失敗case重復(fù)執(zhí)行)、pytest-xdist(多CPU分發(fā))等锥累。report框架----allure 也支持了pytest缘挑。
想要用Pytest時(shí), 需要在設(shè)置:settings-tools-python-integrated-tools, Default test runner選擇pytest.
編寫(xiě) pytest 測(cè)試樣例需要按照下面的規(guī)則:
·???????? 測(cè)試文件以test_開(kāi)頭(以_test結(jié)尾也可以)
·???????? 測(cè)試類以Test開(kāi)頭揩悄,并且不能帶有?__init__ 方法
·???????? 測(cè)試函數(shù)以test_開(kāi)頭
·???????? 斷言使用基本的assert
Issue Encountered:
1.安裝了pytest 和pytest_allure_adoptor 插件 后運(yùn)行代碼卖哎,會(huì)出現(xiàn)報(bào)錯(cuò)“unknown hook”. 是因?yàn)榘姹静患嫒莸膯?wèn)題。在pycharm安裝的都是最新版本的插件删性,所以出現(xiàn)了這種兼容的問(wèn)題亏娜。在Google 上搜到的可兼容的版本:pytest==3.7.1,and?pluggy==0.7.1. 改了版本后,可以正常運(yùn)行蹬挺。
(參考:https://www.meiwen.com.cn/subject/bvyzkftx.html; https://docs.pytest.org/en/latest/contents.html)
2??unrecognized arguments: --alluredir
下載?allure-pytest 可以解決
Report Generated?
1.安裝?pytest_allure_adoptor 维贺,pytest-html 和 pytest
2.在pycharm 的Terminal 終端輸入 “python -m pytest -s -q --alluredir report” ,就會(huì)在這個(gè)測(cè)試case 的文件夾中自動(dòng)生成report 文件夾巴帮,里面有測(cè)試的結(jié)果報(bào)告xml格式
3.生成美觀allure報(bào)告: 在生成 pytest report 后溯泣,在Terminal 再輸入命令”allure generate report/ -o report/html“,會(huì)在Pytest 生成的report 文件里生成html文件榕茧,打開(kāi)Index .html便可生成allure 報(bào)告
4.?”allure generate report/ -o report/html? --clean" 可以把之前生成的報(bào)告替換掉
Notice:
1)html file generated resulting from allure must be in the same file with the report of pytets. Only by this, the two reports can be connected?
2)Make all pytest report generated, and then generate allure report by only execute the code at a time
Report structure
1). Allure特性:
a垃沦、利用Feature 和 Story 組織測(cè)試用例. 如:測(cè)試一個(gè)功能,M 下包含幾個(gè)小模塊A肢簿、B、C 池充;可以將M 設(shè)置為Feature桩引,A收夸、B坑匠、C 為幾種不同的情況,設(shè)置為不同的Story?
b卧惜、with pytest.allure.step(‘描述’) ,測(cè)試用例的描述
c序苏、allure.attach ?用于向測(cè)試報(bào)告中輸入一些附加的信息,通常是一些測(cè)試數(shù)據(jù)信息
(Feature: 標(biāo)注主要功能模塊; Story: 標(biāo)注Features功能模塊下的分支功能; Severity: 標(biāo)注測(cè)試用例的重要級(jí)別; Step: 標(biāo)注測(cè)試用例的重要步驟; Issue和TestCase: 標(biāo)注Issue忱详、Case,可加入U(xiǎn)RL)
2). Severity詳解 -Allure中對(duì)嚴(yán)重級(jí)別的定義:
1跺涤、 Blocker級(jí)別:中斷缺陷(客戶端程序無(wú)響應(yīng)匈睁,無(wú)法執(zhí)行下一步操作)
2、 Critical級(jí)別:臨界缺陷( 功能點(diǎn)缺失)
3航唆、 Normal級(jí)別:普通缺陷(數(shù)值計(jì)算錯(cuò)誤)
4院刁、 Minor級(jí)別:次要缺陷(界面錯(cuò)誤與UI需求不符)
5、 Trivial級(jí)別:輕微缺陷(必輸項(xiàng)無(wú)提示退腥,或者提示不規(guī)范)
3.) 附加照片
allure.attach.file(name='login_email_error.png', source="%s" %file, attachment_type=allure.attachment_type.PNG)
4).?Step: 把步驟的名字寫(xiě)出來(lái),設(shè)置為step
5).TestCase:??用例標(biāo)識(shí)享潜,關(guān)聯(lián)標(biāo)識(shí)用例嗅蔬,可為一個(gè)url鏈接地址。Issue("BUG號(hào):123") # 問(wèn)題表識(shí)澜术,關(guān)聯(lián)標(biāo)識(shí)已有的問(wèn)題,可為一個(gè)url鏈接地址