selenium + cucumber + ExtentReport UI automation Test

Java+Selenium+Cucumber自动化测试框架:高效软件测试的利器 然而,面对当前的挑战和未来的发展趋势,测试团队需要不断学习新知识、新技术,优化框架的使用,以适应不断变化的软件测试需求,从而为高质量的软件交付提供有力保障。- 不同版本的Java、Selenium、浏览器和浏览器驱动之间的兼容性问题可能会导致环境搭建困难,并且在项目持续集成过程中,需要确保环境的稳定性和一致性,这也增加了维护成本。- 开发更加直观、交互性更强的测试结果可视化工具,除了传统的HTML报告外,可以提供类似仪表盘的形式来展示测试结果,包括测试用例的执行进度、成功率、失败原因等信息的可视化呈现。 阅读详情

一、Selenium 例子代码

参考:https://blog.youkuaiyun.com/m0_50565821/article/details/130217122?spm=1001.2014.3001.5501

二、Cucumber Test
2.1 引入插件,以Idea 为例
在这里插入图片描述
2.2
新建feature 文件

#@demoTest
Feature: cucumber demo
  As a tester,need to create a cucumber automation demo to show the cucumber test

  @demoTest
  Scenario: User can open the baidu url and search
    Given the baidu page is show
    When the user send the search keyword in the input box
    And the user click the baiduyixia button
    Then the search result is display

安装提示新建step

public class BaiDuSearchSteps implements En{
    WebDriver driver = BrowserDiverManager.getDiver();
    BaiduSearchPages baiduSearchPages = new BaiduSearchPages(driver);
    public BaiDuSearchSteps(){
        Given("^the baidu page is show$", () -> {
            baiduSearchPages.toUrl("https://www.baidu.com/");
            System.out.println("baudupage show");
        });

        When("^the user send the search keyword in the input box$", () -> {
            baiduSearchPages.inputKey("key");
            System.out.println("=======end the search ke");

        });
        And("^the user click the baiduyixia button$", () -> {
            baiduSearchPages.clickSearchButton();

        });
        Then("^the search result is display$", () -> {
            System.out.println("========the search result is display");
        });


    }
    @AfterStep
    public void teardown(){
        driver.close();
    }

2.3 新建runner

@RunWith(Cucumber.class)
@CucumberOptions(
        features = {"src/test/resources/cucmberTest"},
        glue = {"steps"},
        tags = "@demoTest",
        plugin = {
                "pretty",
//                "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"
                "html:target/cucumber-reports/cucumberExtent.html",
                "json:target/cucumber-reports/cucumberExtent.json"
        }
)
public class runner {
}

2.4 直接run,会生成报告
在这里插入图片描述

三、引入第三方report–extentReport

3.1
3.1.1 runner 加上

        plugin = {
                "pretty",
                "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"
        }

3.1.2 报告生成的配置
新建一个extent.properties

extent.reporter.html.start=true
extent.reporter.html.config = "config/extent-config.xml"
extent.reporter.html.out = "target/cucumber-reports/cucumberExtent.html"
screenshot.dir=screenshots/
screenshot.rel.path=../

新建一个extent-config.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<extentreports>
    <configuration>
        <!-- report theme -->
        <!-- standard, dark -->
        <theme>dark</theme>

        <!-- document encoding -->
        <!-- defaults to UTF-8 -->
        <encoding>UTF-8</encoding>

        <!-- protocol for script and stylesheets -->
        <!-- defaults to https -->
        <protocol>https</protocol>

        <!-- title of the document -->
        <documentTitle>Baidu Search Automation Report</documentTitle>

        <!-- report name - displayed at top-nav -->
        <reportName>Baidu Search Automation Report</reportName>

        <!-- timestamp format -->
        <timeStampFormat>MMM dd, yyyy HH:mm:ss</timeStampFormat>

        <!-- custom javascript -->
        <scripts>
            <![CDATA[
                $(document).ready(function() {

                });
            ]]>
        </scripts>

