Repository navigation
Description
i start using allure tool recently and not sure yet if i can take screenshot during my appium test for android device
i add sample code that i was using dont know if im missing something
im using Testng and allure
Enviroment :
mac OS
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
// androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation group: 'io.appium', name: 'java-client', version: '7.0.0'
testImplementation group: 'org.testng', name: 'testng', version: '6.14.3'
testImplementation group: 'org.slf4j', name: 'slf4j-nop', version: '1.7.26'
implementation group: 'org.seleniumhq.selenium', name: 'selenium-server-standalone', version: '2.53.0'
implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
implementation group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver', version: '3.141.59'
testImplementation group: 'io.qameta.allure', name: 'allure-testng', version: '2.11.0'
implementation group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.3'
// implementation group: 'io.qameta.allure', name: 'allure-generator', version: '2.11.0'
implementation group: 'io.qameta.allure', name: 'allure-java-commons', version: '2.11.0'
implementation group: 'com.relevantcodes', name: 'extentreports', version: '2.41.2'
implementation group: 'ru.yandex.qatools.ashot', name: 'ashot', version: '1.5.4'
`ackage Tests.listener;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import Configuration.BaseSetup;
import Configuration.Utils;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.qameta.allure.Attachment;
public class TestListener extends BaseSetup implements ITestListener {
@Attachment(value = "Page screenshot", type = "image/png")
private byte[] saveScreenshotPNG(AndroidDriver driver) {
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
@Override
public void onTestStart(ITestResult iTestResult) {}
@Override
public void onTestSuccess(ITestResult iTestResult) {}
@Override
public void onTestFailure(ITestResult iTestResult) {
if (driver != null) {saveScreenshotPNG(driver);
}
@Override
public void onTestSkipped(ITestResult iTestResult) {}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult iTestResult) {}
@Override
public void onStart(ITestContext iTestContext) {}
@Override
public void onFinish(ITestContext iTestContext) {}
}
testClass@listeners(TestListener.class)
@Epic("Landing page users features")
@feature("Select between local and tourist user")
public class LandingPageTest extends BaseSetup {
@Test (priority = 1)
@Story("user should be able to log in as tourist")
@Description("Application will be rest and user will select tourist mode")
public void Verify_user_can_use_tourist_mode() {
LandingPage page = new LandingPage(driver);
page.sign_as_Tourist();
}
@Test (priority = 2)
@Story("user should be able to log in as local")
@Description("Application will be rest and user will select local mode")
public void Verify_user_can_use_local_mode() {
LandingPage page = new LandingPage(driver);
page.sign_as_Local();
}
}`
Activity