行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

时间:2022-10-26 10:41:46

1、extentreports 测试报告

pom文件

 <dependency>
<groupId>com.vimalselvam</groupId>
<artifactId>cucumber-extentsreport</artifactId>
<version>3.0.</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.0.</version>
</dependency>
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.40.</version>
</dependency>
    <dependency>
    <groupId>org.springframework</groupId>
     <artifactId>spring-test</artifactId>
    <version>5.0.2.RELEASE</version>
    </dependency>

cucumber入口类

  • CucumberOptions中加入插件的属性
  • @BeforeClass注解方法中,可以使用setReportPath方法指定插件的报告生成位置
  • @AfterClass注解方法中,可以使用loadXMLConfig方法指定报告配置文件的位置
package com.cucumber.demo;

import com.aventstack.extentreports.ResourceCDN;
import com.aventstack.extentreports.reporter.ExtentHtmlReporter;
import com.cucumber.listener.Reporter;
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
import org.springframework.test.context.ContextConfiguration;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass; import java.io.File;
//加入注释语句位置,不能运行所有用例集合
//@RunWith(Cucumber.class)
@ContextConfiguration("classpath:cucumber.xml")
@CucumberOptions(
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/extent-report/report.html"},
format = {"pretty", "html:target/cucumber", "json:target/cucumber.json"},
features = {"src/test/resources/feature/"},
glue = {"com.cucumber.demo","com.po.demo"},
monochrome = true)
public class RunCukesTest extends AbstractTestNGCucumberTests { @BeforeClass
public static void setup() {
ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("target/extent-report/report.html");
htmlReporter.config().setResourceCDN(ResourceCDN.EXTENTREPORTS); } @AfterClass
public static void tearDown() {
Reporter.loadXMLConfig(new File("src/test/resources/extent-config.xml"));//
Reporter.setSystemInfo("user", System.getProperty("user.name"));
Reporter.setSystemInfo("os", "Windows");
Reporter.setTestRunnerOutput("Sample test runner output message");
} }

extent-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<extentreports>
<configuration>
<theme>dark</theme>
<encoding>UTF-8</encoding>
<documentTitle>Cucumber Extent Reports</documentTitle>
<reportName>Cucumber Extent Reports</reportName>
<!--<reportHeadline> - v1.0.0</reportHeadline>-->
<protocol>https</protocol>
<dateFormat>yyyy-MM-dd</dateFormat>
<timeFormat>HH:mm:ss</timeFormat>
<scripts>
<![CDATA[
$(document).ready(function() { });
]]>
</scripts>
<!-- custom styles -->
<styles>
<![CDATA[ ]]>
</styles>
</configuration>
</extentreports>

2、jenkins持续集成

2.1、在Jenkins中安装cucumber插件

需要安装的插件如下:

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

2.2、发布Cucumber测试结果报告

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

2.3、发布HTML格式的报告

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

2.4、发布Cucumber结果报告

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

2.5、点击应用保存,并构建

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

2.6、构建完成后,效果如下

构建完之后,会多生成这两个链接,点击Cucumber Reports后就可以看到好看的测试报告了,下面是部分截图:

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

extentreport

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成

注意:cucumber的run文件不要使用标签@runwith,批量执行多个feature文件时

参考文章:

https://www.cnblogs.com/rechin/p/9411669.html

https://blog.csdn.net/qq_33320515/article/details/80648425

https://blog.csdn.net/qq_33320515/article/details/80648425

