allure在linux環(huán)境的安裝
首先在本機(jī)安裝jdk8以上版本堤舒,以及 npm
安裝allure服務(wù):npm install -g allure-commandline --save-dev
python安裝allure庫:sudo pip3 install allure-python-commons
python安裝pytest的allure插件庫:sudo pip3 install allure-pytest
此時(shí)運(yùn)行:allure
應(yīng)該會(huì)有相關(guān)的幫助指引竹伸,若報(bào)錯(cuò)則未安裝成功
allure使用
命令行參數(shù)
qydev012@qydev012:~/workspace/uiautotest$ allure --help
Usage: allure [options] [command] [command options]
Options:
--help
Print commandline help.
-q, --quiet
Switch on the quiet mode.
Default: false
-v, --verbose
Switch on the verbose mode.
Default: false
--version
Print commandline version.
Default: false
Commands:
generate Generate the report
Usage: generate [options] The directories with allure results
Options:
-c, --clean
Clean Allure report directory before generating a new one.
Default: false
--config
Allure commandline config path. If specified overrides values from
--profile and --configDirectory.
--configDirectory
Allure commandline configurations directory. By default uses
ALLURE_HOME directory.
--profile
Allure commandline configuration profile.
-o, --report-dir, --output
The directory to generate Allure report into.
Default: allure-report
serve Serve the report
Usage: serve [options] The directories with allure results
Options:
--config
Allure commandline config path. If specified overrides values from
--profile and --configDirectory.
--configDirectory
Allure commandline configurations directory. By default uses
ALLURE_HOME directory.
-h, --host
This host will be used to start web server for the report.
-p, --port
This port will be used to start web server for the report.
Default: 0
--profile
Allure commandline configuration profile.
open Open generated report
Usage: open [options] The report directory
Options:
-h, --host
This host will be used to start web server for the report.
-p, --port
This port will be used to start web server for the report.
Default: 0
plugin Generate the report
Usage: plugin [options]
Options:
--config
Allure commandline config path. If specified overrides values from
--profile and --configDirectory.
--configDirectory
Allure commandline configurations directory. By default uses
ALLURE_HOME directory.
--profile
Allure commandline configuration profile.
常用的幾個(gè)參數(shù)解讀
- options:
- -q 安靜模式,默認(rèn)關(guān)閉 開啟后 將會(huì)有allure從源文件-生成文件過程中的日志
- -v 日志模式,默認(rèn)關(guān)閉 開啟后 將會(huì)有詳細(xì)的日志
- --version 版本 可單獨(dú)使用
- Commands:
- generate 把源文件生成report
- options:
- -c & --clean 在生成新的Allure報(bào)告目錄之前跌穗,清除該目錄。(tips:清除的是生成目錄,注意源文件不能和生成目錄一個(gè)地址)
- -o & --report-dir & --output 輸出report文件地址
- options:
- serve 臨時(shí)利用源文件啟動(dòng)report服務(wù)
- -h & --host 臨時(shí)服務(wù)host
- -p & --port 臨時(shí)服務(wù)port
- generate 把源文件生成report
常用生成report語法
allure generate 源文件 -o 輸出文件 --clean # 源文件 != 輸出文件
allure serve 源文件 # 臨時(shí)使用
代碼使用
標(biāo)記用例
@allure.feature("") # 標(biāo)記特性場景(大功能模塊類級(jí))
@allure.story("") # 次于feature的標(biāo)記用例(分支模塊函數(shù)級(jí))
用例步驟
方法一:用作裝飾器在function上
@allure.step("用例步驟")
def func():
pass
方法二:分步步驟甥温,在代碼塊中
with allure.step(""):
pass # 代碼塊
缺陷等級(jí)
1)blocker級(jí)別:中斷缺陷(客戶端程序無響應(yīng)励堡,無法執(zhí)行下一步操作)
2)critical級(jí)別:臨界缺陷(功能點(diǎn)缺失)
3)normal級(jí)別:正常 默認(rèn)為這個(gè)級(jí)別
4)minor級(jí)別:次要缺陷(界面錯(cuò)誤與UI需求不符)
5)trivial級(jí)別:輕微缺陷(必輸項(xiàng)無提示,或者提示不規(guī)范)
級(jí)別 | 描述 |
---|---|
blocker | 中斷缺陷 |
critical | 功能缺陷 |
minor | 次要缺陷 |
trivial | 輕微缺陷 |
normal | 正常 |
@allure.severity("blocker")
def func():
pass
附加信息
allure.attach(body, name=None, attachment_type=None, extension=None)
參數(shù) | 描述 |
---|---|
body | 數(shù)據(jù) |
name | 附件名稱 |
attachment_type | 附件類型 |
extension | 后綴名 |
附件類型
類型 | 類型值 |
---|---|
文本 | allure.attachment_type.TEXT |
CSV | allure.attachment_type.CSV |
圖片 | allure.attachment_type.JPG或PNG |
allure.attachment_type.PDF | |
html文件 | allure.attachment_type.HTML |
json文件 | allure.attachment_type.JSON |
xml文件 | allure.attachment_type.XML |
mp4 | allure.attachment_type.MP4 |
def test_login_failed(self, init_driver, data):
driver = lp(init_driver)
with allure.step("步驟一登錄"):
driver.login(data["account"], data["password"])
with allure.step("步驟二拿content"):
content = driver.get_login_content()
allure.attach(content, "實(shí)際結(jié)果")
allure.attach(data["content"], "預(yù)期結(jié)果") # 可以用來存放圖片
assert content == data["content"]
# 添加照片附件
with open(r"2.jpg","rb") as file: #先打開圖片
file=file.read() #讀取圖片
allure.attach(file,"預(yù)期結(jié)果",attachment_type=allure.attachment_type.JPG)
其他
#
allure.link(url, link_type=LinkType.LINK, name=None)
allure.testcase(url, name=None) # 對(duì)應(yīng)的用例
allure.issue(url, name=None) # 這里傳的是一個(gè)連接窝革,記錄的是你的問題
結(jié)合pytest生成源文件
pytest.main使用
pytest.main("--alluredir=path") # path 為路徑
命令行使用
pytest --alluredir=path # path 為路徑