自动化测试框架cucumber_基于Cucumber和Testng的WebUI自动化测试方法与流程

一种基于Cucumber和TestNG的WebUI自动化测试方法,旨在解决需求理解不一致导致的产品功能偏差问题。通过创建测试场景文件、执行文件,利用TestNG运行并生成自动化测试代码,确保开发和测试目标与需求一致,提高自动化测试效率。测试报告以HTML形式生成。
摘要由CSDN通过智能技术生成

本发明涉及计算机技术领域,具体的说是基于Cucumber和Testng的WebUI自动化测试方法。

背景技术:

行为驱动测试方法已经在敏捷开发模式中普遍使用,通过使用标准化的语言将客户需求人员、开发人员和测试人员关联在一起,让产品开发相关人员在沟通上保持一致。

Cucumber是实现行为驱动测试方法的一种测试框架,实现了使用自然语言来执行相关联测试代码的需求,Cucumber框架使用Gherkin语言来描述测试功能、测试场景、测试步骤和测试结果,Gherkin支持超过40多种语言,包括中文和英文。Gherkin语言使用的主要英文关键词有Scenario、Given、When、And、Then和But等,这些关键词对应的中文关键词,例如场景、加入、当、那么,根据用户story,需求人员或者测试人员使用Gherkin语言编写好测试场景的每个执行步骤,Cucumber就会一步一步地解析关键词右侧的自然语言并执行相应的代码。

因为不同角色有着不同的领域知识,说着不同的语言,大家在沟通的时候,如果都用自己领域语言,必然会产生沟通代沟,导致理解的不一致性,使得产品功能最后出现偏差。

技术实现要素:

为了解决上述问题,提供了基于Cucumber和Testng的WebUI自动化测试方法,通过将敏捷开发中的用户故事或者需求和测试用例建立一一对应的映射关系,从而保证开发和测试的目标与需求保持一致,可以更好的让参与者用唯一的用例需求进行相关工作,从而避免了因为需求理解不一致,导致产品功能最后出现偏差。

本发明实施例提供了一种基于Cucumber和Testng的WebUI自动化测试方法,所述的方法包括:

S1:在Cucumber下新建一个工程项目;

S2:在新建工程项目下创建测试场景文件;

S3:在新建工程项目下创建一个执行文件来运行测试场景文件;

S4:利用Testng运行测试场景文件,获取自动化测试代码函数;

S5:将获取的自动化代码函数写入步骤S3创建的执行文件中;

S6:重新运行该执行文件,进行场景和功能测试。

进一步的,所述的方法还包括:

S7:生成并获取html测试报告。

进一步的,步骤S7中,获取html测试报告的具体过程为:在工程项目的target\cucumber-html-report目录下,打开并复制html测试报告。

进一步的,步骤S1的具体实现过程为:新建Java工程,建立lib文件夹,将Cucumber的相关jar包、testng的相关jar包、selenium的相关jar包放到lib文件夹内,之后加lib文件夹添加到工程的构建路径中。

进一步的,步骤S2的具体实现过程为:在Java工程中,建立Feature文件夹,然后,在这个文件夹中新建一个文件,文件名为Login_test.feature,最后双击该文件,利用中文或英文编写测试场景。

进一步的,步骤S3的具体实现过程为:在工程的src下创建CucumberTest包,在包中新建TestRunner.java文件,运行该测试文件,所有测试场景文件执行一遍。

进一步的,步骤S4的具体实现过程为:通过testng运行测试场景文件,控制台会生成运行测试场景文件过程中,没有找到的对应自动化测试代码函数。

进一步的,步骤S5的具体实现过程为:创建包stepDefinition,在这个包里面新建一个类Login_Test.java,将控制台生成的自动化测试代码函数复制到类Login_Test.java文件内。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

1、通过测试场景和测试脚本分层的设计方式,使用需求人员更多关注的测试场景跟需求的吻合度,无须关注代码的具体实现,自动化测试工程师更关注与底层自动化代码的编写,各司其职,高效协作,保证保证需求的准确性,自动化测试效率更高。

2、将行为驱动测试工具cucumber和单元测试框架testng进行结合,采用测试场景和测试代码一一对应的关系,可以更好的让参与者用唯一的用例需求进行相关工作,从而避免了因为需求理解不一致,导致产品功能最后出现偏差。同时,因为采用标准的自然语言编写,测试场景文件可以作为需求说明书来使用,减少了相关人员对需求理解的不一致性。

3、feature存放测试场景文件,testDefinition包存放对应的自动化测试代码,从而保证测试代码与测试场景相互分离。

附图说明

图1是本发明实施例1的方法流程图;

图2是本发明实施例2的方法流程图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

实施例1

如图1所示,本方法实施例1提供了一种基于Cucumber和Testng的WebUI自动化测试方法,所述的方法包括以下步骤:

S1:在Cucumber下新建一个工程项目,具体实现过程为:新建Java工程,建立lib文件夹,将Cucumber的相关jar包、testng的相关jar包、selenium的相关jar包放到lib文件夹内,之后加lib文件夹添加到工程的构建路径中。