行为驱动:Cucumber + Selenium + Java(二) - extentreports 测试报告+jenkins持续集成的更多相关文章

  1. 行为驱动:Cucumber &plus; Selenium &plus; Java&lpar;二&rpar; - 第一个测试

    在上一篇中,我们搭建好了Selenium + Cucumber + Java的自动化测试环境,这一篇我们就赶紧开始编写我们的第一个BDD测试用例. 2.1 创建features 我们在新建的java项 ...

  2. 行为驱动:Cucumber &plus; Selenium &plus; Java&lpar;一&rpar; - 环境搭建

    1.1 什么是行为驱动测试 说起行为驱动,相信很多人听说过. 行为驱动开发-BDD(Behavior Driven Development)是一个诞生于2003年的软件开发理念.其关键思想在于通过与利 ...

  3. Selenium&plus;Java的TestNG测试报告优化

    本博主很懒,但学习很勤快,一般能从博客园直接转载的东西,本博主绝不动手写,无奈Selenium+java生成的测试报告在百度上搜索..反正我是没有看到.后来才知道TestNG它可以自动生成测试报告,但 ...

  4. HUDSON(Java开发的一种持续集成工具)

    Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...

  5. linux&lpar;centos8&rpar;&colon;安装Jenkins持续集成工具&lpar;java 14 &sol; jenkins 2&period;257&rpar;

    一,什么是Jenkins? 1,jenkins是什么? Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具, 用于监控持续重复的工作,旨在提供一个开放易用的软件平台, 使软件的持续 ...

  6. windows部署jenkins持续集成maven测试项目不能访问测试报告

    买了一台阿里云的服务器用于练习maven test项目,系统版本wiondows server 2012,将jenkins war包部署在Tomcat服务器上,项目构建后,生成的报告在C:\Windo ...

  7. Jenkins持续集成&lowbar;03&lowbar;添加测试报告

    前言 Jenkins持续集成自动化测试项目后,可以在控制台输出中查看测试结果,但是这样排查起来往往不够直观.为了更直观的查看测试结果,可以在Jenkins上展示测试报告.测试报告中测试结果情况展示的更 ...

  8. 行为驱动:Cucumber &plus; Selenium &plus; Java&lpar;四&rpar; - 实现测试用例的参数化

    在上一篇中,我们介绍了Selenium + Cucumber + Java框架下的使用Tags对测试用例分组的实现方法,这一篇我们用数据表格来实现测试用例参数化. 4.1 什么是用例参数化 实际测试中 ...

  9. 行为驱动:Cucumber &plus; Selenium &plus; Java&lpar;一&rpar; - Cucumber简单操作实例

    场景(Scenarios) 场景是Cucumber结构的核心之一.每个场景都以关键字“Scenario:”(或本地化一)开头,后面是可选的场景标题.每个Feature可以有一个或多个场景,每个场景由一 ...

随机推荐

  1. Java--String 和StringBuilder、StringBuffer 的区别&quest;

    1.String是只读字符串,引用的字符串内容是无法改变的. 2.StringBuffer和StringBuilder的字符串对象可以直接进行修改. 3.StringBuilder没有被synchro ...

  2. 【总结】&period;Net面试题集锦&lpar;一&rpar;

    一.背景 最近一直在准备面试,收到的面试邀请邮件里还有面试题,真是要当面霸的节奏,不过看看也好,一方面能够锻炼锻炼生锈的脑子,查缺补漏一下,另一方面,万一靠这几个面试题拿到offer呢,哈哈.开个玩笑 ...

  3. lua元表与元方法

    lua中提供的元表(metatable)与元方法(metamethod)是一种非常重要的语法,metatable主要用于做一些类似于C++重载操作符式的功能. lua中提供的元表是用于帮助lua变量完 ...

  4. Spark中文指南&lpar;入门篇&rpar;-Spark编程模型&lpar;一&rpar;

    前言 本章将对Spark做一个简单的介绍,更多教程请参考:Spark教程 本章知识点概括 Apache Spark简介 Spark的四种运行模式 Spark基于Standlone的运行流程 Spark ...

  5. CoreAnimation 核心动画一 (一些常用属性 和 方法)

    1.常用属性: frame   bounds   center   alpha    Transition 过渡    transform 动画效果 2.常用方法: +(void)setAnimati ...

  6. CodeForces 705B Spider Man &lpar;水题&rpar;

    题意:给定 n 个数,表示不同的环,然后把环拆成全是1,每次只能拆成两个,问你有多少次. 析:也不难,反正都要变成1,所以把所有的数都减1,再求和即可. 代码如下: #pragma comment(l ...

  7. NSIS:使用PassDialog插件实现密码安装(卸载)功能

    原文 NSIS:使用PassDialog插件实现密码安装(卸载)功能 有时,出于特殊的需求,我们要给安装或卸载程序加一个密码,只有输入了正确的密码才可以继续.比如: 下面我们使用插件来实现安装密码: ...

  8. PHP 安全 E-mail

    PHP E-mail 注入 首先,请看上一章中的 PHP 代码: <html> <body> <?php if (isset($_REQUEST['email'])) / ...

  9. XXE漏洞学习

    0x00 什么是XML 1.定义 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML文档结构包括XML声明.DTD文 ...

  10. DP E - Cheapest Palindrome

    Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate ...