SlideShare a Scribd company logo
Allure Framework
Artem Eroshenko
eroshenkoam@
инженер по
автоматизации
разработка
инструментов
Отчеты автотестов
Хорошие отчеты
скорость и точность
Чем дальше от кода
тем меньше точность
Юнит тесты
Тесты через API
Web-тесты
Хорошие отчеты
необходимые данные
содержат
Хорошие отчеты
понятны всем
Хорошие отчеты
легко читать всем
В Яндексе нет единого
универсального отчета
Хабра-подход
/company/yandex/blog/200364/
Отчет для
функциональных тестов
Allure Framework
Allure Framework
Функциональные тесты
Легкость интеграции
Allure Framework
Понятность отчета
Allure Framework
Allure Framework
расширение xUnit
Стандартный xUnit
Стандартный xUnit
TestSuite Class
Стандартный xUnit
TestSuite Class
TestCase Method
Расширение xUnit
Аттачменты (Аттачи)
Аттачменты
HTML
IMAGE
JSON
XML
TXT
OTHER
Шаги (Степы)
Расширение xUnit
Шаги
Вложенность
Шаги
Статус завершения
Вложенность
Шаги
Статус завершения
Вложенность
Содержат аттачменты
Лейблы
Расширение xUnit
Лейблы
Способ группировки
Allure Framework
=
+
Стандартный xUnit
Шаги Аттачменты Лейблы
Архитектура Allure
Allure Model
Allure Adaptor
Allure Report
Архитектура Allure
Allure Model
Test	

Suite	

.xml
расширение xUnit
<testsuite time=“188”!
name=“company.TestMe”!
tests=“1” skipped=“0”!
errors=“0” failures=“0”>!
<testcase!
time=“180" name=“testMe”!
classname=“company.TestMe” !
/>!
</testsuite>
xUnit Model
Allure Model
Test	

Suite	

.xml
start/stop
status
test info
расширение xUnit
severity
<test-suite start="3" stop="25">!
<title>Test Suite</title>!
<test-cases>!
   <test-case start=“5" stop=“23”!
status=“passed”!
severity="normal">!
     <title>Test Case</title>!
   </test-case>!
</test-cases>!
</testsuite>
Allure Model
Allure Model
steps attachments
Test	

Suite	

.xml
start/stop
status
severity
test info
расширение xUnit
<test-case … >!
<title>Test Case</title>!
<steps>!
<step start="3" start="17" !
title=“Open Main Page”/>!
</steps>!
<attachments>!
<attachment title="Image"!
source=“image.png“/>!
</attachments>!
</test-case>
Allure Model
<testcase … >!
<steps>!
<step start="3" start="17" !
title=“Open Main Page”>!
<attachments>!
<attachment title="Image"!
source=“image.png“/>!
</attachments>!
</step>!
</steps>!
</testcase>
Allure Model
<testcase … >!
<steps>!
<step start="3" start="17" !
title=“Search by [test]”>!
<steps>!
<step start="7" start="10"!
title=“Type [test]” />!
</steps>!
</step>!
</steps>!
</testcase>
Allure Model
<testcase … >!
<labels>!
<label name=“Feature” !
value=“Search”/>!
<label name=“Component”!
value=“Web Interface”/>!
<label name=“Since Version”!
value=“1.7.2”/>!
</labels>!
</testcase>
Allure Model
Allure Framework
=
+
Стандартный xUnit
Шаги Аттачменты Лейблы
Allure Adaptor
jUnit
pyUnit
Karma
Test	

Suite	

.xml
Allure Adaptor
jUnit
pyUnit
Karma
jUnit	

Adaptor
Test	

Suite	

.xml
Allure Adaptor
jUnit
pyUnit
Karma
jUnit	

Adaptor
pyUnit	

Adaptor
Test	

Suite	

.xml
Allure Adaptor
jUnit
pyUnit
Karma
jUnit	

Adaptor
pyUnit	

Adaptor
Karma	

Adaptor
Test	

Suite	

.xml
Allure Report
Test	

Suite	

.xml
Test	

Suite	

.xml
Test	

Suite	

.xml
Allure Report
Test	

Suite	

.xml
Test	

Suite	

.xml
Test	

Suite	

.xml
Report	

Data	

Generator
Test	

Suite	

.json
Test	

