本发明涉及计算机技术领域,具体的说是基于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等参数,制定并发级别和开启线程数,从而加快自动化测试速度。

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

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

  1. 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...

    一.cucumber简介 cucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试框架产品.cucumber使用自然语言来描述测试,通过设置中文 ...

  2. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

  3. 2022超级好用的接口自动化测试框架:基于python+requests+pytest+allure实现

    众所周知,目前市面上大部分的企业实施接口自动化最常用的有两种方式: 1.基于工具类的接口自动化,如: Postman+Newman+Jenkins+Git/svn Jmeter+Ant+Jenkins ...

  4. python ui自动化测试框架_基于python语言下的UI自动化测试框架搭建(一)

    最近在搭一个UI自动化测试框架,想把整个搭建过程分享出来,如果有不对的地方,希望大家能够指正,首先创建一个名称为,antomation_framework_demo的工程文件, pycharm中工程及 ...

  5. 基于python的界面自动化测试-基于Selenium+Python的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  6. python selenium po_python+selenium基于po模式的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  7. java web典型模块大全_python+selenium基于po模式的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  8. 自动化测试框架cucumber_10分钟学会自动化测试框架--Cucumber + Watir

    估计你早已厌烦了成百上千遍的网页点击测试,至少之前的我是这样的,那么,让自己的web测试自动化吧,本文使用Cucumber + Watir来完成自动化测试,从最简单例子入手,一步一步重构成一个完整的自 ...

  9. 基于Selenium实现的web自动化测试框架

    目录 一.什么是Selenium? 二.自动化测试框架 三.自动化框架的设计和实现 四.需要改进的模块 五.总结 一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供 ...

最新文章

  1. 'imread' was not declared in this scope
  2. jenkins(4): jenkins 插件
  3. ◎Hspace 和vspace 的设定
  4. 调用函数Fact()来计算m!
  5. 《东周列国志》第四回 秦文公郊天应梦 郑庄公掘地见母
  6. 2022年了,云游戏离我们还有多远?【文末附彩蛋】
  7. 低配电脑不能运行大型游戏?试试AWS EC2
  8. 腾讯乐固多渠道打包配置
  9. 天池竞赛——工业蒸汽量预测(完整代码详细解析)
  10. mysql通过配置文件进行优化
  11. Procreate闪闪的神仙笔刷合集,IPad绘画必备
  12. 计算机协会ppt介绍,计算机协会成功举办ppt大赛
  13. 想装吗 看看装B大全
  14. Java语音SDK接口开发经验及具体开发实现
  15. 因果分析系列1--入门
  16. 【应届生笔试资料分享一】中国人民银行计算机笔试资料汇总
  17. 报警c语言程序,单片机C语言程序设计:报警与旋转灯
  18. wildfly mysql xa_wildfly jobss 同时连接多个数据源 datasource xa-datasource
  19. ElasticSearch最新版快速入门详解
  20. 测试开发工程师成长日记004 - linux常用命令day01

热门文章

  1. 小试牛刀之Django
  2. 【Django】@login_required用法简介
  3. 你真的了解javascript吗?(一)
  4. POJ 2728 Desert King [最优比率生成树]
  5. iOS App 升级时文件的保留情况
  6. LYNC2013部署系列PART2:后端部署
  7. 有关指针的数据类型的小结
  8. 局域网配置NTP服务器
  9. 《solidity学习笔记》chapter 3-solidity其他知识
  10. iOS快速上手应用内购(IAP)附Demo