        <!-- custom styles -->
        <styles>
            <![CDATA[

            ]]>
        </styles>
    </configuration>
</extentreports>

3.2 run 生成报告
在这里插入图片描述
在这里插入图片描述

附录:troubleScreen
遇到一个引入extentRepot 报错的问题
PLUGIN can also be a fully qualified class name, allowing registration of 3rd party plugins. The 3rd party plugin must implement io.cucumber.plugin.Plugin
我被这玩意气死了,改了半天原来是版本适配的问题。。。。。。。,所以在确定你引入extentReport 配置都没问题,可以检查一下cucumber 的版本和extentReport adapter 是否适配
更新版本不更新官网说明书实在可恶

【保姆级】如何创建一个Cucumber Test 创建maven项目 mvn archetype:generate -Dfilter=org.apache.maven: 创建cucumber文件夹 mkdir cucumber-test 进入文件夹 cd cucumber-test 初始化cucumber cucumber --init 如果报zsh: command not found: cucumber的错: MAC的话cucumber的安装一定要用gem(我也不知道为啥。。。欢迎大佬科普~) aqin1012@aqin10 阅读详情

相关推荐

Cucumber与TestNG的集成方法与实践

Cucumber和TestNG作为自动化测试框架,各具特色并广泛应用于IT行业。Cucumber采用BDD(行为驱动开发)模式,以自然语言描述测试场景,提高测试的可读性和业务相关性。TestNG则提供强大的测试执行控制,支持并行执行和灵活的测试配置。将Cucumber与TestNG集成,可以实现以业务语言描述测试用例,并利用TestNG强大的测试管理功能,大幅提升测试的自动化和效率。

weixin_35815766的博客 949

解决HttpRunnerManager界面样式丢失—extentreports测试报告引用extend.css/js失败的问题

问题描述: 查看页面问题 http://extentreports.com/resx/dist/css/extent.css

DaisyCold的博客 852

极化码理论及算法研究4-巴氏参数、GA算法以及matlab仿真

目录 (如要找其他内容,欢迎访问我的主页寻找) #前言 #极化码概述 #极化码定义 #极化码编码 #极化码译码 #5G标准中极化码的编译码概述 #5G标准中极化码的编码 #5G标准中极化码的译码 #总结 极化码编码 ...

1万+

使用 python 生成 extent report 测试报告

extent report 是一种流行的自动化测试报告生成工具,它可以帮助测试人员快速准确地生成测试报告。使用 Python 生成 extent report 测试报告可以简化测试报告的生成过程,并且可以方便地将测试报告集成到自动化测试流程中。在设计测试报告生成脚本时,需要考虑测试报告的格式、内容和结构,以确保测试报告能够清晰地展示测试结果和分析测试数据。

DJ355的博客 371

永不消逝的电波 -GSM空口信号的接收与解码

一开始接触软件无线电应该是从很早之前对RFID洗衣卡的解密开始的,后来接触人员定位,慢慢的打开了这样一扇大门。。。。 翻到之前做的GSM信号的接收解码,今天就对其过程做一个记录,也不是什么新颖的内容,权当是记录和回忆了。 对于GSM网络的相关内容,不是非常的熟悉,如有不正确的,欢迎批评指正。

Jack.Xu 专栏 1万+

基于集成运放心电放大器设计(原创)

原创作者:einyboy or alert 最近在看美剧《危机边缘》关于边缘科学的案件,科技控可以看一下,但建议不在吃东西的时候看。想像力是创造的思想源头,动手能力则是创造的车床。 自认为是没有想像力的那类,只能发挥动手能力了。 心电测量简介 图1 心电极接线图 如图1心电测试一般使用3个心电极进行测量,各个电极的说明如下: RA: Right Arm缩写,右手电极 LA: L...

huandaohack的专栏 6924

自动化测试报告浅谈之ExtentReports

我们在进行自动化测试时,往往需要有相应的测试报告,比如junit,testng,reportng等等,有会有自带的测试报告,那为什么我要在这边提ExtentReports?首先,我们来看看其它几种测试报告是什么样子的   1、junit 2、testng 3、reportng 这些自带的报告不够美观,可读性差,这样的报告拿出去估计没人愿意看吧,当然我们只是谈以上几种报告,如果要得到非常美观的报告只能自己动手去做了,这就要有良好的编码功底。费话不多说我们再来看看今天要讲的ExtentReports,上图

公众号:【伤心的辣条】 1200

aistudio高效解压zip文件的实用技巧

本文详细介绍了在百度AI Studio平台上高效解压ZIP文件的实用技巧。针对深度学习项目数据准备中的常见痛点,重点讲解了使用Python zipfile库和Linux unzip命令两种核心方法,并提供了路径设置、大文件处理、中文乱码等关键问题的解决方案,帮助用户提升数据处理效率。

salt的博客 784

UI&API自动化测试框架(通用版/企业级)

该框架采用 Java 语言,集成 Selenium 4、Cucumber、TestNG、RestAssured、UI + API 混合测试、PO + BDD 分层架构、YAML 元素库、 Mock、流量录制回放、 DDT 数据驱动、重试机制、跨浏览器并发线程隔离,故障注入、 Allure + ExtentReports 双报告、Selenium Grid + Docker + K8s 分布式并发执行、CI/CD(Jenkins/GitHub/GitLab CI)持续集成与交付

m0_37606579的博客 467

Android CCodec (十七) 硬件解码调用分析-1(基于V4l2)

简单的分析V4L2DecodeComponent和其相关内容,后续针对解码调用单独分析。

给大佬递杯卡布奇诺的博客 6594

SAP 交货成本(运费)

交货成本: 业务场景: 有些产品或供应商,会产生交货成本(运费、关税等) 业务模拟(以运费为例): 1、运费在采购订单体现:计划运费 ME21N创建采购订单,并且包含运费: MIGO收货时: 由上可知,MIGO时运费最终体现在库存(存货)科目中(V),或者价格差异中(S计价时)。 MIRO发票校验: 运费最终体现在单独科目中: 后台配置: 运费在发票时候...

willieyuan的博客 1万+

Cucumber + Selenium自动化测试的优秀实践!

众所周知,Cucumber是一个非常不错的、面向BDD的测试工具,使用Gherkin的纯文本功能描述来运行验收测试。使用Cucumber BDD框架的最大收益是:在开发实现之前,测试首先就被记录下来。 对于不了解功能的用户都很容易理解测试。它有效地结合了自动化测试,是一个可以执行的、有关需求的活文档。

1015

按照CANoe模板制作seed&&key.dll

在canoe进行诊断测试的时候,在0x27服务中需要制作一个dll文件。可在canoe的诊断中进行加载,也可用于diva的自动化测试。 本文按照canoe提供的KeyGenDll_GenerateKeyEx模板制作。 KEYGENALGO_API VKeyGenResultEx GenerateKeyEx( const unsigned char* iSeedArray, /* Array for the seed [in] */ unsigned int

天赐好车的博客 6522

第一个Cucumber Test

发表完《初识Cucumber》,有读者评论,说自己也在学习cucumber,但是苦于公司没有网络,学习资源匮乏,学习进度一拖再拖。这不禁让我想起了当初学习Selenium的经历。老东家安...

weixin_50483789的博客 372

【论文复现】——基于NDT与ICP结合的点云配准算法(matlab版)

基于NDT与ICP结合的点云配准算法matlab版

点云侠的博客 490

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

自动化测试工具Cucumber的简单介绍,入门篇

随着测试的发展,测试自动化越来越成为人们的关注点。 现在我们公司也在进行接口自动化的推广,在我看来接口自动化的价值就在于整体项目的回归,完成一些没法通过人力进行的测试,比如压力测试。 为了解决测试开发人员和功能测试人员的同步问题,选择了Cucumber框架。 Cucumber是一个能够理解用普通语言描述测试用例的行为驱动开发(BDD)的自动化测试工具。 换句话说就是学习成本比较低,并且可以方便测试开发人员和功能测试人员协同合作、开发人员进行公共方法的封装、功能测试人员进行测试用例的编写。 Cucumbe.

测试萌萌 4344

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Cucumber + Selenium自动化测试的优秀实践!_cucumber使用

尽量保持Background的简短,因为如果保持冗长的背景,就很难理解下面的场景。例如,考虑一个电子商务应用,可以这样组织文件,在第一层可以有一个package,例如Orders,在这个package中可以有多个feature,如Pending Orders、Completed Orders、Wishlist等等。例如,要使用法语作为编写方案的语言,可以在功能中使用**#Languages** 作为标题,就像下面这样------。如上面的例子所示,可以在单个步骤中使用数据表,并注入可能需要的不同数据。

2401_84247726的博客 1004

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

自动化测试工具Cucumber的简单介绍

随着测试的发展,测试自动化越来越成为人们的关注点。

OKCRoss的博客 1868

maven extent report 测试报告

&lt;build&gt; &lt;defaultGoal&gt;compile&lt;/defaultGoal&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;

词穷墨尽博客 672

Selenium + Cucumber,行为驱动

前言 Cucumber为BDD测试框架, 在于以直白的语言表达业务场景, 统一产品经理, 开发人员, 测试人员, 运营人员等角色的系统认知 关于Cucumber的基础知识可以参阅官网: https://docs.cucumber.io/guides/ Selenium应该都比较熟悉, 通过webdriver实现UI自动化的测试工具 总结: 虽然Scenario要求每一个Step都直白易懂, 不要引入代码层面的元素, 但考虑到页面元素众多, 不得不考虑参数化 由于上一条的原因, 整体风格更像是关键字驱动 无

weixin_44129801的博客 817

推荐一款基于业务行为驱动开发(BDD)测试框架:Cucumber!

今天给大家介绍一款行为驱动开发测试框架:Cucumber。 Cucumber是一个行为驱动开发(BDD)工具,它结合了文本描述和自动化测试脚本。它使用一种名为Gherkin的特定语言来描述应用程序的行为,这种语言非常接近自然语言,使得非技术人员也能够理解和参与测试。

人生不怕起点低,就怕没追求 1441

自动化测试工具Cucumber的简单介绍,零基础入门到精通,收藏这篇就够了

随着测试的发展,测试自动化越来越成为人们的关注点。现在我们公司也在进行接口自动化的推广,在我看来接口自动化的价值就在于整体项目的回归,完成一些没法通过人力进行的测试,比如压力测试。为了解决测试开发人员和功能测试人员的同步问题,选择了Cucumber框架。Cucumber是一个能够理解用普通语言描述测试用例的行为驱动开发(BDD)的自动化测试工具。换句话说就是学习成本比较低,并且可以方便测试开发人员和功能测试人员协同合作、开发人员进行公共方法的封装、功能测试人员进行测试用例的编写。

leah126的博客 3541

BDD测试框架Cucumber学习

作者简介:大家好,我是凝小飞,软件测试领域作者,Cucumber是一个行动驱动开发(BDD)的测试框架,它支持多种编程语言,包括Java、Python、Ruby等。主要特点是用自然语言来描述测试用例,这样非技术人员也能够理解参与测试过程。我认为,未来可以跟AI结合,完成从测试用例编写到自动生成的过程。国外的论坛和活跃度,更新度还挺高的。目前我在从事金融业务的自动化测试,用的是cucumber的框架,正在边学边做中。会持续的更新。

测试开发 850
上一篇: selenium+testNgTest实例
下一篇: Springboot 的调用注入的对象为null
泥点子
博客等级 码龄6年 132粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值