Pytest系列(21)- allure的特性,@allure.description()、@allure.title()的詳細使用


如果你還想從頭學起Pytest,可以看看這個系列的文章哦!

https://www.cnblogs.com/poloyy/category/1690628.html

 

前言

上一篇文章介紹了兩種allure的特性

  • @allure.step() 裝飾器:可以設置測試步驟,讓測試用例的執行過程更加詳細
  • allure.attach() 函數:可以設置需要顯示在allure報告的附件,包含了多種類型,可以通過allure.attachment_type查看支持的類型

這一篇幅,我們主要來講解另外兩個特性,可以增加報告的可讀性哦!

  • @allure.description()
  • @allure.title()

它們用法極其相近,只是作用不一樣而已

 

@allure.description()

作用

可以添加足夠詳細的測試用例描述,以便於管理層查看哦哈哈哈

 

語法格式,有三種

  1. @allure.description(str)
  2. 在測試用例函數聲明下方添加 """ """
  3. @allure.description_html(str):相當於傳一個HTML代碼組成的字符串,類似 allure.attach() 中傳HTML

注意:方式一方式二的效果和作用是一致的, 哪個方便哪個來

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
__title__  =
__Time__   = 2020-04-18 15:24
__Author__ = 小菠蘿測試筆記
__Blog__   = https://www.cnblogs.com/poloyy/
"""

import allure

import allure

# 方式一
@allure.description("""
這是一個@allure.description裝飾器
沒有特別的用處
""")
def test_description_from_decorator():
    assert 42 == int(6 * 7)

# 方式二
def test_unicode_in_docstring_description():
    """
    當然,在方法聲明的下一行這樣子寫,也算一種添加description的方式哦
    """
    assert 42 == int(6 * 7)

# 方式三
@allure.description_html("""
<h1>Test with some complicated html description</h1>
<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
  </tr>
  <tr align="center">
    <td>William</td>
    <td>Smith</td>
</table>
""")
def test_html_description():
    assert True

 

方式一的allure報告

 

方式二的allure報告

 

方式三的allure報告

 

@allure.title()

作用

  • 使得測試用例的標題更具有可讀性,畢竟我們可以寫成中文
  • 支持占位符傳遞關鍵字參數哦(動態標題,結合 @pytest.mark.parametrize 使用)

 

具體栗子一

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
__title__  =
__Time__   = 2020-04-18 16:09
__Author__ = 小菠蘿測試筆記
__Blog__   = https://www.cnblogs.com/poloyy/
"""

import pytest, allure


@allure.title("前置操作:登錄")
@pytest.fixture
def test_loginss(request):
    params = request.param
    name = params["username"]
    pwd = params["pwd"]
    allure.attach(f"這是測試用例傳的參數{params}")
    print(name, pwd, params)
    yield name, pwd


@allure.title("成功登錄,測試數據是:{test_loginss}")
@pytest.mark.parametrize("test_loginss", [
    {"username": "name1", "pwd": "pwd1"},
    {"username": "name2", "pwd": "pwd2"}], indirect=True)
def test_success_login(test_loginss):
    name, pwd = test_loginss
    allure.attach(f"賬號{name},密碼{pwd}")

 

運行結果,查看allure報告

這是一次綜合多個之前學到的方法來完成的栗子,已經具體標出來啦!

 

具體栗子二

@allure.title("多個參數{name},{phone},{age}")
@pytest.mark.parametrize("name,phone,age", [
    (1, 2, 3),
    (4, 5, 6),
    (7, 8, 9)
])
def test_test_test(name, phone, age):
    print(name, phone, age)

 

運行結果,查看allure報告

 

總結

如果沒有添加 @allure.title() 的話,測試用例的標題默認就是函數名,這樣的可讀性不高,畢竟咱們是中國人,顯示中文title還是很有必要的~所以牆裂建議大伙兒加上啦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM