基于
JAVASCRIPT
的
SAAS
服务测试引擎
技术领域
本发明涉及对互联网环境下的基于SAAS的服务应用测试的方法,尤其是借助于JAVASCRIPT灵活,本地化执行的能力,能够灵活的对互联网环境下的基于SAAS的服务性web应用进行实时的性能测试的引擎,具体地说是一基于JAVASCRIPT的SAAS服务测试引擎,种实现了测试的网络化与服务化。
背景技术
目前,随着互联网的迅猛发展,特别是Web2.0的兴起,将软件作为一种服务形式提供给客户的需求逐渐增加,软件产业正在发生越来越大的变化,其中最突出的就是形成软件即服务(SaaS)模式。SaaS模式就是以软件部署为基础,通过互联网直接为客户提供服务,而且客户还可以按需定制自己特定的服务。
SaaS模式有很多特定的质量要求,包括对软件开发方法和流程、对***架构的灵活性、兼容性和扩充性等有更高的要求,对***部署、操作、技术支持和维护要求等等。这些也无疑是对软件质量管理的新挑战,我们有必要提供一套软件即服务(SaaS)质量测评***来完成SaaS质量测试及评估工作,继而保障高品质的软件服务。
目前市场上的测试工具软件多半是提供一体化的产品,专用性强,不够开放,不能灵活的进行定制测试,并以此提供测试服务。随着互联网的兴起以及软件即服务模式的逐步发展趋势,传统的面向专用软件的测试工具存在着以下局限性:
1. 采用软件产品专用的测试脚本,通用性不强,不够开放。
2.
测试脚本功能有限,不能进行灵活的脚本语言级别的定制。
3.
不能将测试脚本实时的嵌入到SAAS服务应用程序的页面中直接进行测试。
不能满足SAAS服务应用部署、响应快速化的特点,需要在本地单另安装专用测试软件,测试效率较低。
发明内容
本发明的目的是针对传统的面向专用软件的测试工具存在着局限性的问题;提出一种基于JAVASCRIPT的SAAS服务测试引擎,满足互联网环境下的SAAS服务应用部署、响应快速化的特点,借助于JAVASCRIPT通用性强,功能灵活,本地化执行等的特点,脚本即编写,即运行,无需编译。并且能够无缝集成于SAAS应用的web页面中,在不影响正常应用功能的情况下进行实时测试能够灵活的对互联网环境下的基于SAAS的服务性web应用进行实时的性能测试,实现了测试本身的网络化与服务化,能够大大降低测试成本,提高测试效率。
本发明的技术方案是:
一种基于JAVASCRIPT的SAAS服务测试引擎,该服务测试引擎的实现包括以下步骤:
A、首先,通过一后端的JAVA程序平台和前端JAVASCRIPT脚本建立针对于Web应用的SAAS通用测试平台;
B、通过前端JAVASCRIPT脚本建立web应用的测试脚本,将各测试脚本传输至后端的JAVA程序平台执行测试;将所有的JAVA程序功能特性扩展到JAVASCRIPT脚本中。
本发明的JAVA程序平台的应用流程包括以下步骤:
a. 解析JAVASCRIPT传过来的测试脚本;
b. 在后端的JAVA程序平台建立基于java的web应用测试功能库,封装对web主流测试指标的测试功能;主流测试指标包括SAAS服务应用可用性测试;SAAS服务应用响应时间测试;SAAS服务应用每秒最大吞吐量测试;SAAS服务应用并发访问测试;
c. 根据JAVASCRIPT传过来的测试脚本调用后端的JAVA程序平台内的测试功能库,进行测试,并跟踪与返回测试结果。
本发明的前端JAVASCRIPT脚本库通过对脚本自定义建立对web应用的通用性测试用例。
本发明的前端JAVASCRIPT脚本库通过脚本自定义对测试结果的数据进行显示。
本发明的前端JAVASCRIPT脚本库在测试过程中根据返回测试结果直接在线动态更新脚本;更新后,后端的JAVA程序平台继续执行,前端JAVASCRIPT脚本继续得到更新后的测试结果;进行实时测试和结果显示。
本发明的服务测试引擎的具体实现包括以下步骤:
A、封装一个JAVASCRIPT测试脚本库,脚本库包含3个类库:测试功能调用类库、测试结果展示调用类库和公共函数调用类库;
B、建立后端的JAVA程序平台,包括以下步骤;
a. 建立web测试功能库,即SAAS服务应用测试方法函数,包括:
SAAS服务应用可用性测试;
SAAS服务应用响应时间测试;
SAAS服务应用每秒最大吞吐量测试;
SAAS服务应用并发访问测试;
b. 建立Http数据交互模块:封装浏览器ajax函数成Http数据交互模块;
c. 建立测试脚本解析模块:将javascript传送过来的测试脚本解析成java程序的测试调用函数;
d 建立测试脚本调用执行模块,对测试功能库中的具体的测试函数进行调用封装;
C、用户用javascript来进行测试脚本的编写;
D、将测试脚本通过引擎本身的界面进行提交执行,或者将脚本代码嵌入到目标SAAS服务应用的页面中执行;
E、javascript脚本通过与引擎后端java程序平台的交互来执行测试用例,并得到返回的结果;
F、测试结果通过前端的展现类库展现。
本发明的测试功能调用类库包括:初始测试环境数据配置,测试方法设置,以及其他常规测试方法设置;
测试结果展示调用类库包括:展示某个html:dom组件;隐藏某个html:dom组件;以表格形式显示列表数据;重新定位某个html:dom组件和重新设置某个html:dom组件大小;
公共函数调用类库包括:正则替换,字符串操作,dom操作的常规javascript函数。
本发明的有益效果:
一、本发明通过建立的JAVASCRIPT脚本可以提供多样与灵活的测试用例实现。
二、本地无需安装专门的测试工具软件,完全基于网络化的测试服务,成本降低,效率提高。
三、本发明的扩展性强,通过自定义JAVASCRIPT脚本,能够实现扩展的测试用户功能库。
四、JAVASCRIPT脚本即编写,即运行,无需编译。并且脚本能够无缝集成于SAAS应用的web页面中,在不影响正常应用功能的情况下进行实时测试。
具体实施方式
下面结合实施例对本发明作进一步的说明。
一种基于JAVASCRIPT的SAAS服务测试引擎;
A、通过一个后端的JAVA程序平台与前端JAVASCRIPT脚本组成一个针对于Web应用的SAAS通用测试平台;
B、通过前端JAVASCRIPT脚本能够完成所有的web应用测试脚本,将所有的JAVA程序功能特性扩展到JAVASCRIPT脚本中。
其中JAVA程序平台的特性包括:
a. 解析JAVASCRIPT传过来的测试脚本。
b. 建立基于java的web应用测试功能库,封装对web主流测试指标的测试功能。
c. 根据测试脚本调用测试功能库,完成测试,并跟踪与返回测试结果。
前端JAVASCRIPT脚本库特性包括:
a. 可通过脚本自定义对web应用的通用性测试用例。
b. 可通过脚本自定义测试结果数据的展示。
c.
JAVASCRIPT测试脚本在测试过程中可以根据返回测试结果直接在线动态更新脚本,更新后能够立即执行,以得到更新后的最新测试结果。
d.
JAVASCRIPT测试脚本能够嵌入到SAAS服务应用的页面中以实现运行时的实时测试并实时展现测试结果。
C、通过B/S架构的界面支持用户在线编辑、提交、执行测试脚本,并且能够展示测试返回结果。
具体实施时:
A. 装一个JAVASCRIPT测试脚本库,脚本库包含3个类库:
a. 测试功能调用类库
包括初始测试环境数据配置,测试方法设置,以及其他常规测试方法。具体类库主要包括以下方法:
function ZTTRunner{
…
function setSite(targetsite){…}
//设置SAAS测试服务站点
function isAvaliable(ResultCallback){…}//SAAS服务应用可用性测试
function responseTime(ResultCallback){…}//SAAS服务应用响应时间测试
function maxMpps(ResultCallback){…}//SAAS服务应用每秒最大吞吐量测试
function concurrentAccess(ResultCallback){…}//SAAS服务应用并发访问测试
…
}
b. 测试结果展示调用类库
类库主要包括以下方法:
function ZTTDisplay{
…
function show(objid){…}//展示某个html: dom组件
function hide(objid){…}//隐藏某个html: dom组件
function table(column,data)//以表格形式显示列表数据
function reLocate(objid,x,y)//重新定位某个html:
dom组件
function reSize(objid,width,height)// 重新设置某个html:
dom组件大小
…
}
c 公共函数调用类库
包括正则替换,字符串操作,dom操作等常规javascript函数。
B. 封装一个基于JAVA的SAAS服务测试平台,包括:
a. 建立web测试功能库,主要包括:
Ø SAAS服务应用可用性测试
Ø SAAS服务应用响应时间测试
Ø SAAS服务应用每秒最大吞吐量测试
Ø SAAS服务应用并发访问测试
等专业的SAAS服务应用测试方法函数。
b.
Http数据交互模块
通过ajax技术为基础,封装浏览器ajax函数成Http数据交互模块
c. 测试脚本解析模块
将javascript传送过来的测试脚本解析成java程序的测试调用函数。
d 测试脚本调用执行模块
对测试功能库中的具体的测试函数进行调用封装。
C. 用户用javascript来进行测试脚本的编写。
D. 将测试脚本通过引擎本身的界面进行提交执行,或者将脚本代码嵌入到目标SAAS服务应用的页面中去执行。
E.
javascript脚本通过与引擎后端java程序平台的交互来执行测试用例,并得到返回的结果。
F. 测试结果通过前端的展现类库来进行个性化的展现。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。