执行testng appium用例失败,自动截图
2016-11-01 16:04
363 查看
新建一个截图监听类ScreenShotListener ,重写onTestFailure方法,里面定义了 监听的driver ,截图文件路径和名称
测试用例的实现
执行后截图文件名:
20161101151840_com.fsssc.htsgl.testcases.DevTest.testCase.png
package com.fsssc.htsgl.utils; import io.appium.java_client.android.AndroidDriver; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.WebElement; import org.testng.ITestResult; import org.testng.TestListenerAdapter; import com.fc.boxapk.ApkBoxOperation; public class ScreenShotListener extends TestListenerAdapter { @Override public void onTestFailure(ITestResult tr) { //安卓程序的操作类 ApkBoxOperation apkRemoteControl = ApkBoxOperation.getInstance(); //监控截图的driver AndroidDriver<WebElement> driver = apkRemoteControl.driver; // 截图文件夹 File path = new File("screenshots"); //截图位置及文件名 名称为 标识 + 类名 + 方法名 String name = path.getAbsolutePath() + File.separator + MysqlUtils.executionFlag+"_"+MysqlUtils.exeClassName +"."+ tr.getMethod().getMethodName() + ".png"; // File screenShot = driver.getScreenshotAs(OutputType.FILE); try { FileUtils.copyFile(screenShot, new File(name)); } catch (IOException e) { e.printStackTrace(); } } }
测试用例的实现
package com.fsssc.htsgl.testcases; import java.io.IOException; import junit.framework.Assert; import org.testng.annotations.Listeners; import org.testng.annotations.Test; import com.fc.boxapk.ApkBoxOperation; import com.fc.htgl.utils.MysqlUtils; import com.fc.htgl.utils.PropsUtil; import com.fc.htgl.utils.ScreenshotListener; // 监听 @Listeners({ScreenShotListener.class}) public class DevTest{ //安卓程序初始化 ApkBoxOperation apkBoxOperation = ApkBoxOperation.getInstance(); // 赋值一个执行编码给执行标识 String executionFlag = PropsUtil.timeToString(); @Test public void testCase() throws IOException { //本次类名赋值给变量 MysqlUtils.exeClassName = Thread.currentThread().getStackTrace()[1].getClassName(); // 执行标识赋值给变量 MysqlUtils.executionFlag = executionFlag; // 安卓程序登录 apkBoxOperation.courierLogin("13488883323", "4566656"); // 执行完毕 断言失败,执行截图 Assert.assertFalse(true); // 关掉app apkBoxOperation.driver.closeApp(); } }
执行后截图文件名:
20161101151840_com.fsssc.htsgl.testcases.DevTest.testCase.png
相关文章推荐
- Testng实现用例失败自动截图
- Webdriver+Testng实现测试用例失败自动截图功能
- 如何解决testng执行用例报错自动截图问题
- TestNG实现用例运行失败自动截图和重跑
- TestNG监听器实现用例运行失败自动截图、重运行功能
- 扩展Robot Framework,实现失败用例自动再执行(失败重跑)
- 扩展Robot Framework,实现失败用例自动再执行(失败重跑)
- TestNG监听器实现用例运行失败自动截图、重运行功能
- 解决RobotFramework用例执行失败自动重跑问题
- 跳过一些坑,一张图弄明白TestNG多用例执行添加监听失败截图
- TestNG监听器实现用例运行失败自动截图、重运行功能
- 修改testNG源码,实现失败用例自动再执行
- 【转载】扩展Robot Framework,实现失败用例自动再执行(失败重跑)
- 如何解决testng执行用例失败自动重跑问题
- QTP场景恢复之用例失败自动截图
- Webdriver+Testng实现测试用例失败自动截图功能
- 扩展Robot Framework,实现失败用例自动再执行(失败重跑)
- insert失败自动执行update(duplicate先insert)
- TestNG监听器实现失败自动截图、重跑、自定义html结果文件功能
- 【已解决】Xen下虚拟机执行Shutdown失败,开机自动重启虚拟机,并出现页故障问题