CN103678120A - 基于建模的web应用自动化测试方法 - Google Patents
基于建模的web应用自动化测试方法 Download PDFInfo
- Publication number
- CN103678120A CN103678120A CN201310560257.8A CN201310560257A CN103678120A CN 103678120 A CN103678120 A CN 103678120A CN 201310560257 A CN201310560257 A CN 201310560257A CN 103678120 A CN103678120 A CN 103678120A
- Authority
- CN
- China
- Prior art keywords
- page
- modeling
- browser
- testing method
- method based
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种基于建模的web应用自动化测试方法,包括:S1、建立浏览器,使用该浏览器访问待测网站页面,获取数据;S2、分析页面,进行页面建模,并保存至页面建模数据文件;S3、在测试时,启动所述浏览器,读取所述页面建模数据文件,从中获取页面的受测对象和测试用例,模拟用户操作。本方法通过浏览器对测试页面自动建模,并通过控制浏览器运行过程中调用页面模型数据,控制浏览器实现模拟用户操作,此方法可跨浏览器、可跨平台、可并行,能实现自动化测试从开发、执行到维护的高效。
Description
技术领域
本发明涉及web测试技术,更具体地,涉及基于建模的web应用自动化测试方法。
背景技术
互联网应用正逐步渗透到人们生活的各个方面,原来需要面对面处理的事务通过网络即可实现,例如网上缴费、购物、更换证件。将来,互联网也必然会有更多的应用。因此,各个网站的页面会更新非常频繁,这也必然导致web应用测试更频繁。虽然现在已经有了web应用的自动化测试,但是由于用户需求变化快、界面变化频繁等特点,使web应用自动化测试的开展都面临着脚本失败率高,脚本维护成本高的困扰。即使是应用正式发布后也会有新需求源源不断的加入,这些需求往往伴随着界面或者控件的属性随之改变,导致需要重新设计和编写自动测试方案。
发明内容
针对上述问题,本发明提出一种基于建模的web应用自动化测试方法,包括:S1、建立浏览器,使用该浏览器访问待测网站页面,获取数据;S2、分析页面,进行页面建模,并保存至页面建模数据文件;S3、在测试时,启动所述浏览器,读取所述页面建模数据文件,从中获取页面的受测对象和测试用例,模拟用户操作。
进一步,在S1中,该浏览器是可配置的,获取的数据是用户交互数据。
进一步,在S2中,所述页面建模数据文件保存了受测对象的属性以及测试用例。
进一步,在S1中,通过JEditorPane与JSpider浏览器访问web站点。
进一步,在S2中,通过JSpider爬虫引擎对站点待测试页面进行页面建模,选择页面上相应的受测对象并将数据保存至本地的页面模型数据文件。
进一步,在S3中,使用Webdriver提供的接口启动并控制所述浏览器,通过数据解析器从页面建模数据文件中获取页面的受测对象和测试用例,根据测试用例的操作步骤,实现模拟用户操作。
进一步,S3还包括:启动所述浏览器,通过Jenkins持续集成平台或命令行调用自动化脚本,脚本通过webdriver API调用所述页面建模数据文件,并在浏览器中执行脚本中相应的操作。
本方法通过浏览器对测试页面自动建模,并通过控制浏览器运行过程中调用页面模型数据,控制浏览器实现模拟用户操作,此方法可跨浏览器、可跨平台、可并行,能实现自动化测试从开发、执行到维护的高效。
附图说明
图1为本发明的方法的一个实施例的流程图;
图2为图1中的页面建模的流程图;
图3为本发明的系统的一个实施例的结构图;
图4为图3中的自动测试过程的流程图;
图5为一个应用实例的一个截图。
具体实施方式
在本发明中,“对象”指的是用户期望在页面中操作的对象,例如文本框、图片、按钮、连接等。“属性”在html页面源码中,用来表示该对象的性质和特性,通常都是以“对象名”=“值”的形式来表示。“测试用例”是包含了业务逻辑、顺序、期望结果等的数据集合,是自动化测试脚本编写的依据。
图1为本发明的方法的一个实施例的流程图,所述方法包括:
步骤S1、建立浏览器,使用该浏览器访问待测页面,其中该浏览器能够抓取待测页面的源码。
该浏览器是特制的,可以用多种方式实现。该浏览器是可配置的,可展示页面的html源码。浏览器抓取的数据是页面上的受测对象,所述受测对象可以是静态的(例如图片),也可以是动态的(例如用户交互数据,比如输入框、搜索按钮)。
有利地,所述浏览器能够进行输入、链接点击等操作,还可以模拟复杂浏览器的功能,包括拖拽、截屏、文件上传与下载的验证等。更有利地,该浏览器能够检查站点的错误。
步骤S2、分析待测页面的源码,进行页面建模,并保存至页面模型数据文件。
页面模型,是指自动化测试中会使用到的对象所组成的模型。
图2显示了如何进行页面建模。在该步骤S2中,建模针对的是待测页面中需要操作的对象。具体为,建模的目标是页面中的受测对象(选择哪些受测对象可以预先根据业务规则配置),每一个受测对象在页面中具有固定的路径。因此,受测对象-值(KEY-VALUE)就形成了该页面的模型。将该受测对象-值存储到文件中,形成页面模型数据文件。其中,VALUE保存的是受测对象的路径。在一个实施例中,VALUE保存的是XPATH的值。XPATH是XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPATH基于XML的树状结构,提供在数据结构树中找寻节点的能力。因此,用XPATH的值可以定位受测对象在页面中的位置。
其中,如果待测页面不涉及用户操作,可以直接对页面进行建模,形成页面模型。
如果待测页面中包括需要用户操作的对象,例如某些控件,则通过用户在页面中对对象的操作,自动生成受测对象与值。通过用户在页面中的操作将需要操作的对象选取出来,因为页面上的对象成百上千,但是自动化脚本中所使用的只是很小一部分,通过用户的操作将真正使用的对象做成页面模型。通过用户在页面中对控件的操作,获得受测对象与值。
步骤S3、在测试时,启动所述浏览器,读取所述页面模型数据文件,从中获取页面的受测对象和值,进行页面测试。
更进一步,在测试时,启动所述浏览器,读取所述页面模型数据文件,从中获取页面的受测对象和值,用测试用例模拟用户操作。
因此,在本发明中,逻辑和数据不再耦合在一起,本发明通过进行页面建模,将页面属性和页面数据分离开,当页面变更后,只需要对页面重新建模或者更新测试用例,即可进行自动测试。
本方法通过浏览器对测试页面自动建模,并通过控制浏览器运行过程中调用页面模型数据,控制浏览器实现模拟用户操作,此方法可跨浏览器、可跨平台、可并行,能实现自动化测试从开发、执行到维护的高效。
在现有技术中,在web自动化测试开展的过程中,脚本开发难度大与维护成本高,自动化成本高。而在本发明中,当页面变更引起脚本执行失败时,通过页面重新建模或直接修改本地数据文件,即可自动完成页面数据维护工作。页面重新建模就是在浏览器中重新操作控件,刷新控件对象的KEY-VALUE值,直接修改本地数据文件即直接在本地文件中更新XPATH值。
在本发明中,逻辑层单独维护,逻辑层即是测试用例中的用例逻辑,比如点击某个按钮,在某个指定框输入文本或者选择某个下拉框中的选项。一般来说项目进入维护期后,业务逻辑变动较小,页面样式或元素变更大些,但因为逻辑分离以后,如果页面元素路径变了,只需要维护页面模型文件中的路径就可以了,这样就大大提高自动化测试在web项目中运用的灵活性,使web自动化测试后期的维护与执行均无需大量的编码工作,为web应用提供了一套低成本并且简单、高效的web自动化测试方法。
图3显示了本发明的另一个实施例的流程图。
首先,通过JEditorPane与JSpider浏览器访问web站点。
然后,通过JSpider爬虫引擎对站点待测试页面进行页面建模,选择页面上相应的受测对象并将数据保存至本地的页面模型数据文件,完成页面建模。
最后,建模完成后,使用Webdriver提供的接口启动并控制所述浏览器,通过自制数据解析器从数据文件中获取页面的对象,根据测试用例的操作步骤,实现模拟用户操作。用例执行结束后,关闭浏览器。通过Jenkins持续集成平台或命令行调用自动化脚本,脚本通过webdriverAPI调用页面模型的数据文件,实现了启动并控制浏览器,并在浏览器中执行脚本中相应的操作,整个过程都是可视化的,该方法流程如图4所示。
使用此方法当页面发生变更后,只需要重新执行一次建模流程或者直接修改页面数据文件即可完成页面建模,对自动化测试执行流程不造成任何影响。
下面以一个实例来描述本发明的实施过程,如图5所示。使用特制浏览器访问京东的主页,操作待测页面,进行页面建模,并保存至页面模型数据文件。模拟用户操作在待测对象(图上方的搜索框)中输入“戴尔XPS”,获得受测对象与值。将该待测对象和值存储在excel文件中,作为页面模型数据文件。该页面模型数据文件中保持了如下信息:
受测对象:search_Input;值://input[id='key']。
在测试时,启动所述浏览器,读取所述页面模型数据文件,从中获取页面的受测对象和值,模拟用户操作,进行页面测试。
上述实施例为本发明的典型的实施方式,但本发明并不受上述实施例的限制,其他任何未背离本发明的精神实质与原理下所作的改变、替代、组合、简化,均为等效的置换方式,包含在本发明的保护范围之内。
Claims (7)
1.一种基于建模的web应用自动化测试方法,其特征在于,包括:
S1、建立浏览器,使用该浏览器访问待测网站页面,获取数据;
S2、分析页面,进行页面建模,并保存至页面建模数据文件;
S3、在测试时,启动所述浏览器,读取所述页面建模数据文件,从中获取页面的受测对象和测试用例,模拟用户操作。
2.根据权利要求1所述的基于建模的web应用自动化测试方法,其特征在于,在S1中,该浏览器是可配置的,获取的数据是用户交互数据。
3.根据权利要求1所述的基于建模的web应用自动化测试方法,其特征在于,在S2中,所述页面建模数据文件保存了受测对象的属性以及测试用例。
4.根据权利要求1所述的基于建模的web应用自动化测试方法,其特征在于,在S1中,通过JEditorPane与JSpider浏览器访问web站点。
5.根据权利要求1所述的基于建模的web应用自动化测试方法,其特征在于,在S2中,通过JSpider爬虫引擎对站点待测试页面进行页面建模,选择页面上相应的受测对象并将数据保存至本地的页面模型数据文件。
6.根据权利要求1所述的基于建模的web应用自动化测试方法,其特征在于,在S3中,使用Webdriver提供的接口启动并控制所述浏览器,通过数据解析器从页面建模数据文件中获取页面的受测对象和测试用例,根据测试用例的操作步骤,实现模拟用户操作。
7.根据权利要求6所述的基于建模的web应用自动化测试方法,其特征在于,S3还包括:启动所述浏览器,通过Jenkins持续集成平台或命令行调用自动化脚本,脚本通过webdriver API调用所述页面建模数据文件,并在浏览器中执行脚本中相应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310560257.8A CN103678120B (zh) | 2013-11-12 | 2013-11-12 | 基于建模的web应用自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310560257.8A CN103678120B (zh) | 2013-11-12 | 2013-11-12 | 基于建模的web应用自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678120A true CN103678120A (zh) | 2014-03-26 |
CN103678120B CN103678120B (zh) | 2016-07-06 |
Family
ID=50315755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310560257.8A Active CN103678120B (zh) | 2013-11-12 | 2013-11-12 | 基于建模的web应用自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678120B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608007A (zh) * | 2015-12-28 | 2016-05-25 | 北京致远协创软件有限公司 | 页面模型、用户界面自动化测试方法以及装置 |
GB2536084A (en) * | 2015-03-05 | 2016-09-07 | Tata Consultancy Services Ltd | A system and method for accessibility assessment of a web application |
WO2016188101A1 (zh) * | 2015-11-10 | 2016-12-01 | 中国建设银行股份有限公司 | 一种针对业务系统的测试方法和装置 |
CN106506269A (zh) * | 2016-11-03 | 2017-03-15 | 北京蓝海讯通科技股份有限公司 | 执行测试任务的方法、系统、计算设备及测试系统 |
CN106657008A (zh) * | 2016-11-21 | 2017-05-10 | 北海高创电子信息孵化器有限公司 | 一种用户上网行为研究方法 |
CN107402882A (zh) * | 2017-07-21 | 2017-11-28 | 杭州迪普科技股份有限公司 | Web页面测试方法和装置 |
CN107480061A (zh) * | 2017-08-04 | 2017-12-15 | 上海爱数信息技术股份有限公司 | 一种基于Jenkins CI构建变化模块的自动化回归测试方法 |
CN107957939A (zh) * | 2016-10-14 | 2018-04-24 | 北京京东尚科信息技术有限公司 | 网页交互界面测试方法及系统 |
CN108521428A (zh) * | 2018-04-20 | 2018-09-11 | 武汉极意网络科技有限公司 | 一种基于jenkins的公网防爬虫的实现方法及系统 |
CN108628741A (zh) * | 2018-04-10 | 2018-10-09 | 平安科技(深圳)有限公司 | 网页页面测试方法、装置、电子设备和介质 |
CN109684210A (zh) * | 2018-12-18 | 2019-04-26 | 宁夏隆基宁光仪表股份有限公司 | 一种网站自动化测试方法、装置、设备及可读存储介质 |
CN109828926A (zh) * | 2019-01-31 | 2019-05-31 | 广州云测信息技术有限公司 | 一种判断应用界面是否加载异常、应用测试方法和装置 |
CN110287092A (zh) * | 2019-05-10 | 2019-09-27 | 广东电力交易中心有限责任公司 | 一种基于图形界面的电力交易系统及其自动测试方法 |
CN111163067A (zh) * | 2019-12-18 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 一种安全测试方法、装置及电子设备 |
CN111324844A (zh) * | 2020-02-20 | 2020-06-23 | 重庆锐云科技有限公司 | 数据导出控制方法、装置、营销管理平台及存储介质 |
CN111367802A (zh) * | 2020-02-29 | 2020-07-03 | 中国平安财产保险股份有限公司 | web自动化测试方法、装置及计算机可读存储介质 |
CN114385477A (zh) * | 2020-10-21 | 2022-04-22 | 腾讯科技(深圳)有限公司 | 一种应用界面测试方法、系统及存储介质和终端设备 |
CN114385477B (zh) * | 2020-10-21 | 2024-07-09 | 腾讯科技(深圳)有限公司 | 一种应用界面测试方法、系统及存储介质和终端设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241467A (zh) * | 2008-03-05 | 2008-08-13 | 罗笑南 | 一种面向Web应用的自动化白盒测试系统及方法 |
US20120204091A1 (en) * | 2011-02-04 | 2012-08-09 | Oracle International Corporation | Automated test tool interface |
CN103136101A (zh) * | 2012-12-31 | 2013-06-05 | 博彦科技(上海)有限公司 | 软件自动化测试统一运营平台 |
CN103309800A (zh) * | 2012-03-15 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种网页自动化测试方法和系统 |
-
2013
- 2013-11-12 CN CN201310560257.8A patent/CN103678120B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241467A (zh) * | 2008-03-05 | 2008-08-13 | 罗笑南 | 一种面向Web应用的自动化白盒测试系统及方法 |
US20120204091A1 (en) * | 2011-02-04 | 2012-08-09 | Oracle International Corporation | Automated test tool interface |
CN103309800A (zh) * | 2012-03-15 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种网页自动化测试方法和系统 |
CN103136101A (zh) * | 2012-12-31 | 2013-06-05 | 博彦科技(上海)有限公司 | 软件自动化测试统一运营平台 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2536084A (en) * | 2015-03-05 | 2016-09-07 | Tata Consultancy Services Ltd | A system and method for accessibility assessment of a web application |
WO2016188101A1 (zh) * | 2015-11-10 | 2016-12-01 | 中国建设银行股份有限公司 | 一种针对业务系统的测试方法和装置 |
CN105608007A (zh) * | 2015-12-28 | 2016-05-25 | 北京致远协创软件有限公司 | 页面模型、用户界面自动化测试方法以及装置 |
CN105608007B (zh) * | 2015-12-28 | 2018-04-13 | 北京致远互联软件股份有限公司 | 页面模型、用户界面自动化测试方法以及装置 |
CN107957939B (zh) * | 2016-10-14 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 网页交互界面测试方法及系统 |
CN107957939A (zh) * | 2016-10-14 | 2018-04-24 | 北京京东尚科信息技术有限公司 | 网页交互界面测试方法及系统 |
CN106506269A (zh) * | 2016-11-03 | 2017-03-15 | 北京蓝海讯通科技股份有限公司 | 执行测试任务的方法、系统、计算设备及测试系统 |
CN106506269B (zh) * | 2016-11-03 | 2019-06-04 | 北京蓝海讯通科技股份有限公司 | 执行测试任务的方法、系统、计算设备及测试系统 |
CN106657008A (zh) * | 2016-11-21 | 2017-05-10 | 北海高创电子信息孵化器有限公司 | 一种用户上网行为研究方法 |
CN107402882A (zh) * | 2017-07-21 | 2017-11-28 | 杭州迪普科技股份有限公司 | Web页面测试方法和装置 |
CN107402882B (zh) * | 2017-07-21 | 2020-11-06 | 杭州迪普科技股份有限公司 | Web页面测试方法和装置 |
CN107480061A (zh) * | 2017-08-04 | 2017-12-15 | 上海爱数信息技术股份有限公司 | 一种基于Jenkins CI构建变化模块的自动化回归测试方法 |
CN107480061B (zh) * | 2017-08-04 | 2021-03-30 | 上海爱数信息技术股份有限公司 | 一种基于Jenkins CI构建变化模块的自动化回归测试方法 |
CN108628741A (zh) * | 2018-04-10 | 2018-10-09 | 平安科技(深圳)有限公司 | 网页页面测试方法、装置、电子设备和介质 |
CN108628741B (zh) * | 2018-04-10 | 2021-10-01 | 平安科技(深圳)有限公司 | 网页页面测试方法、装置、电子设备和介质 |
CN108521428B (zh) * | 2018-04-20 | 2020-09-01 | 武汉极意网络科技有限公司 | 一种基于jenkins的公网防爬虫的实现方法及系统 |
CN108521428A (zh) * | 2018-04-20 | 2018-09-11 | 武汉极意网络科技有限公司 | 一种基于jenkins的公网防爬虫的实现方法及系统 |
CN109684210A (zh) * | 2018-12-18 | 2019-04-26 | 宁夏隆基宁光仪表股份有限公司 | 一种网站自动化测试方法、装置、设备及可读存储介质 |
CN109828926A (zh) * | 2019-01-31 | 2019-05-31 | 广州云测信息技术有限公司 | 一种判断应用界面是否加载异常、应用测试方法和装置 |
CN109828926B (zh) * | 2019-01-31 | 2022-02-08 | 北京云测信息技术有限公司 | 一种判断应用界面是否加载异常的方法和装置 |
CN110287092A (zh) * | 2019-05-10 | 2019-09-27 | 广东电力交易中心有限责任公司 | 一种基于图形界面的电力交易系统及其自动测试方法 |
CN111163067A (zh) * | 2019-12-18 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 一种安全测试方法、装置及电子设备 |
CN111163067B (zh) * | 2019-12-18 | 2022-05-03 | 支付宝(杭州)信息技术有限公司 | 一种安全测试方法、装置及电子设备 |
CN111324844A (zh) * | 2020-02-20 | 2020-06-23 | 重庆锐云科技有限公司 | 数据导出控制方法、装置、营销管理平台及存储介质 |
CN111367802A (zh) * | 2020-02-29 | 2020-07-03 | 中国平安财产保险股份有限公司 | web自动化测试方法、装置及计算机可读存储介质 |
CN114385477A (zh) * | 2020-10-21 | 2022-04-22 | 腾讯科技(深圳)有限公司 | 一种应用界面测试方法、系统及存储介质和终端设备 |
CN114385477B (zh) * | 2020-10-21 | 2024-07-09 | 腾讯科技(深圳)有限公司 | 一种应用界面测试方法、系统及存储介质和终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103678120B (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678120A (zh) | 基于建模的web应用自动化测试方法 | |
JP7398068B2 (ja) | ソフトウェアテスト | |
US10162611B2 (en) | Method and apparatus for business rule extraction | |
US9792203B2 (en) | Isolated testing of distributed development projects | |
WO2020233330A1 (zh) | 批量测试方法、装置及计算机可读存储介质 | |
US9189377B1 (en) | Automation testing using descriptive maps | |
CN104956362B (zh) | 分析web应用程序的结构 | |
CN108345532A (zh) | 一种自动化测试用例生成方法和装置 | |
US9563415B2 (en) | Generating visually encoded dynamic codes for remote launching of applications | |
CN106570750B (zh) | 基于浏览器插件的自动报税方法、系统及浏览器插件 | |
CN104375818A (zh) | 一种通过配置文件实现通用数据格式录入的系统及方法 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
US11714625B2 (en) | Generating applications for versatile platform deployment | |
Lenka et al. | Behavior driven development: Tools and challenges | |
Núñez et al. | A model-driven approach for the development of native mobile applications focusing on the data layer | |
US20170212735A1 (en) | Replicating a web technology | |
CN113032257A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
WO2014070165A1 (en) | Executable software specification generation | |
Khaliluzzaman et al. | Pre and post controller based MVC architecture for web application | |
US20220237108A1 (en) | Source traceability-based impact analysis | |
CN104881455B (zh) | 一种基于mysql的结构差异处理方法及系统 | |
Zhang et al. | Research of web front-end engineering solution in public cultural service project | |
Shi et al. | Cross-browser compatibility testing based on model comparison | |
Li et al. | Modeling web application for cross-browser compatibility testing | |
CN113032256A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |