在 TestNG/Selenium 中自动重启失败的测试用例

2023-11-25

我正在使用 Selenium webdriver,在 Java 中与 TestNG 一起运行 X 数量的测试用例。

我希望任何测试用例一旦失败就自动重新启动(无论是从开始还是从故障点)。

我知道TestNG框架有以下方法

@Override
  public void onTestFailure(ITestResult tr) {
    log("F");
  }

但我不知道如何找出它是哪个测试用例,然后如何重新启动它。


我想查看一个包含实际代码的示例,并在这里找到了它:使用 TestNg 立即重新启动测试

观察一旦发生故障,以下测试将如何重新运行一次。

import org.testng.Assert;
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;
import org.testng.annotations.Test;

public class Retry implements IRetryAnalyzer {
    private int retryCount = 0;
    private int maxRetryCount = 1;

    public boolean retry(ITestResult result) {

        if (retryCount < maxRetryCount) {
            retryCount++;
            return true;
        }
        return false;
    }

    @Test(retryAnalyzer = Retry.class)
    public void testGenX() {
        Assert.assertEquals("james", "JamesFail"); // ListenerTest fails
    }

    @Test(retryAnalyzer = Retry.class)
    public void testGenY() {
        Assert.assertEquals("hello", "World"); // ListenerTest fails

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 TestNG/Selenium 中自动重启失败的测试用例 的相关文章

随机推荐

  • Android中启动Service会调用Applications onCreate

    我正在启动一个 android 服务 startService getApplicationContext MyService class 我已经在 AndroidManifest xml 中正确定义了我的服务 现在 我从应用程序创建中调用
  • std::sort 如何处理对列表?

    为什么this include
  • 如何为约束布局上的嵌套视图设置动画?

    我有一个要求 视图需要位于底部中心并根据其内容调整高度 于是创建了constraint layout根内constraint layout为了达成这个 但现在我面临动画的问题 我无法申请constraintSet
  • 搜索函数源代码

    在 R 中 您可以将函数的源视为函数只是另一个对象 我正在寻找一种方法来搜索此源代码 而不知道源代码保存在哪个文件中 例如 我可能想知道该函数是否shapiro test包含函数sort 确实如此 If shapiro test是我要使用的
  • 在 iPhone 应用程序中将单个像素直接绘制到屏幕上的最快方法是什么?

    我正在寻找在 iPhone 应用程序中将数千个单独计算的像素直接绘制到屏幕上的最快方法 该应用程序的性能非常好 最有可能使用 OpenGL 例如 glBegin GL POINTS glColor3f glVertex3f glEnd 甚至
  • Mac 上的 cronjobs 入门

    我正在尝试熟悉 cron 作业 我想我已经了解了基本的想法 调度 语法等 但是 我似乎无法在我的 mac 上使用终端来正确地完成它 我到底在哪里可以找到定时任务 我应该如何引用脚本的路径 我想做的是在远程机器上点击 php 脚本 http
  • CSS 中不断扩展的中间体

    我将如何设计一个具有固定高度的页眉和页脚 附加到浏览器窗口的顶部和底部 但中间可扩展的网站 滚动条仅适用于中间 图中的橙色部分 因此页面的其余部分永远不需要滚动 为了更清楚地解释 我在下面画了一个模型 理想情况下 它需要完全用 CSS 和
  • 如何在 SSRS 报告中创建动态列

    I need to create a SSRS report like 我有 3 列的表格开发者名称 工作时间 日期 如何创建报告以及获取数据的 sql 查询是什么 我不要求完整的 SQL 查询 我只需要一些提示 您可以使用 Matrix
  • Python 重新“伪造转义错误”

    我一直在摆弄 python re 模块 search方法 cur是来自 Tkinter 条目小部件的输入 每当我在条目小部件中输入 时 它都会引发此错误 我不太确定错误是什么或如何处理它 任何见解将不胜感激 cur是一个字符串 tup 0
  • SevenZipSharp - 压缩内存流

    我正在使用 SevenZipSharp 将文件压缩为 zip 文件 有没有办法使用它从内存流创建 zip 也就是说 之前将文件加载到内存流中 谢谢 玛雅 我正在使用 SevenZipSharp 来处理流 没有任何问题 SevenZip Se
  • 这个标志到底意味着什么? |=

    我很想了解这个运营商 我在 Java 中设置标志时见过这种表示法 例如 notification flags Notification FLAG AUTO CANCEL 它是否执行某种位操作 这个标记到底有什么作用 还有其他类似的众所周知的
  • 如何在android中打开特定的短信

    有没有办法用特定的短信在android上打开消息传递活动 threadId应该是您要查看的 SMS MMS 线程的 id Intent defineIntent new Intent Intent ACTION VIEW defineInt
  • 是否可以输入多种类型的提示?

    我可以使用类型提示允许两种不同的类型吗 例如 范围 requester可以是以下任一者User or File function log User File requester 从 PHP 8 0 开始 这将是可能的包含联合类型 The 该
  • Subversion:合并时“目标路径不存在”是什么意思?

    使用 subversion 1 5 我有分支 B 它是从分支 A 分支出来的 在两个分支中完成工作后 我将更改从 A 合并到 B 中 使用svn merge http path to A在B 的工作目录中并得到svn Target path
  • 为什么在结构体的构造函数中设置属性不起作用?

    我有以下不允许的代码 下面的错误 为什么 struct A private int b public A int x B x public int B get return b set b value 我收到以下错误 在分配 this 对象
  • 如何让 Matlab 读取正确数量的 xml 节点

    我正在使用 matlab 的 xmlread 内部函数读取一个简单的 xml 文件
  • MapView.onMapReady 从未在 Fragment 中调用以在 MapView 中加载 Google 地图

    我将尝试在 Android 应用程序中的名为的片段上显示地图RoeteFragment 如果我调试我的代码 我会看到该方法onMapReady永远不会被调用 因此地图不会加载 该片段实现了OnMapReadyCallback喜欢需要并且在o
  • JavaScript ecma6 将普通函数更改为箭头函数

    我有那个代码 function defineProperty object name callback if object prototype Object defineProperty object prototype name get
  • 在 UITableView 底部添加活动指示器? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 I have UITableview像第一个这样的分页将从服务器获取 20 个对象并填充UITableView然后 当它到达最后一行时 需要进行另一个服务调用来获取接下来的 20 个对象
  • 在 TestNG/Selenium 中自动重启失败的测试用例

    我正在使用 Selenium webdriver 在 Java 中与 TestNG 一起运行 X 数量的测试用例 我希望任何测试用例一旦失败就自动重新启动 无论是从开始还是从故障点 我知道TestNG框架有以下方法 Override pub