¿cuál es la diferencia entre la creación de informe de medida mediante el uso de oyente y sin utilizar oyente

Azmina Nur Hanis:

Quiero generar un informe de medida pero estoy confundido en cuanto a la diferencia entre la creación del informe medida mediante el uso de oyente y sin utilizar oyente?

Ya he terminado de escribir el código para ambos, pero ¡No puedo ver la diferencia y cuál es mejor porque se ve igual y el resultado final también se misma. ¿Puede alguien me explique cuál es mejor? A continuación adjunto mi código de ejemplo, cuando quito oyente todavía puede obtener el mismo resultado:

Listener.java

package listener;
public class Listener implements ITestListener {
ExtentTest test;
public void onTestStart(ITestResult result) {
    System.out.println("on test start");

}
public void onTestSuccess(ITestResult result) {
    System.out.println("on test success");
}
public void onTestFailure(ITestResult result) {
    System.out.println("on test failure");
    result.getThrowable();
}
public void onTestSkipped(ITestResult result) {
    System.out.println("on test skipped");
    result.getThrowable();
}
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
    System.out.println("on test sucess within percentage");
}
public void onStart(ITestContext context) {
    System.out.println("on start");

}
public void onFinish(ITestContext context) {
    System.out.println("on finish");
} }

BaseTest.java

public class BaseTest {
public AppiumDriver<WebElement> driver;
ExtentReports extent;
ExtentTest test;

String timeStamp = new SimpleDateFormat("EEE-d-MMM-yyyy.HH-mm-ss ").format(new Date());
String fileName = System.getProperty("user.dir") + "/result/report" + timeStamp + ".html";
ExtentHtmlReporter htmlReports;
@Parameters("deviceModel")
@BeforeTest
public void setUp() throws MalformedURLException {
    htmlReports = new ExtentHtmlReporter(fileName);
    extent = new ExtentReports();
    extent.attachReporter(htmlReports);
    htmlReports.config().setReportName("Testing");
    htmlReports.config().setTheme(Theme.STANDARD);
    htmlReports.config().setTestViewChartLocation(ChartLocation.BOTTOM);
    htmlReports.config().setDocumentTitle("HtmlResultTest");

    System.out.println("Session is creating");
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "ios");
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3.3");
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Agmo");
    capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari");
    driver = new IOSDriver<WebElement>(new URL("http://localhost:4723/wd/hub"), capabilities);
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    System.out.println("Session is created");
}

@AfterTest
public void tearDown() {
    extent.flush();
}

@AfterMethod
public void checkResults(ITestResult testResult){
    if (testResult.getStatus()==ITestResult.FAILURE){
        test.log(Status.FAIL, "Test case is failed because of below problem");
        test.log(Status.FAIL, testResult.getThrowable());
    }else if (testResult.getStatus()==ITestResult.SUCCESS){
        test.log(Status.PASS, "Test case is passed");
    }else if (testResult.getStatus()==ITestResult.SKIP){
        test.log(Status.SKIP, testResult.getThrowable());
    }
} }

Testing.java

public class Testing extends BaseTest {
@Test(priority = 0)
public void InvalidVerificationCode() {
    test = extent.createTest("Invalid code");
    System.out.println("Starting test " + new Object() {}.getClass().getEnclosingMethod().getName());
    driver.get("https://r2c2-staging.azurewebsites.net");
    try {
        driver.findElement(By.xpath("//button[@class=\"btn btn-white-green\" and @type=\"button\"]")).click();
        driver.findElement(By.xpath("//input[@class=\"ng-untouched ng-pristine ng-invalid\" and @type=\"text\"]")).sendKeys("[email protected]");
        driver.findElement(By.xpath("//input[@class=\"ng-untouched ng-pristine ng-invalid\" and @type=\"password\"]")).sendKeys("12345");
        driver.findElement(By.xpath("//button[@class=\"signInBtn\" and @type=\"submit\"]")).click();
    }catch (Exception e){
        driver.findElement(By.xpath("//div[@class=\"title\"]")).click();
    }
    driver.findElement(By.xpath("//img[@class=\"ng-star-inserted\"]")).click();
    driver.findElement(By.xpath("//div[@class=\"logout\"]")).click();
    driver.findElement(By.xpath("//button[@class=\"btn btn-white-green\" and @type=\"button\"]")).click();
    driver.findElement(By.xpath("//input[@class=\"ng-untouched ng-pristine ng-invalid\" and @type=\"text\"]")).sendKeys("[email protected]");
    driver.findElement(By.xpath("//input[@class=\"ng-untouched ng-pristine ng-invalid\" and @type=\"password\"]")).sendKeys("12345");
    driver.findElement(By.xpath("//button[@class=\"signInBtn\" and @type=\"submit\"]")).click();
    try{
        driver.findElement(By.xpath("//div[@class=\"logout\" and @text=\"Logout\"]"));
    }catch (Exception e){
        String actual_error = driver.findElement(By.xpath("//div[@class=\"modal-content\"]")).getText();
        Assert.assertTrue(actual_error.contains("The user name or password provided is incorrect"));
        driver.findElement(By.xpath("//button[@class=\"btn btn-primary ok\" and @type=\"button\"]")).click();
        System.out.println("Tess login with invalid verification code pass!!\n");
    }
}

file.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests">
<listeners>
    <listener class-name="Listener"/>
</listeners>
<test name="Test ios">
    <parameter name="deviceModel" value="Agmo" />
    <classes>
        <class name="Testing">
            <methods>
                <include name="InvalidVerificationCode"/>
            </methods>
        </class>
    </classes>
</test>
</suite>
foursyth:

No hay diferencia, sólo 2 maneras de crear informe.

Aunque, mirando el código, su uso del oyente no va a hacer nada ya que está justo a la escritura de la consola. El informe se genera a partir de solamente BaseTest.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=220870&siteId=1
Recomendado
Clasificación