52
старший инженер по автоматизации Как найти общий язык с результатами тестов Артем Ерошенко

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

  • Upload
    yandex

  • View
    1.839

  • Download
    4

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Юнит тесты

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

Тесты через API

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

Web-тесты

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

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

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

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

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

понятны всем

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

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

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

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

Allure Framework

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

Мультиязычность

Allure Framework

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

Модульность

Allure Framework

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

Гибкость

Allure Framework

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

Allure Framework

расширение xUnit

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

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

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

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

TestSuite Class

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

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

TestSuite Class

TestCase Method

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

Расширение xUnit

Аттачменты (Аттачи)

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

Аттачменты

HTML

IMAGE

JSON

XML

TXT

OTHER

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

Шаги (Степы)

Расширение xUnit

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

Шаги

Вложенность

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

Шаги

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

Вложенность

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

Шаги

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

Вложенность

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

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

Allure Framework

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

=

+

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

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

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

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

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

Allure Model

Allure Adaptor

Allure Report

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

Allure Model

Test Suite .xml

расширение xUnit

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

<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

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

Allure Model

Test Suite .xml

start/stop

status

test info

расширение xUnit

severity

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

<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

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

Allure Model

steps attachments

Test Suite .xml

start/stop

statusseverity

test info

расширение xUnit

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

<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

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

<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

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

<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

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

Allure Adaptor

jUnit

pyUnit

Karma

Test Suite .xml

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

Allure Adaptor

jUnit

pyUnit

Karma

jUnit Adaptor

Test Suite .xml

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

Allure Adaptor

jUnit

pyUnit

Karma

jUnit Adaptor

pyUnit Adaptor

Test Suite .xml

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

Allure Adaptor

jUnit

pyUnit

Karma

jUnit Adaptor

pyUnit Adaptor

Karma Adaptor

Test Suite .xml

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

Allure ReportTest Suite .xml

Test Suite .xml

Test Suite .xml

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

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

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

Allure Report

Angular JS

+Test Suite .json

Test Suite .json

Test Suite .json

Run Status .json

Report Face

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

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

jUnit

jUnit Adaptor

Test Suite .xml

Data GEN

Report

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

Гибкость Allure

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

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

Чистый xUnit

public void SearchTest {! @Test! public void searchResultsTest() {! …! }!}

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

Добавляем шаги@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();!}

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

Добавляем аттачи@Attach(type=AttachmentType.PNG)!public File makeScreenshot () {! driver.getScreenshotAs(OutputType.File)!}!@Step!public void checkResultHas(String text) {! //получаем текст результатов! //с помощью драйвера, проверяем текст!! makeScreenShot(); !}

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

Пишем тест

public void SearchTest {! @Test! public void searchResultsTest() {! openMainPage();! searchBy(“Yandex”);! checkResultsHas(“Yandex”);! }!}

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

Получаем отчет

http://bit.ly/allure-reports

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

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

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

Вопросы?

http://bit.ly/allure-reports

http://bit.ly/allure-framework