Suite	

.json
Test	

Suite	

.json
Run	

Status	

.json
Allure Report
Angular JS
+
Test	

Suite	

.json
Test	

Suite	

.json
Test	

Suite	

.json
Run	

Status	

.json
Report Face
Архитектура Allure
jUnit
jUnit	

Adaptor
Test	

Suite	

.xml
Data	

GEN
Report
Allure Model
Allure Adaptor
Allure Report
Архитектура Allure
Allure In Action
Allure Lifecycle
Allure TestNG
Allure jUnit
Allure Java Adaptors
Allure Lifecycle
Allure.LIFECYCLE.fire(TestSuiteStarted);!
Allure.LIFECYCLE.fire(TestCaseStarted);!
Allure.LIFECYCLE.fire(StepStarted);!
Allure.LIFECYCLE.fire(MakeAttach);!
Allure.LIFECYCLE.fire(StepStarted);!
Allure.LIFECYCLE.fire(StepFinished);!
Allure.LIFECYCLE.fire(StepFinished);!
Allure.LIFECYCLE.fire(TestCaseFinished);!
Allure.LIFECYCLE.fire(TestSuiteFinished);
Allure jUnit
public class AllureRunListener !
extends RunListener{!
!
@Override!
public void testStarted (…) {!
TestSuiteStartedEvent suiteStarted =!
new TestSuiteStartedEvent(…);!
getLifecycle().fire(suiteStarted);!
}!
…!
} RunListener
public class AllureTestListener !
implements ITestListener{!
!
@Override!
public void onTestStart (…) {!
TestSuiteStartedEvent suiteStarted =!
new TestSuiteStartedEvent(…);!
getLifecycle().fire(suiteStarted);!
}!
…!
}
Allure testNG
ITestListener
Allure jUnit Example
Чистый xUnit
public void SearchTest {!
@Test!
public void searchResultsTest() {!
…!
}!
}
Добавляем шаги
@Step!
public void openMainPage () {!
driver.get(“http://yandex.ru”);!
}!
!
@Step!
public void searchBy (String key) {!
driver.findElement(id(“text”))!
.type(key);!
driver.findElement(id(“srch”)).click();!
}
Добавляем аттачи
@Attach(type=AttachmentType.PNG)!
public File makeScreenshot () {!
driver.getScreenshotAs(OutputType.File)!
}!
@Step!
public void checkResultHas(String text) {!
//получаем текст результатов!
//с помощью драйвера, проверяем текст!
! makeScreenShot(); !
}
Пишем тест
public void SearchTest {!
@Test!
public void searchResultsTest() {!
openMainPage();!
searchBy(“Yandex”);!
checkResultsHas(“Yandex”);!
}!
}
Получаем отчет
http://bit.ly/allure-reports
Allure Python Adaptors
Allure Lifecycle
Allure pyTest
Allure Report Builder
Allure Maven Plugin
Allure Jenkins Plugin
Демо
Вопросы?
https://github.com/allure-framework
eroshenkoam@

More Related Content

PPTX
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...
COMAQA.BY
 
PPTX
Allure framework. Пример настройки исчерпывающего репорта на реальном проекте
COMAQA.BY
 
PDF
Артём Ерошенко: Как найти общий язык с результатами тестов
Yandex
 
PPTX
Yandex allure
Anton Shapin
 
PPTX
Повышаем надёжность тестов через JavaScript
Igor Khrol
 
PPT
Кому следует писать автоматические тесты?
Igor Khrol
 
PPT
Решения для автоматизации тестирования Web-приложений на базе Selenium
SQALab
 
PPTX
Оценка качества автотестов
SQALab
 
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...
COMAQA.BY
 
Allure framework. Пример настройки исчерпывающего репорта на реальном проекте
COMAQA.BY
 
Артём Ерошенко: Как найти общий язык с результатами тестов
Yandex
 
Yandex allure
Anton Shapin
 
Повышаем надёжность тестов через JavaScript
Igor Khrol
 
Кому следует писать автоматические тесты?
Igor Khrol
 
Решения для автоматизации тестирования Web-приложений на базе Selenium
SQALab
 
Оценка качества автотестов
SQALab
 

What's hot (20)

PDF
Архитектура автоматизированных тестов
SQALab
 
PPTX
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QAFest
 
PPT
SQADAYS 21 Москва 2017
Adam Sandman
 
PPTX
TestLink
ISsoft
 
PDF
Автоматическое тестирование. Моя система
Igor Lyubin
 
PPTX
Artem Shabarshin. CSEDays
LiloSEA
 
PDF
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
IT61
 
PPTX
Автоматизация тестирования ролей и привилегий
SQALab
 
PPTX
Практика тестирования web сервисов
SQALab
 
PPTX
Test link introduction
Kateryna Nesmyelova
 
PDF
Автоматизация функционального тестирования REST API
Pavel Asanov
 
PDF
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QAFest
 
PPTX
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QAFest
 
PPTX
10 принципов автоматизации, которые я не предам
SQALab
 
PPTX
Тестирование REST-сервисов с применением инженерных практик
SQALab
 
PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
SQALab
 
PPTX
Continuous Integration для QA
Ivan Kolodyazhny
 
PDF
Тимур Шевляков
CodeFest
 
PPT
Организация тестового набора при автоматизированном функциональном тестировании
SQALab
 
PPTX
Организация workflow в трекере TFS | Алексей Соловьев
Positive Hack Days
 
Архитектура автоматизированных тестов
SQALab
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QAFest
 
SQADAYS 21 Москва 2017
Adam Sandman
 
TestLink
ISsoft
 
Автоматическое тестирование. Моя система
Igor Lyubin
 
Artem Shabarshin. CSEDays
LiloSEA
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
IT61
 
Автоматизация тестирования ролей и привилегий
SQALab
 
Практика тестирования web сервисов
SQALab
 
Test link introduction
Kateryna Nesmyelova
 
Автоматизация функционального тестирования REST API
Pavel Asanov
 
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QAFest
 
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QAFest
 
10 принципов автоматизации, которые я не предам
SQALab
 
Тестирование REST-сервисов с применением инженерных практик
SQALab
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
SQALab
 
Continuous Integration для QA
Ivan Kolodyazhny
 
Тимур Шевляков
CodeFest
 
Организация тестового набора при автоматизированном функциональном тестировании
SQALab
 
Организация workflow в трекере TFS | Алексей Соловьев
Positive Hack Days
 
Ad

Viewers also liked (14)

PDF
Allure framework
artkoshelev
 
PPTX
AQA TALKS 4 - AUTOMATION TEST REPORTER
Taras Lytvyn
 
PPTX
Teaching Automation. How big companies do it.
Vitali Shulha
 
PPT
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Lohika_Odessa_TechTalks
 
PPT
Page object with selenide
COMAQA.BY
 
PDF
Making Your Results Visible - A Test Result Dashboard and Comparison Tool
Xiaoxing Hu
 
PPTX
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
moshemilman
 
PDF
Good test = simple test (with selenide)
Andrei Solntsev
 
PDF
Easy tests with Selenide and Easyb
Iakiv Kramarenko
 
PDF
Selenide Alternative in Practice - Implementation & Lessons learned [Selenium...
Iakiv Kramarenko
 
PPTX
Why testing take so long
Mikalai Alimenkou
 
PPTX
Webium: Page Objects in Python
Igor Khrol
 
PDF
How To Use Selenium Successfully (Java Edition)
Dave Haeffner
 
PDF
Selenium Tips & Tricks
Dave Haeffner
 
Allure framework
artkoshelev
 
AQA TALKS 4 - AUTOMATION TEST REPORTER
Taras Lytvyn
 
Teaching Automation. How big companies do it.
Vitali Shulha
 
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Lohika_Odessa_TechTalks
 
Page object with selenide
COMAQA.BY
 
Making Your Results Visible - A Test Result Dashboard and Comparison Tool
Xiaoxing Hu
 
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
moshemilman
 
Good test = simple test (with selenide)
Andrei Solntsev
 
Easy tests with Selenide and Easyb
Iakiv Kramarenko
 
Selenide Alternative in Practice - Implementation & Lessons learned [Selenium...
Iakiv Kramarenko
 
Why testing take so long
Mikalai Alimenkou
 
Webium: Page Objects in Python
Igor Khrol
 
How To Use Selenium Successfully (Java Edition)
Dave Haeffner
 
Selenium Tips & Tricks
Dave Haeffner
 
Ad

Allure Framework