S2:在新建工程项目下创建测试场景文件,具体实现过程为:在Java工程中,建立Feature文件夹,文件后缀名必须为.feature。然后,在这个文件夹中新建一个文件,文件名为Login_test.feature,最后双击该文件,利用中文或英文编写测试场景。

以访问126邮箱并且登录为例,中文编写如下:

#language:zh-CN

功能:登录

场景:成功登录

假如用户处于163所有邮箱的列表页面

当用户浏览到126邮箱登录页面,跳转后的网址未“http://www.126.com”

当用户输入用户名和密码

那么页面会显示“未读邮件”等关键字

到此,测试场景文件编写完毕。

S3:在新建工程项目下创建一个执行文件来运行测试场景文件,具体实现过程为:在工程的src下创建CucumberTest包,在包中新建TestRunner.java文件,运行该测试文件,所有测试场景文件执行一遍。

这里有注释强调一下:

@Runwith(Cucumber.class):制定测试运行器;

@CucumberOptions(

Feature=“Feature”,:feature代表工程的根目录;

glue=“stepDefinition”自动化代码所在的包名。

S4:利用Testng运行测试场景文件,获取自动化测试代码函数,具体实现过程为:通过testng运行测试场景文件,控制台会生成运行测试场景文件过程中,没有找到的对应自动化测试代码函数。

S5:将获取的自动化代码函数写入步骤S3创建的执行文件中,创建包stepDefinition,在这个包里面新建一个类Login_Test.java,将控制台生成的自动化测试代码函数复制到类Login_Test.java文件内,删掉注释和thorw抛出的异常,按照测试场景进行相应自动化测试代码的编写。

S6:重新运行该执行文件,进行场景和功能测试。以访问126邮箱并且登录为例,可以看到浏览器已经打开了,并且输入了126的网址,输入用户名和密码登录成功,所有的执行步骤都是按照测试场景描述一步一步来的。

实施例2

如图2所示,本方法实施例2提供了一种基于Cucumber和Testng的WebUI自动化测试方法,所述的方法包括以下步骤:

S1:在Cucumber下新建一个工程项目,具体实现过程为:新建Java工程,建立lib文件夹,将Cucumber的相关jar包、testng的相关jar包、selenium的相关jar包放到lib文件夹内,之后加lib文件夹添加到工程的构建路径中。

S2:在新建工程项目下创建测试场景文件,具体实现过程为:在Java工程中,建立Feature文件夹,文件后缀名必须为.feature。然后,在这个文件夹中新建一个文件,文件名为Login_test.feature,最后双击该文件,利用中文或英文编写测试场景。

以访问126邮箱并且登录为例,中文编写如下:

#language:zh-CN

功能:登录

场景:成功登录

假如用户处于163所有邮箱的列表页面

当用户浏览到126邮箱登录页面,跳转后的网址未“http://www.126.com”

当用户输入用户名和密码

那么页面会显示“未读邮件”等关键字

到此,测试场景文件编写完毕。

S3:在新建工程项目下创建一个执行文件来运行测试场景文件,具体实现过程为:在工程的src下创建CucumberTest包,在包中新建TestRunner.java文件,运行该测试文件,所有测试场景文件执行一遍。

这里有注释强调一下:

@Runwith(Cucumber.class):制定测试运行器;

@CucumberOptions(

Feature=“Feature”,:feature代表工程的根目录;

glue=“stepDefinition”自动化代码所在的包名;

format={“html:target/cucumber-html-report”}html格式的测试报告。

S4:利用Testng运行测试场景文件,获取自动化测试代码函数,具体实现过程为:通过testng运行测试场景文件,控制台会生成运行测试场景文件过程中,没有找到的对应自动化测试代码函数。

S5:将获取的自动化代码函数写入步骤S3创建的执行文件中,创建包stepDefinition,在这个包里面新建一个类Login_Test.java,将控制台生成的自动化测试代码函数复制到类Login_Test.java文件内,删掉注释和thorw抛出的异常,按照测试场景进行相应自动化测试代码的编写。

S6:重新运行该执行文件,进行场景和功能测试。以访问126邮箱并且登录为例,可以看到浏览器已经打开了,并且输入了126的网址,输入用户名和密码登录成功,所有的执行步骤都是按照测试场景描述一步一步来的。

S7:生成并获取html测试报告,具体过程为:通过testng运行相应的测试文件testRunner.java,运行结束后会生成html的测试报告,访问工程的target\cucumber-html-report目录下,打开index.html,会显示本次测试执行情况,且可以通过配置属性将测试报告已邮件的形式发送。

在现实的自动化测试系统中,往往会有成千上万的测试用例,测试用例相互之间存在依赖,执行有先后顺序,这些都可以通过testng的@dependence@group或者优先级合理的解决掉,为了加快测试用例执行时间,我们也可以通过testng.xml中的paralle、和thead-count等参数,制定并发级别和开启线程数,从而加快自动化测试速度。

尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值