Junit/TestNg testNg+allure 怎么获取测试结果呢

tester · 2023年09月12日 · 最后由 tester 回复于 2023年09月19日 · 5063 次阅读

我想把用例执行的成功数和失败数,发送到钉钉群,怎么获取成功数和失败数呢

共收到 4 条回复 时间 点赞

测试结果是从 testng 的 IReporter 接口中获取的 和使用哪种报告框架无关

IReporter 中需要实现 generateReport 方法,这个方法中的参数 List suites 里有所有测试的上下文信息

仅楼主可见

要获取测试结果,您可以使用 TestNG 和 Allure 结合进行测试报告生成和展示。首先,您需要配置 TestNG 测试套件,并在测试执行完成后生成 Allure 报告。

首先,确保您的项目中已经正确配置了 TestNG 和 Allure,并且测试用例已经编写完成。
然后,在您的测试类中,使用@Test注解标记测试方法,通过断言(assert)来判断测试的成功与否。
在测试执行完成后,使用 Allure 提供的监听器类和生成器类获取测试结果。
下面是一个示例代码:

import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;

@Listeners({ allure.ReportListener.class })
public class MyTests {

  @Test
  public void test1() {
    Assert.assertTrue(true);
  }

  @Test
  public void test2() {
    Assert.assertTrue(false);
  }

  @AfterSuite
  public void generateReport() {
    // 这里使用Allure提供的生成器类生成测试报告
    AllureCommandLine.main(new String[] {"generate", "path/to/allure-results", "-o", "path/to/allure-report"});

    // 根据具体需求,获取成功数和失败数并发送到钉钉群
    int successCount = Allure.getLifecycle().getTestCaseStorage().getByStatus(Status.PASSED).size();
    int failureCount = Allure.getLifecycle().getTestCaseStorage().getByStatus(Status.FAILED).size();

    // 发送到钉钉群的逻辑
    sendToDingTalk(successCount, failureCount);
  }

  private void sendToDingTalk(int successCount, int failureCount) {
    // 发送到钉钉群的具体逻辑实现
    // ...
  }
}

上述代码中,我们在@Listeners注解中添加了 Allure 提供的监听器类,用于生成测试报告。在 generateReport 方法中,使用 Allure 生成器类生成测试报告,并通过 Allure 提供的 Allure.getLifecycle() 方法获取测试结果,进而获取成功数和失败数。最后,根据具体需求,您可以调用发送到钉钉群的方法来将结果发送到钉钉群。

希望以上信息能对您有所帮助!如果您有任何进一步的问题,请随时提问。

树叶 回复

感谢,我已经拿到了测试结果,但是测试报告的地址怎么获取呢,我希望可以把测试报告的地址也发送到钉钉上,然后点击就可以跳转到测试报告

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册