CN109446085A - 用于web应用***的分层测试方法 - Google Patents
用于web应用***的分层测试方法 Download PDFInfo
- Publication number
- CN109446085A CN109446085A CN201811261939.8A CN201811261939A CN109446085A CN 109446085 A CN109446085 A CN 109446085A CN 201811261939 A CN201811261939 A CN 201811261939A CN 109446085 A CN109446085 A CN 109446085A
- Authority
- CN
- China
- Prior art keywords
- foreground
- test
- web application
- application system
- case
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/368—Test management for test version control, e.g. updating test cases to a new software version
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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于WEB应用***的分层测试方法,该方法包括以下步骤:对被测WEB应用***,记录其版本号,WEB应用***包括待测试功能模块Ai,对功能模块Ai进行功能用例写作并分层,分别生成模块Ai前台测试用例和模块Ai后台测试用例;根据测试用例开发测试脚本;对WEB应用***的自动化测试进行分层,对前台和后台分别进行验证;当被测WEB应用***发布新版本,且界面发生变化;选取两个版本中未改动的功能模块Ai,将其对应的模块Ai后台测试脚本作为新版本模块Ai后台测试脚本;根据界面变化,生成新版本对应的模块Ai前台测试用例。本发明通过将WEB应用***的前台和后台分层测试,后台测试脚本则可以保持持续可用性,提高测试效率,降低了测试成本和周期。
Description
技术领域
本发明涉及软件测试技术,尤其涉及一种用于WEB应用***的分层测试方法。
背景技术
传统的WEB自动化测试,有两种方式:1、基于图像或人工操作进行录制和回放。这种方式入门门槛低,但是回放执行的稳定性和成功率堪忧,假NG率高。2、基于WEB前台的控件来寻找操作点并执行指定的操作,后者比前者在执行稳定性上有极大的提升。第二种方式需要采用脚本语言编写脚本。常用的WEB测试脚本语言有如Ruby的watir组件,Python,Selenium。
但软件开发并不是一次性发布的,都是通过迭代进行持续增量开发和增量发布。如图1所示:新版本的WEB应用***新增了模块B以后,web前台往往变化较大,而继承下来的功能A并没有变更,即后台实现没有变更。而自动化脚本必须通过前台来执行验证,这导致原来开发的自动化脚本,不能再用来验证功能A。脚本A中大量脚本需要重新开发,极大的拉低了测试效率,增加了测试成本。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种用于WEB应用***的分层测试方法。
本发明解决其技术问题所采用的技术方案是:用于WEB应用***的分层测试方法,包括以下步骤:
1)对被测WEB应用***,记录其版本号,WEB应用***包括待测试功能模块Ai,对功能模块Ai进行功能用例写作并分层,分别生成模块Ai前台测试用例和模块Ai后台测试用例;
所述模块Ai前台测试用例用于保证各个独立控件的点击效果,即操作控件后能正确的向后台发出http(s)请求消息;
所述模块Ai后台测试用例用于保证***的功能完好,即后台能正确处理前台发出的http(s)请求消息,并响应正确的http(s)消息;
2)针对模块Ai前台测试用例开发自动化脚本,生成模块A前台测试脚本;针对模块Ai后台测试用例开发自动化脚本,生成模块Ai后台测试脚本;
3)对WEB应用***的自动化测试进行分层,对前台和后台分别进行验证;
4)当被测WEB应用***更新,发布新版本,在原版本WEB应用***基础上界面发生变化;
5)选取两个版本中未改动的功能模块Ai,将其对应的模块Ai后台测试脚本引入新版本完全重用,作为新版本模块Ai后台测试脚本;
6)根据界面变化,在模块Ai前台测试用例基础上,进行修改和增加,生成新版本对应的模块Ai前台测试用例。
按上述方案,若被测WEB应用***迭代开发增加功能模块B,前台因为功能模块B的加入界面发生变化,则测试方法还包括以下步骤:
对模块B进行功能用例写作,生成模块B后台测试用例;
针对模块B后台测试用例开发自动化脚本,生成模块B后台测试脚本;
若功能模块Ai中的模块Am与模块B有功能关联,在模块Am前台测试用例基础上,进行修改和增加,生成模块AmB前台测试用例;
在模块AmB前台测试用例和模分Am前台测试脚本基础上,进行修改和增加,生成模块AmB前台测试脚本。
按上述方案,所述步骤1)中对功能模块Ai进行功能用例写作并分层,该分层是根据前台和后台的不同测试流程,进行功能用例的分层。
按上述方案,所述前台测试流程为:1)执行WEB页面控件操作;2)根据需要提交操作,触发前台向后台发出命令;3)前台向后台发出命令过程中,按源IP和目的IP为条件进行http(s)消息捕获;4)检查http(s)报文内容,确保与操作内容相符,没有遗漏信息或多余信息,信息内容正确;
所述后台测试流程为:1)构造http(s)消息,发送到后台;2)后台代码会对消息进行计算,并响应http(s)消息给前台;3)后台响应前台过程中,按源IP和目的IP为条件进行http(s)消息捕获;4)检查http(s)报文内容,确保后台的计算结果正确,信息内容正确。
按上述方案,所述WEB应用***为互联网WEB应用***、或网络及网元管理***、或通过WEB直接访问和配置的大型或小型的仪器设备。
本发明产生的有益效果是:本发明通过提供一种新的测试思路,将WEB应用***的前台和后台分别进行自动化验证。在***的迭代开发过程中,后台一般进行累加式的开发,而前台往往是颠覆式的。分层以后,前台的变化会导致前台测试脚本需要重新适配,但后台测试脚本则可以保持持续可用性,使得版本间的自动化脚本重用率达到85%以上,大大降低了脚本重复修改投入的人力,提高测试效率,降低了测试成本和周期。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明背景技术的测试原理示意图;
图2是本发明实施例的方法流程图;
图3是本发明实施例的测试原理示意图;
图4是本发明实施例的前台测试流程示意图;
图5是本发明实施例的后台测试流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图2和图3所示,本发明提供一种用于WEB应用***的分层测试方法,本发明所指的WEB应用***为互联网WEB应用***,如各大购物网站;或网络及网元管理***,如云管理平台;或通过WEB直接访问和配置的大型或小型的仪器设备;WEB应用***的工作原理如下:用户在前台点击WEB页面,前台根据用户的点击向后台发送相应的http或https消息,后台对前台的请求做出计算和响应后,向前台返回成功,失败,或其他计算结果。前台和后台是以http(s)消息为纽带的。因此,我们可以对WEB应用***的自动化测试进行分层,将前台和后台分别进行验证。
该方法包括以下步骤:
1)对被测WEB应用***,记录其版本号,WEB应用***包括待测试功能模块Ai,对功能模块Ai进行功能用例写作并分层,分别生成模块Ai前台测试用例和模块Ai后台测试用例;下标i用于标记待测试功能模块的数量;
所述模块Ai前台测试用例用于保证各个独立控件的点击效果,即操作控件后能正确的向后台发出http(s)请求消息;
所述模块Ai后台测试用例用于保证***的功能完好,即后台能正确处理前台发出的http(s)请求消息,并响应正确的http(s)消息;
如图4和图5,前台测试流程为:1)执行WEB页面控件操作,比如:对编辑类控件进行输入,选择类控件进行选择。2)若需要提交则进行提交,确保在1)或2)步骤中可以触发前台向后台发出命令。3)步骤1)或2)过程中,按源IP和目的IP为条件进行Http(s)消息捕获,4)检查http(s)报文内容,与操作内容相符,没有遗漏信息或多余信息,信息内容正确。
图5中,后台测试流程为:1)构造http(s)消息,发送到后台,2)后台代码会对消息进行计算,并响应http(s)消息给前台,3)步骤2过程中,按源IP和目的IP为条件进行Http(s)消息捕获,4)检查http(s)报文内容,后台的计算结果正确,信息内容正确。
2)针对模块Ai前台测试用例开发自动化脚本,生成模块A前台测试脚本;针对模块Ai后台测试用例开发自动化脚本,生成模块Ai后台测试脚本;
3)对WEB应用***的自动化测试进行分层,对前台和后台分别进行验证;
4)当被测WEB应用***更新,发布新版本,在原版本WEB应用***基础上界面发生变化;
界面发生变化的原因为:界面修改、增加功能或减少功能;
5)选取两个版本中未改动的功能模块Ai,将其对应的模块Ai后台测试脚本引入新版本完全重用,作为新版本模块Ai后台测试脚本;
6)根据界面变化,在模块Ai前台测试用例基础上,进行修改和增加,生成新版本对应的模块Ai前台测试用例;
7)若被测WEB应用***迭代开发增加功能模块B,前台因为功能模块B的加入界面发生变化,则测试方法还包括以下步骤:
对模块B进行功能用例写作,生成模块B后台测试用例;
针对模块B后台测试用例开发自动化脚本,生成模块B后台测试脚本;
若功能模块Ai中的模块Am与模块B有功能关联,在模块Am前台测试用例基础上,进行修改和增加,生成模块AmB前台测试用例;
在模块AmB前台测试用例和模分Am前台测试脚本基础上,进行修改和增加,生成模块AmB前台测试脚本。
常规的WEB应用***,通过使用本发明方法将前后台分别设计测试用例以后,后台测试量占比高达80%,并且可以100%重用。前台用例重用率较低,约70%的脚本都需要再适配。整体的脚本重用率可高达85%以上。大大降低了脚本重复修改投入的人力成本。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (5)
1.一种用于WEB应用***的分层测试方法,其特征在于,包括以下步骤:
1)对被测WEB应用***,记录其版本号,WEB应用***包括待测试功能模块Ai,对功能模块Ai进行功能用例写作并分层,分别生成模块Ai前台测试用例和模块Ai后台测试用例;
所述模块Ai前台测试用例用于保证各个独立控件的点击效果,即操作控件后能正确的向后台发出http(s)请求消息;
所述模块Ai后台测试用例用于保证***的功能完好,即后台能正确处理前台发出的http(s)请求消息,并响应正确的http(s)消息;
2)针对模块Ai前台测试用例生成模块A前台测试脚本;针对模块Ai后台测试用例生成模块Ai后台测试脚本;
3)对WEB应用***的自动化测试进行分层,对前台和后台分别进行验证;
4)当被测WEB应用***更新,发布新版本,在原版本WEB应用***基础上界面发生变化;
5)选取两个版本中未改动的功能模块Ai,将其对应的模块Ai后台测试脚本引入新版本完全重用,作为新版本模块Ai后台测试脚本;
6)根据界面变化,在模块Ai前台测试用例基础上,进行修改和增加,生成新版本对应的模块Ai前台测试用例。
2.根据权利要求1所述的用于WEB应用***的分层测试方法,其特征在于,若被测WEB应用***迭代开发增加功能模块B,前台因为功能模块B的加入界面发生变化,则测试方法还包括以下步骤:
对模块B进行功能用例写作,生成模块B后台测试用例;
针对模块B后台测试用例开发自动化脚本,生成模块B后台测试脚本;
若功能模块Ai中的模块Am与模块B有功能关联,在模块Am前台测试用例基础上,进行修改和增加,生成模块AmB前台测试用例;
在模块AmB前台测试用例和模分Am前台测试脚本基础上,进行修改和增加,生成模块AmB前台测试脚本。
3.根据权利要求1所述的用于WEB应用***的分层测试方法,其特征在于,所述步骤1)中对功能模块Ai进行功能用例写作并分层,该分层是根据前台和后台的不同测试流程,进行功能用例的分层。
4.根据权利要求3所述的用于WEB应用***的分层测试方法,其特征在于,所述前台测试流程为:1)执行WEB页面控件操作;2)根据需要提交操作,触发前台向后台发出命令;3)前台向后台发出命令过程中,按源IP和目的IP为条件进行http(s)消息捕获;4)检查http(s)报文内容,确保与操作内容相符,没有遗漏信息或多余信息,信息内容正确;
所述后台测试流程为:1)构造http(s)消息,发送到后台;2)后台代码会对消息进行计算,并响应http(s)消息给前台;3)后台响应前台过程中,按源IP和目的IP为条件进行http(s)消息捕获;4)检查http(s)报文内容,确保后台的计算结果正确,信息内容正确。
5.根据权利要求1所述的用于WEB应用***的分层测试方法,其特征在于,所述WEB应用***为互联网WEB应用***、或网络及网元管理***、或通过WEB直接访问和配置的大型或小型的仪器设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811261939.8A CN109446085A (zh) | 2018-10-26 | 2018-10-26 | 用于web应用***的分层测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811261939.8A CN109446085A (zh) | 2018-10-26 | 2018-10-26 | 用于web应用***的分层测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109446085A true CN109446085A (zh) | 2019-03-08 |
Family
ID=65548800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811261939.8A Pending CN109446085A (zh) | 2018-10-26 | 2018-10-26 | 用于web应用***的分层测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446085A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776084A (zh) * | 2017-01-19 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种RabbitMQ集群服务的错误检测封装方法 |
CN111324542A (zh) * | 2020-03-06 | 2020-06-23 | 广东电网有限责任公司 | 一种Web应用回归测试用例选择***、方法以及设备 |
CN111506311A (zh) * | 2020-04-22 | 2020-08-07 | 大汉软件股份有限公司 | 互联网快速迭代开发、集成、发布方法和中台赋能引擎 |
CN111984539A (zh) * | 2020-08-25 | 2020-11-24 | 北京微步在线科技有限公司 | 一种网页前端自动测试方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564488A (zh) * | 2004-03-21 | 2005-01-12 | 中兴通讯股份有限公司 | 移动***语音业务故障在线定位的方法 |
CN101145127A (zh) * | 2006-09-12 | 2008-03-19 | 中兴通讯股份有限公司 | 一种基于设备的软件测试自动化***及其方法 |
CN104598376A (zh) * | 2014-12-30 | 2015-05-06 | 中国科学院计算机网络信息中心 | 一种数据驱动的分层自动化测试***和方法 |
US20160117287A1 (en) * | 2014-10-22 | 2016-04-28 | Springbox Labs, Inc. | Method and Apparatus for Rendering Websites on Physical Devices |
CN107766253A (zh) * | 2017-11-13 | 2018-03-06 | 南京大学 | 一种基于模型变更的自动维护测试脚本的方法 |
-
2018
- 2018-10-26 CN CN201811261939.8A patent/CN109446085A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564488A (zh) * | 2004-03-21 | 2005-01-12 | 中兴通讯股份有限公司 | 移动***语音业务故障在线定位的方法 |
CN101145127A (zh) * | 2006-09-12 | 2008-03-19 | 中兴通讯股份有限公司 | 一种基于设备的软件测试自动化***及其方法 |
US20160117287A1 (en) * | 2014-10-22 | 2016-04-28 | Springbox Labs, Inc. | Method and Apparatus for Rendering Websites on Physical Devices |
CN104598376A (zh) * | 2014-12-30 | 2015-05-06 | 中国科学院计算机网络信息中心 | 一种数据驱动的分层自动化测试***和方法 |
CN107766253A (zh) * | 2017-11-13 | 2018-03-06 | 南京大学 | 一种基于模型变更的自动维护测试脚本的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776084A (zh) * | 2017-01-19 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种RabbitMQ集群服务的错误检测封装方法 |
CN111324542A (zh) * | 2020-03-06 | 2020-06-23 | 广东电网有限责任公司 | 一种Web应用回归测试用例选择***、方法以及设备 |
CN111506311A (zh) * | 2020-04-22 | 2020-08-07 | 大汉软件股份有限公司 | 互联网快速迭代开发、集成、发布方法和中台赋能引擎 |
CN111984539A (zh) * | 2020-08-25 | 2020-11-24 | 北京微步在线科技有限公司 | 一种网页前端自动测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446085A (zh) | 用于web应用***的分层测试方法 | |
WO2021036447A1 (zh) | 基于Flink引擎的业务数据处理方法及装置 | |
CN108733563B (zh) | 应用软件的业务故障处理方法、服务端及存储介质 | |
CN106571949A (zh) | 埋点处理方法及装置 | |
CN110297632A (zh) | 代码生成方法和装置 | |
US20100325492A1 (en) | Identification Of Elements Of Currently-Executing Component Script | |
WO2012016400A1 (zh) | 配置文件管理的方法及装置 | |
US11550704B2 (en) | Methods, systems and computer program products for automated software testing | |
CN108459951B (zh) | 测试方法和装置 | |
CN107894956A (zh) | 一种远程bios升降级刷新自动化测试方法 | |
CN103678124B (zh) | 基于持续集成环境的视频监控平台自动测试方法及装置 | |
CN104572446A (zh) | 一种自动化测试方法及*** | |
WO2023104121A1 (zh) | 测试用例的测试方法及装置、电子设备和存储介质 | |
CN108923997A (zh) | 一种基于python的云服务节点自动测试方法及装置 | |
CN107341141A (zh) | 表单管理方法、装置、介质和计算设备 | |
CN115576817A (zh) | 一种自动化测试***、方法、电子设备及存储介质 | |
CN111176974B (zh) | 容灾测试方法、装置、计算机可读介质及电子设备 | |
CN113366453A (zh) | 使用神经语言编程和机器学习机制基于行为驱动开发步骤定义和相似性分析从行为驱动开发场景生成测试模型 | |
CN112230848B (zh) | 一种nvm自动配置方法、装置和设备 | |
CN105550103A (zh) | 一种基于自定义测试脚本的自动化测试方法 | |
CN117113080A (zh) | 数据处理和代码处理方法、装置、一体机和存储介质 | |
CN115687138A (zh) | 代码校验方法、装置及服务器 | |
CN115599361A (zh) | 一种软件的开发方法、装置、设备及介质 | |
CN115757129A (zh) | 在政务服务领域构建的web自动化测试框架及其应用方法 | |
CN114827729B (zh) | 一种epg上线检测方法、装置及*** |
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 |
Application publication date: 20190308 |
|
RJ01 | Rejection of invention patent application after publication |