CN104077213A - 一种webkit单元测试方法及装置 - Google Patents
一种webkit单元测试方法及装置 Download PDFInfo
- Publication number
- CN104077213A CN104077213A CN201310100776.6A CN201310100776A CN104077213A CN 104077213 A CN104077213 A CN 104077213A CN 201310100776 A CN201310100776 A CN 201310100776A CN 104077213 A CN104077213 A CN 104077213A
- Authority
- CN
- China
- Prior art keywords
- test
- module
- tested
- unit
- webkit
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明适用于软件测试技术领域,提供了一种webkit单元测试方法及装置,所述方法包括:启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;编译所述待测试模块,生成测试用例对象;搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。本发明,通过javascript绑定实现了移动终端浏览器webkit单元测试。
Description
技术领域
本发明属于软件测试技术领域,尤其涉及一种webkit单元测试方法及装置。
背景技术
webkit是一个开源的浏览器内核,其中webkit的源码结构清晰,渲染速度快,易于维护,而被广泛使用。webkit中每个html页面对应于一颗dom树和render树,dom树用于描述html页面的的信息,而render树则用于布局,具体负责dom树如何显示在屏幕上。目前,webkit被广泛应用于Safari,Dashboard,Mail和其他一些Mac OS X程序。这些程序的运行质量最基础的保障就是webkit单元测试。其中单元的含义是人为规定的最小的被测功能模块。
现有webkit单元测试方法就是在webkit内核源代码中增加测试用例,然后一起编译,根据执行结果来判断测试结果是否达到我们的预期目标。不难看出这种webkit测试只是对render树做单元测试,测试不全面,而且测试需要源码,同时,编译时也需要将测试代码编译到软件版本中,在版本编译时可以通过脚本控制编译出测试版本与非测试版本,测试结果查看不方便。
发明内容
本发明实施例提供了一种webkit单元测试方法及装置,旨在解决现有webkit单元测试方法进行单元测试时需要源码,只是对webkit的render树做单元测试,同时,测试结果查看不方便的问题。
本发明,提供一种webkit单元测试方法,所述方法包括:
启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;
在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;
编译所述待测试模块,生成测试用例对象;
搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。
另一方面,提供一种webkit单元测试装置,所述装置包括:
用例编写单元,用于启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;
绑定单元,用于在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;
编译单元,用于编译所述待测试模块,生成测试用例对象;
测试单元,用于搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。
在本发明实施例,启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;编译所述待测试模块,生成测试用例对象;搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果,本发明,通过javascript绑定实现了移动终端浏览器webkit单元测试,方便查看测试结果。
附图说明
图1是本发明实施例一提供的webkit单元测试方法的实现流程图;
图2是本发明实施例一提供的编译过程时序图;
图3是本发明实施例一提供的测试过程时序图。
图4本发明实施例二提供的webkit单元测试装置的具体结构图
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;编译所述待测试模块,生成测试用例对象;搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
图1示出了本发明实施例一提供的webkit单元测试方法的实现流程,详述如下:
在步骤S101中,启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例。
在本实施例中,所述单元测试框架模块是JavaScript的开源单元测试框架,包括jsunit模块。所述预设目录是预先设定用于保存测试用例的目录。所述接口语言用于规定接入对象的行为,优选的,所述接口语言包括接口描述语言(Interface Description Language,IDL),其中,接口描述语言为万维网联盟(World Wide Web Consortium,W3C)定义的一个接口定义语言。所述启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例,当使用IDL时,所述测试用例包括.idl和.h、.cpp文件。
在步骤S102中,在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定。
在本实施例中,所述待测试模块是webkit需要进行测试的最小功能模块。所述待测试模块的编译配置文件具体是指待测试模块保存目录下的android.mk文件。所述Javascript绑定是webcore通过接口描述语言实现与javascript引擎的绑定,具体原理是webkit通过perl解析.idl文件生成.h、.cpp源码实现与外部javascript引擎提供的javascript对象、方法、属性的绑定,可以通过自定义IDL方式可以扩展javascript引擎提供的本地对象。当在待测试模块的jsnuit目录下编写测试用例时,其实现代码具体为:
MODULE_PATH:=$(call my-dir);
include$(MT_BUILD_MODULE);
include$(MT_BUILD_JSUNIT_MODULE);
与webkit本身的绑定不同的是,因为这个android.mk文件是在扫描jsunit目录之后根据目录下的文件来生成的,所以,在jsunit目录下添加新的.idl和.h、.cpp文件之后,Android.mk文件会自动更新,无需手动修改。
在步骤S103中,编译所述待测试模块,生成测试用例对象。
在本实施例中,所述测试用例对象用于调用模块名称的方法访问所有测试用例。所述编译所述待测试模块,生成测试用例对象,具体包括:
步骤11,加载所述待测试模块的可选模块和读取相应的配置文件的配置参数;
步骤12,根据所述配置参数,套用系统模板生成绑定配置文件;
步骤13,通过追加方式将所述可选模块和所述绑定配置文件添加到相应Windows对象上,生成测试用例对象。
具体的,通过supplemental方式添加到window对象下的,所以也不需要修改DOMWindow相关的文件。
在步骤S104中,搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。
在本实施例中,所述测试网页调用测试用例对象的相应方法及属性。以jsUnit为例,在接收到jsUnit之后,测试网页逐层的扫描jsUnit的属性或者方法,将扫描到的树状的结果生成网页元素。测试页面对应的树上所有的叶子节点都是测试方法,并且所有的测试方法都会接受一个回调函数,并且将测试结果作为回调函数的参数传给回调函数。网页通过调用这些方法,获取到测试结果,并在网页上展示出来。搭建wed服务器,部署该测试网页。
优选的,还可以通过服务器来架设一个完整的云测试后台。在程序的每日更新流程中,可加入在生成了最新的二进制程序之后,就自动提交到云测试平台上,通过打开网页的形式自动完成单元测试的执行,配合后台的信息收集能力,可以立刻将单元测试的结果通过图表及邮件的形式,第一时间发送给关注的人。
在本实施例中,所述搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果,具体包括:
步骤21,搭建wed服务器,部署调用所述测试用例对象的测试网页;
步骤22,移动终端访问所述测试页面;
步骤23,所述测试页面调用与其关联的所述测试用例对象的方法、属性,通过回调函数获得测试结果,并在网页上显示所述测试结果。
具体的,通过测试用例对象调用测试用例里对应的实现函数,进而获取测试结果。
其中,以Html5模块为具体目标对象描述本实施例的适用场景,进行描述如下:
Html5待测试模块其基本情况如下:
首先,启动单元测试框架模块,打开Html5待测试模块,在上述jsunit目录中,编写单元测试用例,包括testcase.idl、testcase.h和testcase.cpp文件,具体的,testcase.idl的详细代码为:
而testcase.h/cpp中添加下面的函数:
其次,在上述case目录下Android.mk中添加以下代码:
MODULE_PATH:=$(call my-dir);
include$(MT_BUILD_MODULE);
include$(MT_BUILD_JSUNIT_MODULE);
来生成与测试用例的js绑定。
再者,编译上述Html5待测试模块,具体编译过程如图2所示,加载所述待测试模块的可选模块和读取相应的配置文件的配置参数,根据所述配置参数,套用系统模板生成绑定配置文件,如android.v8bindings.mk和android.derived.mk,通过追加方式将所述可选模块和所述绑定配置文件添加到相应Windows对象上,生成测试用例对象和相应的custom文件,例如Html5模块中,就会对应生成window.jsUnit.testcase的对象,window.jsUnit.testcase对象包含了所有的单元测试。
最后,搭建wed服务器,部署调用测试用例对象的测试网页,其中测试网页的代码如下:
使用移动终端访问所述测试页面,所述测试页面调用与其关联的所述测试用例对象的测试方法,通过回调函数获得测试结果,并在网页上显示所述测试结果,其手机访问测试页面进行测试的具体流程如图3所示,手机访问测试页面,测试页面调用关联的待测试模块的方法,待测试模块通过回调函数通知网页测试结果,页面展示测试结果。
本实施例,可以达到通过javascript绑定实现手机浏览器webkit单元测试,测试过程不需要源代码,测试全面并测试结果容易查看。
实施例二
图4示出了本发明实施例二提供的webkit单元测试装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该webkit单元测试装置包括:用例编写单元41、绑定单元42、编译单元43和测试单元44。
其中,用例编写单元41,用于启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;
绑定单元42,用于在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;
编译单元43,用于编译所述待测试模块,生成测试用例对象;
测试单元44,用于搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。
进一步的,所述编译单元43具体用于加载所述待测试模块的可选模块和读取相应的配置文件的配置参数;根据所述配置参数,套用系统模板生成绑定配置文件;通过追加方式将所述可选模块和所述绑定配置文件添加到相应Windows对象上,生成测试用例对象。
进一步的,所述测试单元44具体用于搭建wed服务器,部署调用所述测试用例对象的测试网页;移动终端访问所述测试页面;所述测试页面调用与其关联的所述测试用例对象的方法、属性,通过回调函数获得测试结果,并在网页上显示所述测试结果。
本发明实施例提供的webkit单元测试装置可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种webkit单元测试方法,其特征在于,所述方法包括:
启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;
在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;
编译所述待测试模块,生成测试用例对象;
搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。
2.如权利要求1所述的方法,其特征在于,所述接口语言包括接口描述语言IDL。
3.如权利要求1所述的方法,其特征在于,所述编译所述待测试模块,生成测试用例对象,具体包括:
加载所述待测试模块的可选模块和读取相应的配置文件的配置参数;
根据所述配置参数,套用系统模板生成绑定配置文件;
通过追加方式将所述可选模块和所述绑定配置文件添加到相应Windows对象上,生成测试用例对象。
4.如权利要求1、2或3所述的方法,其特征在于,所述搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果,具体包括:
搭建wed服务器,部署调用所述测试用例对象的测试网页;
移动终端访问所述测试页面;
所述测试页面调用与其关联的所述测试用例对象的方法、属性,通过回调函数获得测试结果,并在网页上显示所述测试结果。
5.一种webkit单元测试装置,其特征在于,所述装置包括:
用例编写单元,用于启动单元测试框架模块,在预设目录下,使用接口语言编写基于单元测试框架的测试用例;
绑定单元,用于在待测试模块的编译配置文件中设置所述待测试模块与所述测试用例的Javascript绑定;
编译单元,用于编译所述待测试模块,生成测试用例对象;
测试单元,用于搭建wed服务器,部署并访问调用所述测试用例对象的测试网页,获得测试结果。
6.如权利要求5所述的装置,其特征在于,所述编译单元具体用于加载所述待测试模块的可选模块和读取相应的配置文件的配置参数;根据所述配置参数,套用系统模板生成绑定配置文件;通过追加方式将所述可选模块和所述绑定配置文件添加到相应Windows对象上,生成测试用例对象。
7.如权利要求5或6所述的装置,其特征在于,所述测试单元具体用于搭建wed服务器,部署调用所述测试用例对象的测试网页;移动终端访问所述测试页面;所述测试页面调用与其关联的所述测试用例对象的方法、属性,通过回调函数获得测试结果,并在网页上显示所述测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310100776.6A CN104077213B (zh) | 2013-03-26 | 2013-03-26 | 一种webkit单元测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310100776.6A CN104077213B (zh) | 2013-03-26 | 2013-03-26 | 一种webkit单元测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077213A true CN104077213A (zh) | 2014-10-01 |
CN104077213B CN104077213B (zh) | 2018-07-06 |
Family
ID=51598481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310100776.6A Active CN104077213B (zh) | 2013-03-26 | 2013-03-26 | 一种webkit单元测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104077213B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630473A (zh) * | 2014-11-03 | 2016-06-01 | 中国科学院声学研究所 | 支持异步调用的JavaScript事件扩展方法 |
CN106201867A (zh) * | 2016-06-29 | 2016-12-07 | 武汉斗鱼网络科技有限公司 | 一种Linux平台下可定制的自动单元测试方法及系统 |
CN106649116A (zh) * | 2016-12-27 | 2017-05-10 | 广州周立功单片机科技有限公司 | 嵌入式Linux产品的测试方法、装置及系统 |
CN110543144A (zh) * | 2019-08-30 | 2019-12-06 | 天津施格自动化科技有限公司 | 图形化编程控制机器人的方法及系统 |
CN110806967A (zh) * | 2018-08-06 | 2020-02-18 | 北京京东尚科信息技术有限公司 | 一种单元测试方法和装置 |
CN111008153A (zh) * | 2019-12-29 | 2020-04-14 | 合肥工大高科信息科技股份有限公司 | 一种单元测试方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217425A (zh) * | 2008-01-04 | 2008-07-09 | 中兴通讯股份有限公司 | Web测试的方法及装置 |
US20100174952A1 (en) * | 2004-03-31 | 2010-07-08 | Paul Anastas | Methods and apparatus for collecting and displaying performance metrics from a web site |
CN101976220A (zh) * | 2010-09-27 | 2011-02-16 | 北京神州泰岳软件股份有限公司 | 单元测试系统 |
WO2012019639A1 (en) * | 2010-08-10 | 2012-02-16 | International Business Machines Corporation | A method and system to automatically testing a web application |
-
2013
- 2013-03-26 CN CN201310100776.6A patent/CN104077213B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174952A1 (en) * | 2004-03-31 | 2010-07-08 | Paul Anastas | Methods and apparatus for collecting and displaying performance metrics from a web site |
CN101217425A (zh) * | 2008-01-04 | 2008-07-09 | 中兴通讯股份有限公司 | Web测试的方法及装置 |
WO2012019639A1 (en) * | 2010-08-10 | 2012-02-16 | International Business Machines Corporation | A method and system to automatically testing a web application |
CN101976220A (zh) * | 2010-09-27 | 2011-02-16 | 北京神州泰岳软件股份有限公司 | 单元测试系统 |
Non-Patent Citations (2)
Title |
---|
史明慧: ""基于组合框架的J2EE组件单元测试的研究与应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑 》 * |
白凯等: ""基于 JUnit自动化单元测试的研究"", 《计算机与数字工程》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630473A (zh) * | 2014-11-03 | 2016-06-01 | 中国科学院声学研究所 | 支持异步调用的JavaScript事件扩展方法 |
CN105630473B (zh) * | 2014-11-03 | 2019-01-22 | 中国科学院声学研究所 | 支持异步调用的JavaScript事件扩展方法 |
CN106201867A (zh) * | 2016-06-29 | 2016-12-07 | 武汉斗鱼网络科技有限公司 | 一种Linux平台下可定制的自动单元测试方法及系统 |
CN106201867B (zh) * | 2016-06-29 | 2019-01-29 | 武汉斗鱼网络科技有限公司 | 一种Linux平台下可定制的自动单元测试方法及系统 |
CN106649116A (zh) * | 2016-12-27 | 2017-05-10 | 广州周立功单片机科技有限公司 | 嵌入式Linux产品的测试方法、装置及系统 |
CN106649116B (zh) * | 2016-12-27 | 2019-09-20 | 广州周立功单片机科技有限公司 | 嵌入式Linux产品的测试方法、装置及系统 |
CN110806967A (zh) * | 2018-08-06 | 2020-02-18 | 北京京东尚科信息技术有限公司 | 一种单元测试方法和装置 |
CN110543144A (zh) * | 2019-08-30 | 2019-12-06 | 天津施格自动化科技有限公司 | 图形化编程控制机器人的方法及系统 |
CN111008153A (zh) * | 2019-12-29 | 2020-04-14 | 合肥工大高科信息科技股份有限公司 | 一种单元测试方法及系统 |
CN111008153B (zh) * | 2019-12-29 | 2023-05-30 | 合肥工大高科信息科技股份有限公司 | 一种单元测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104077213B (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10699061B2 (en) | Application page quick access | |
JP6740373B2 (ja) | ページコンポーネント動的レイアウト | |
CN104077213A (zh) | 一种webkit单元测试方法及装置 | |
CN106294113B (zh) | 一种基于可编程式测试服务的创建方法及装置 | |
CN111897553B (zh) | 一种项目系统搭建方法、装置、设备及可读存储介质 | |
CN103838558B (zh) | 网站建站系统及方法、访问网站的方法及网页适配系统 | |
CN105373615A (zh) | 一种页面定制化的方法和装置 | |
CN102207873B (zh) | 基于安卓平台的JavaScript扩展对象实现方法及绑定接口结构 | |
US10803166B1 (en) | Automated determination of application privileges | |
CN112035112B (zh) | 应用程序开发方法、系统、介质和电子设备 | |
CN103412754A (zh) | 动态语言代码执行方法和装置 | |
CN112559026B (zh) | 基于api接口的原生能力拓展方法、设备及存储介质 | |
CN110941428B (zh) | 一种网站创建方法和装置 | |
US8959426B1 (en) | Loading customer-supplied network page generation code | |
CN106886547A (zh) | 一种脚本生成方法与装置 | |
CN104572431A (zh) | 一种测试方法及装置 | |
CN110362547A (zh) | 日志文件的编码、解析、存储方法和装置 | |
CN105094878A (zh) | 一种集成系统库文件的方法和装置 | |
CN105701165A (zh) | 浏览器模式切换方法及切换装置 | |
CN102779045B (zh) | 一种界面生成方法、界面编辑器及电子设备 | |
CN105868201B (zh) | 页面生成方法及装置 | |
CN106649081B (zh) | 一种调试运行在客户端应用内离线包的方法及装置 | |
CN104572753A (zh) | 一种书签存储方法及书签存储装置 | |
CN107562749A (zh) | 一种网页加载方法及网页加载装置 | |
CN112527424A (zh) | 用于弹窗的控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221221 Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Yayue Technology Co.,Ltd. Address before: 2, 518044, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |