Артём Ерошенко: Как найти общий язык с результатами...

Preview:

DESCRIPTION

С ростом количества тестов возникает проблема анализа их результатов. Речь идёт не о UNIT-тестах, а о более высокоуровневых. Скажите честно, кто из вас не думал сделать свой отчёт? С подробными логами, скриншотами, дампами запросов и ответов и прочей информацией (которая, к слову, существенно облегчает поиск причин конкретной ошибки). Я расскажу о том, какой отчёт мы используем в Яндексе. А после доклада все желающие смогут попробовать его у себя.

Citation preview

старший инженер по автоматизации

Как найти общий язык с результатами тестов

Артем Ерошенко

Как найти общий язык

с результатами тестов?

Отчеты автотестов

Хорошие отчеты

скорость и точность

Чем дальше от кода

тем меньше точность

Юнит тесты

Тесты через API

Web-тесты

Хорошие отчеты

содержат данные

Хорошие отчеты

понятны всем

Хорошие отчеты

легко читать всем

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

Шаги

Вложенность

Шаги

Статус завершения

Вложенность

Шаги

Статус завершения

Вложенность

Содержат аттачменты

Allure Framework

Стандартный xUnit

=

+

Шаги Аттачменты

Модульность Allure

Модульность Allure

Allure Model

Allure Adaptor

Allure Report

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” ! />!</test-suite>

xUnit Model

Allure Model

Test Suite .xml

start/stop

status

test info

расширение xUnit

severity

<testsuite start="3" stop="25">!    <title>Test Suite</title>!    <testcase start="5" ! stop=“23”! status=“passed"! severity="normal">!        <title>Test Case</title>!    </testcase>!</testsuite>

Allure Model

Allure Model

steps attachments

Test Suite .xml

start/stop

statusseverity

test info

расширение xUnit

<testcase … >!    <title>Test Case</title>! <step start="3" start="17" ! title=“Open Main Page"/>! <attachments title="image"! source=“path/to/image.png“! type="png"/>!</testcase>

Allure Model

<testcase … >!    <title>Test Case</title>! <step start="3" start="17" ! title=“Open Main Page">! <attachments title="image"! source=“image.png“! type="png"/>! </step>!</testcase>

Allure Model

<testcase … >!    <title>Test Case</title>! <step start="3" start="17" ! title=“Open Main Page">! <step start="4"! stop=“6“! type=“Input text"/>! </step>!</testcase>

Allure Model

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 ReportTest Suite .xml

Test Suite .xml

Test Suite .xml

Allure ReportTest 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

рецепт приготовления

Чистый 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

Попробуйте сами

Вопросы?

http://bit.ly/allure-reports

http://bit.ly/allure-framework

Recommended