CN107766255A - 基于Cucumber和Testng的WebUI自动化测试方法 - Google Patents
基于Cucumber和Testng的WebUI自动化测试方法 Download PDFInfo
- Publication number
- CN107766255A CN107766255A CN201711139243.3A CN201711139243A CN107766255A CN 107766255 A CN107766255 A CN 107766255A CN 201711139243 A CN201711139243 A CN 201711139243A CN 107766255 A CN107766255 A CN 107766255A
- Authority
- CN
- China
- Prior art keywords
- test
- cucumber
- testng
- file
- scene
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的一种基于Cucumber和Testng的WebUI自动化测试方法,所述的方法包括:S1:在Cucumber下新建一个工程项目;S2:在新建工程项目下创建测试场景文件;S3:在新建工程项目下创建一个执行文件来运行测试场景文件;S4:利用Testng运行测试场景文件,获取自动化测试代码函数;S5:将获取的自动化代码函数写入步骤S3创建的执行文件中;S6:重新运行该执行文件,进行场景和功能测试。通过将敏捷开发中的用户故事或者需求和测试用例建立一一对应的映射关系,从而保证开发和测试的目标与需求保持一致,可以更好的让参与者用唯一的用例需求进行相关工作,从而避免了因为需求理解不一致,导致产品功能最后出现偏差。
Description
技术领域
本发明涉及计算机技术领域,具体的说是基于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等参数,制定并发级别和开启线程数,从而加快自动化测试速度。
尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。
Claims (8)
1.一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:所述的方法包括:
S1:在Cucumber下新建一个工程项目;
S2:在新建工程项目下创建测试场景文件;
S3:在新建工程项目下创建一个执行文件来运行测试场景文件;
S4:利用Testng运行测试场景文件,获取自动化测试代码函数;
S5:将获取的自动化代码函数写入步骤S3创建的执行文件中;
S6:重新运行该执行文件,进行场景和功能测试。
2.根据权利要求1所述的一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:所述的方法还包括:
S7:生成并获取html测试报告。
3.根据权利要求2所述的一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:步骤S7中,获取html测试报告的具体过程为:在工程项目的target\cucumber-html-report目录下,打开并复制html测试报告。
4.根据权利要求1或2所述的一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:步骤S1的具体实现过程为:新建Java工程,建立lib文件夹,将Cucumber的相关jar包、testng的相关jar包、selenium的相关jar包放到lib文件夹内,之后加lib文件夹添加到工程的构建路径中。
5.根据权利要求4所述的一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:步骤S2的具体实现过程为:在Java工程中,建立Feature文件夹,然后,在这个文件夹中新建一个文件,文件名为Login_test.feature,最后双击该文件,利用中文或英文编写测试场景。
6.根据权利要求5所述的一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:步骤S3的具体实现过程为:在工程的src下创建CucumberTest包,在包中新建TestRunner.java文件,运行该测试文件,所有测试场景文件执行一遍。
7.根据权利要求6所述的一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:步骤S4的具体实现过程为:通过testng运行测试场景文件,控制台会生成运行测试场景文件过程中,没有找到的对应自动化测试代码函数。
8.根据权利要求7所述的一种基于Cucumber和Testng的WebUI自动化测试方法,其特征是:步骤S5的具体实现过程为:创建包stepDefinition,在这个包里面新建一个类Login_Test.java,将控制台生成的自动化测试代码函数复制到类Login_Test.java文件内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711139243.3A CN107766255A (zh) | 2017-11-16 | 2017-11-16 | 基于Cucumber和Testng的WebUI自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711139243.3A CN107766255A (zh) | 2017-11-16 | 2017-11-16 | 基于Cucumber和Testng的WebUI自动化测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107766255A true CN107766255A (zh) | 2018-03-06 |
Family
ID=61279532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711139243.3A Pending CN107766255A (zh) | 2017-11-16 | 2017-11-16 | 基于Cucumber和Testng的WebUI自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766255A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828753A (zh) * | 2018-03-26 | 2019-05-31 | 上海聆播信息科技有限公司 | 一种行为驱动开发中剧本文档的可视化编辑方法及其装置 |
CN111241000A (zh) * | 2020-04-26 | 2020-06-05 | 四川新网银行股份有限公司 | 基于cucumber测试工具的分层自动化测试方法 |
CN112597011A (zh) * | 2020-12-16 | 2021-04-02 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN113204389A (zh) * | 2021-05-28 | 2021-08-03 | 的卢技术有限公司 | 一种生成自动化执行策略的方法、系统、设备及存储介质 |
CN113434405A (zh) * | 2021-06-24 | 2021-09-24 | 青岛海尔科技有限公司 | 测试文件的确定方法及装置、存储介质及电子装置 |
CN117094302A (zh) * | 2023-08-04 | 2023-11-21 | 广州赛意信息科技股份有限公司 | 基于ChatGPT的自动化处理方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150082280A1 (en) * | 2013-09-18 | 2015-03-19 | Yahoo! Inc. | Automatic verification by comparing user interface images |
CN105608012A (zh) * | 2016-03-10 | 2016-05-25 | 武汉斗鱼网络科技有限公司 | 一种自动化测试方法及系统 |
CN107315686A (zh) * | 2017-06-28 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种自动化测试的运行方法 |
-
2017
- 2017-11-16 CN CN201711139243.3A patent/CN107766255A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150082280A1 (en) * | 2013-09-18 | 2015-03-19 | Yahoo! Inc. | Automatic verification by comparing user interface images |
CN105608012A (zh) * | 2016-03-10 | 2016-05-25 | 武汉斗鱼网络科技有限公司 | 一种自动化测试方法及系统 |
CN107315686A (zh) * | 2017-06-28 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种自动化测试的运行方法 |
Non-Patent Citations (5)
Title |
---|
(英)韦恩,(挪)赫勒索著;许晓斌,王江平译: "《Cucumber 行为驱动开发指南》", 31 July 2013 * |
ALINAWU: "https://www.jianshu.com/p/b44245bd9d8b ;cucumber java实战", 《简书》 * |
ROMAN S. SAMAREV,ELENA V. SMIRNOVA: "《analysis of doamin specific languages for gui tesing》", 《JOURNAL OF MULTIDISCIPLINARY ENGINEERING SCIENCE AND TECHNOLOGY (JMEST)》 * |
柳晓华,李劲华: "《基于BDD的数据驱动自动化测试方法》", 《青岛大学学报(自然科学版)》 * |
温素剑: "《零成本实现Web自动化测试 基于Selenium WebDriver和Cucumber》", 31 January 2015, 电子工业出版社 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828753A (zh) * | 2018-03-26 | 2019-05-31 | 上海聆播信息科技有限公司 | 一种行为驱动开发中剧本文档的可视化编辑方法及其装置 |
CN111241000A (zh) * | 2020-04-26 | 2020-06-05 | 四川新网银行股份有限公司 | 基于cucumber测试工具的分层自动化测试方法 |
CN111241000B (zh) * | 2020-04-26 | 2020-08-21 | 四川新网银行股份有限公司 | 基于cucumber测试工具的分层自动化测试方法 |
CN112597011A (zh) * | 2020-12-16 | 2021-04-02 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN112597011B (zh) * | 2020-12-16 | 2024-04-16 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN113204389A (zh) * | 2021-05-28 | 2021-08-03 | 的卢技术有限公司 | 一种生成自动化执行策略的方法、系统、设备及存储介质 |
CN113204389B (zh) * | 2021-05-28 | 2023-09-22 | 的卢技术有限公司 | 一种生成自动化执行策略的方法、系统、设备及存储介质 |
CN113434405A (zh) * | 2021-06-24 | 2021-09-24 | 青岛海尔科技有限公司 | 测试文件的确定方法及装置、存储介质及电子装置 |
CN113434405B (zh) * | 2021-06-24 | 2023-06-13 | 青岛海尔科技有限公司 | 测试文件的确定方法及装置、存储介质及电子装置 |
CN117094302A (zh) * | 2023-08-04 | 2023-11-21 | 广州赛意信息科技股份有限公司 | 基于ChatGPT的自动化处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766255A (zh) | 基于Cucumber和Testng的WebUI自动化测试方法 | |
Pop et al. | Designing an MVC model for rapid web application development | |
Gojare et al. | Analysis and design of selenium webdriver automation testing framework | |
US9207952B2 (en) | Semantic mapping of objects in a user interface automation framework | |
CN103597469B (zh) | 集成开发环境中的实况浏览器工具 | |
Benmoussa et al. | A new model for the selection of web development frameworks: application to PHP frameworks | |
CN104391786B (zh) | 网页自动化测试系统及其方法 | |
US11907734B2 (en) | Dynamic linking of content elements to development tool resources | |
CN105373478B (zh) | 自动化测试方法和系统 | |
Buinevich et al. | The life cycle of vulnerabilities in the representations of software for telecommunication devices | |
US9367433B2 (en) | Generating input values for a test dataset from a datastore based on semantic annotations | |
US20210117313A1 (en) | Language agnostic automation scripting tool | |
US11829278B2 (en) | Secure debugging in multitenant cloud environment | |
Colombo et al. | Verifying web applications: from business level specifications to automated model-based testing | |
Purbo | A systematic analysis: Website development using Codeigniter and Laravel framework | |
Amparore | A new GreatSPN GUI for GSPN editing and CSL TA model checking | |
Kourtzanidis et al. | RepoSkillMiner: identifying software expertise from GitHub repositories using natural language processing | |
Osaiweran et al. | Evaluating the effect of a lightweight formal technique in industry | |
Javed et al. | Model Based Testing for Web Applications: A Literature Survey Presented. | |
Athaiya et al. | Testing and analysis of web applications using page models | |
Biňas | Identifying web services for automatic assessments of programming assignments | |
Zmeev et al. | Implementation of essence practice into project management system redmine | |
Chen et al. | A Clustering Method for Assisting in Tagging Same-Behavior Tested Web Elements | |
Arora | Web testing using UML environment models | |
Zhao et al. | Communication scheduling data generation for pre-configured IMA network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180306 |