Поддержка Allure в Kaspresso
Что нового
В версии 1.3.0 Kaspresso была добавлена поддержка allure-framework. Теперь очень легко создавать красивые тестовые отчеты, используя фреймворки Kaspresso и Allure.
В этом выпуске семейство классов управления файлами, отвечающее за предоставление файлов для снимков экрана и журналов, было реорганизовано для лучшего использования и расширяемости. Это изменение затронуло старые классы, которые сейчас помечены как устаревшие (см. пакет com.kaspersky.kaspresso.files). Пример использования: CustomizedSimpleTest.
Также были добавлены следующие перехватчики:
- VideoRecordingInterceptor - перехватчик записи видео.
- DumpViewsInterceptor - перехватчик, который предоставляет XML-представление иерархии View в случае сбоя теста.
В пакете com.kaspersky.components.alluresupport.interceptors есть специальные перехватчики Kaspresso, помогающие связать и обработать файлы для Allure-отчета.
Как использовать
Прежде всего, добавьте следующую зависимость Gradle и Allure runner в файл gradle вашего проекта, чтобы включить модуль allure-support Kaspresso:
android {
defaultConfig {
//...
testInstrumentationRunner "com.kaspersky.kaspresso.runner.KaspressoRunner"
}
//...
}
dependencies {
//...
androidTestImplementation "com.kaspersky.android-components:kaspresso-allure-support:<последняя_версия>"
}
class AllureSupportTest : TestCase(
kaspressoBuilder = Kaspresso.Builder.withForcedAllureSupport()
) {
}
class AllureSupportCustomizeTest : TestCase(
kaspressoBuilder = Kaspresso.Builder.simple(
customize = {
videoParams = VideoParams(bitRate = 10_000_000)
screenshotParams = ScreenshotParams(quality = 1)
}
).addAllureSupport().apply {
testRunWatcherInterceptors.apply {
add(object : TestRunWatcherInterceptor {
override fun onTestFinished(testInfo: TestInfo, success: Boolean) {
viewHierarchyDumper.dumpAndApply("ViewHierarchy") { attachViewHierarchyToAllureReport() }
}
})
}
}
) {
}
class AllureSupportCustomizeTest : TestCase(
kaspressoBuilder = Kaspresso.Builder.simple().apply {
stepWatcherInterceptors.addAll(
listOf(
ScreenshotStepInterceptor(screenshots),
AllureMapperStepInterceptor()
)
)
testRunWatcherInterceptors.addAll(
listOf(
DumpLogcatTestInterceptor(logcatDumper),
ScreenshotTestInterceptor(screenshots),
)
)
}
) {
...
}
Посмотреть результат
Итак, вы добавили в свою конфигурацию Kaspresso список необходимых перехватчиков, поддерживающих Allure, и запустили тест. После завершения теста на устройстве будет создан каталог sdcard/allure-results со всеми обработанными файлами, которые будут включены в отчет Allure.
Этот каталог следует переместить с устройства на хост-компьютер, который будет генерировать отчет.
Например, вы можете использовать для этого команду adb pull на своем хосте. Допустим, вы хотите найти данные для отчета в /Users/username/Desktop/allure-results, поэтому вы вызываете:
adb pull /sdcard/allure-results /Users/username/Desktop
adb devices
List of devices attached
CLCDU18508004769 device
emulator-5554 device
adb -s emulator-5554 pull /sdcard/allure-results /Users/username/Desktop
Теперь мы хотим создать и просмотреть отчет. Для этого на нашей машине должен быть установлен сервер Allure. Чтобы узнать, как это сделать со всеми подробностями, следуйте документации Allure.
Например, чтобы установить сервер Allure на MacOS, мы можем использовать следующую команду:
brew install allure
allure serve /Users/username/Desktop/allure-results
Если вы хотите сохранить сгенерированный html-отчет в определенном каталоге для использования в будущем, вы можете просто вызвать:
allure generate -o ~/kaspresso-allure-report /Users/username/Desktop/allure-results
allure open ~/kaspresso-allure-report
Детали успешного теста:
Сведения о неудачном тесте:
Детали, которые вам нужно знать
По умолчанию, Kaspresso-Allure вводит дополнительные тайм-ауты, чтобы максимально гарантировать правильность видеозаписи. Эти тайм-ауты увеличивают время выполнения теста на 5 секунд.
Вы можете изменить эти значения, настроив videoParams
в Kaspresso.Builder
. См. пример выше.