博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium通过监听事件实现自动截图
阅读量:4352 次
发布时间:2019-06-07

本文共 2993 字,大约阅读时间需要 9 分钟。

需要继承extends TestListenerAdapter这个类

代码如下 package com.mushishi.selenium.util; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import org.testng.ITestContext; import org.testng.ITestResult; import org.testng.TestListenerAdapter; import com.mushishi.selenium.base.DriverBase; import com.mushishi.selenium.testCase.login; public class TestNGListenerScreen extends TestListenerAdapter{
@Override public void onTestSuccess(ITestResult tr) {
super.onTestSuccess(tr); } @Override public void onTestFailure(ITestResult tr) {
super.onTestFailure(tr); System.out.println(tr); takeScreenShot(tr); } private void takeScreenShot(ITestResult tr) {
login b = (login) tr.getInstance(); // driver = b.driver; b.driver.takeScreenShot(); } @Override public void onTestSkipped(ITestResult tr) {
super.onTestSkipped(tr); } @Override public void onTestStart(ITestResult result) {
super.onTestStart(result); } @Override public void onStart(ITestContext testContext) {
super.onStart(testContext); } @Override public void onFinish(ITestContext testContext) {
super.onFinish(testContext); ArrayList
testsToBeRemoved = new ArrayList
(); // collect all id's from passed test Set
passedTestIds = new HashSet
(); for (ITestResult passedTest : testContext.getPassedTests() .getAllResults()) {
//logger.info("PassedTests = " + passedTest.getName()); passedTestIds.add(getId(passedTest)); } Set
failedTestIds = new HashSet
(); for (ITestResult failedTest : testContext.getFailedTests() .getAllResults()) { //logger.info("failedTest = " + failedTest.getName()); int failedTestId = getId(failedTest); // if we saw this test as a failed test before we mark as to be // deleted // or delete this failed test if there is at least one passed // version if (failedTestIds.contains(failedTestId) || passedTestIds.contains(failedTestId)) { testsToBeRemoved.add(failedTest); } else { failedTestIds.add(failedTestId); } } // finally delete all tests that are marked for (Iterator
iterator = testContext.getFailedTests() .getAllResults().iterator(); iterator.hasNext();) { ITestResult testResult = iterator.next(); if (testsToBeRemoved.contains(testResult)) { //logger.info("Remove repeat Fail Test: " + testResult.getName()); iterator.remove(); } } } private int getId(ITestResult result) { int id = result.getTestClass().getName().hashCode(); id = id + result.getMethod().getMethodName().hashCode(); id = id + (result.getParameters() != null ? Arrays.hashCode(result .getParameters()) : 0); return id; } }

转载于:https://www.cnblogs.com/gyadmin/p/10454578.html

你可能感兴趣的文章
logrotate日志切割
查看>>
POJ-3253 Fence Repair 贪心
查看>>
Arraylist集合遍历输出
查看>>
java中的选择结构与循环结构
查看>>
无法将类型“ASP.login_aspx”转换为“System.Web.UI.WebControls.Login”
查看>>
[cocos2dx] lua注册回调到c++
查看>>
(treap)[bzoj3224][洛谷3369][cogs1829]Tyvj 1728 普通平衡树
查看>>
Linux下常用的shell命令记录
查看>>
HTTP 常用 Header 讲解
查看>>
linux分割字符串操作
查看>>
PHP学习2
查看>>
多实例Mysql配置
查看>>
linux下安装Mongodb
查看>>
Page.RegisterStartupScript和Response.Write的区别。
查看>>
hdu4348区间更新的主席树+标记永久化
查看>>
ZOJ 2532 Internship
查看>>
HDU 3452 Bonsai
查看>>
[Erlang12] Mnesia分布式应用
查看>>
图的遍历 | 1013 连通块块数
查看>>
Kinect 开发 —— 进阶指引(上)
查看>>