@allure.step()
Декоратор,могу позволитьтествариант использованиясуществоватьallure
В отчете показаны подробныетестпроцесс;step()
только один параметрtitle
,Просто передай что угодносуществоватьallure
Что отображается на;# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_allure_step.py
# эффект:@allure.stepхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import pytest
import allure
@allure.step("Шаг 1: вход пользователя")
def test_login():
pass
@allure.step("Шаг 2: Проверка данных пользователя")
def test_check():
test_login()
if __name__ == '__main__':
pytest.main(["-s", "test_allure_step.py"])
pytest -n auto --alluredir=allure test_allure_step.py
allure serve allure
step()
Поддержка позиционных параметров и параметров ключевых слов;# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_allure_step1.py
# эффект:@allure.stepхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import pytest
import allure
@allure.step("Шаг 1: вход пользователя {0}, {passwd}")
def login(name, passwd):
pass
@allure.step("Шаг 2: Проверка данных")
def check():
login("zhang", "123456")
@allure.step("Шаг 3: Вход")
def test_case():
check()
if __name__ == '__main__':
pytest.main(["-s", "test_allure_step1.py"])
allure
Отчеты поддерживают отображение множества различных типов вложений.;allure.attach(body, name, attachment_type, extension)
тело: содержимое вложения
имя: имя вложения
Attachment_type: тип вложения, да allure.attachment_type один из них
расширение: расширение вложения
allure.attachment_type
Типы следующие,Вы можете просмотреть исходный код:class AttachmentType(Enum):
def __init__(self, mime_type, extension):
self.mime_type = mime_type
self.extension = extension
TEXT = ("text/plain", "txt")
CSV = ("text/csv", "csv")
TSV = ("text/tab-separated-values", "tsv")
URI_LIST = ("text/uri-list", "uri")
HTML = ("text/html", "html")
XML = ("application/xml", "xml")
JSON = ("application/json", "json")
YAML = ("application/yaml", "yaml")
PCAP = ("application/vnd.tcpdump.pcap", "pcap")
PNG = ("image/png", "png")
JPG = ("image/jpg", "jpg")
SVG = ("image/svg-xml", "svg")
GIF = ("image/gif", "gif")
BMP = ("image/bmp", "bmp")
TIFF = ("image/tiff", "tiff")
MP4 = ("video/mp4", "mp4")
OGG = ("video/ogg", "ogg")
WEBM = ("video/webm", "webm")
PDF = ("application/pdf", "pdf")
# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_allure_attach.py
# эффект:allure.attachхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
import pytest
def test_login():
allure.attach("user01,user02,user03", «Информация о пользователе», allure.attachment_type.TEXT)
pass
allure.attach()
Другой способ использования —:allure.attach.file(source, name, attachment_type, extension)
# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_allure_attach.py
# эффект:allure.attachхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
import pytest
def test_login():
allure.attach("user01,user02,user03", «Информация о пользователе», allure.attachment_type.TEXT)
pass
def test_login_info():
allure.attach.file("./user_info.csv", attachment_type=allure.attachment_type.CSV)
pass
@allure.description(str)
,Аналогично добавлению ниже объявления функции """ """
;# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_allure_description.py
# эффект:@allure.descriptionхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
import pytest
# Как использовать один
@allure.description("""
Основная цель этого варианта использования — проверка?
Ой, кстати, я не знаю, что делать! ! !
""")
def test_case01():
num = 100 * (1 + 9)
assert num == 1000
# Способ использования второй
def test_case02():
"""
Это вариант использования!
Этот вариант использования ничего не делает!
Этот вариант использования представляет собой просто простую проверку~
"""
pass
@allure.title(str)
# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_allure_title.py
# эффект:@allure.titleхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
@allure.title("Пользователь входит в систему как обычно")
def test_login01():
pass
@allure.title("Имя пользователя неверное")
def test_login02():
pass
allure.title()
Поддерживает передачу аргументов ключевого слова через заполнители.;# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_allure_title1.py
# эффект:@allure.titleхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
import pytest
@allure.title("Вход пользователя")
@pytest.fixture
def test_login(request):
args = request.param
user = args["name"]
pwd = args["password"]
print(user, pwd, args)
yield user, pwd
@allure.title("Обычный вход в систему, информация о пользователе: {test_login}")
@pytest.mark.parametrize("test_login", [
{"name": "xiaoli", "password": "123456"},
{"name": "laoli", "password": "123456"}], indirect=True)
def test_login_info(test_login):
user, pwd = test_login
allure.attach(f"Имя пользователя: {пользователь}, Пароль: {pwd}")
allure
Отчетность и некоторая системная интеграция,Может быстрее перейти по указанному адресу;def link(url, link_type=LinkType.LINK, name=None):
return safely(plugin_manager.hook.decorate_as_link(url=url, link_type=link_type, name=name))
issue()иtestcase()На самом деле его еще называютдаlink(),Толькодаlink_typeнет то же самое
URL: ссылка для перехода;
name: необязательный параметр, отображает название отчета существованияallure, если он не передан, будет отображаться полная ссылка;
link_type: тип перехода; LINK, ISSUE, TEST_CASE, то есть ссылка доступа, ссылка на ошибку, ссылка на тестовый вариант использования;
Подвести итог:три методада Такой же,Толькодаlink_typeнет то же самое,Стили, отображаемые в отчетах Allure, различаются.
# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_link_issue_testcase.py
# эффект:@allure.link()、@allure.issue()、@allure.testcase()изхарактеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
@allure.link("https://blog.csdn.net/NoamaNelson")
def test_blog_link():
pass
@allure.link("https://blog.csdn.net/NoamaNelson", name="Нажмите, чтобы просмотреть домашнюю страницу блога")
def test_blog_link1():
pass
@allure.issue('https://bbs.csdn.net/forums/NoamaNelson', 'Технология полнофункционального тестирования Сообщество')
def test_blog_issue():
pass
@allure.testcase("https://bbs.csdn.net/forums/NoamaNelson?category=10003&typeId=1566629", «адрес варианта использования теста»)
def test_blog_testcase():
pass
allure
из三种标记Декоратор,Может отображаться в отчете о существовании;@pytest.mark
не будет отображатьсясуществоватьallure
отчет;@allure.epic:внизда feature
@allure.feature: Описание функциональных точек, модуль ниже. story
@allure.story: История ниже. title
Уведомление:
story да feature подмножество.
# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_epic_feature_story.py
# эффект:@allure.epic()、@allure.feature()、@allure.story()характеристика
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
def test_case01():
pass
@allure.story('epic01')
def test_case02():
pass
@allure.story('story01')
def test_case03():
pass
@allure.story('story02')
def test_case04():
pass
@allure.feature('feature02')
@allure.story('story02')
def test_case05():
pass
allure
В отчете можно увидеть количество дефектов на разных уровнях вариантов использования, то есть отмеченных уровнях вариантов использования. ;@allure.severity(allure.severity_level.xxx)
# ххх это уровень
@allure.severity(allure.severity_level.TRIVIAL)
,Вы можете взглянуть на исходный код:class Severity(str, Enum):
BLOCKER = 'blocker'
CRITICAL = 'critical'
NORMAL = 'normal'
MINOR = 'minor'
TRIVIAL = 'trivial'
блокировщик: дефект блокировки критический: серьезный дефект
нормальный: общие дефекты
незначительный: незначительный дефект
тривиально: незначительный недостаток
# -*- coding:utf-8 -*-
# автор:Насекомые без границ
# Дата: 28 марта 2023 г.
# Имя файла: test_severity.py
# эффект:@allure.severity уровень варианта использования знака серьезности
# Контактное лицо: VX (Ноама Нельсон)
# Блог: https://blog.csdn.net/NoamaNelson
import allure
# @allure.severity(allure.severity_level.NORMAL)
@allure.severity("normal")
@allure.description("""Сценарий использования обычного уровня""")
def test_case01():
print("Сценарий использования 01")
# @allure.severity(allure.severity_level.CRITICAL)
@allure.severity("critical")
@allure.description("""Сценарий использования критического уровня""")
def test_case02():
print("Сценарий использования 02")
# @allure.severity(allure.severity_level.BLOCKER)
@allure.severity("blocker")
@allure.description("""Сценарий использования на уровне блокировщика""")
def test_case03():
print("Сценарий использования 03")
# @allure.severity(allure.severity_level.MINOR)
@allure.severity("minor")
@allure.description("""Сценарий использования на второстепенном уровне""")
def test_case04():
print("Сценарий использования 04")
# @allure.severity(allure.severity_level.TRIVIAL)
@allure.severity("trivial")
@allure.description("""Сценарий использования тривиального уровня""")
def test_case05():
print("Сценарий использования 05")
@allure.description("""Нет отметки, по умолчанию normal""")
def test_case06():
print("Сценарий использования 06")
normal
:
allure-severities
Выберите, что необходимо запустить, в зависимости от приоритетатествариант использования,например:pytest test_severity.py -sq --alluredir=./allure --allure-severities=blocker,critical
Вариант использования 02
.Используйте вариант 03
.
2 passed in 0.10s