自动化测试时客户端与服务端的数据库同步方法及系统与流程

文档序号:12123580阅读:890来源:国知局

本发明涉及应用程序的自动化测试领域,具体涉及一种自动化测试时客户端与服务端的数据库同步方法及系统。



背景技术:

在应用程序的自动化测试过程中,测试规则由服务端端定义,在客户端(例如手机、平板电脑等)上按照相关规则进行自动化测试。每次进行自动化测试时,客户端均需要从服务端上下载最新的数据库文件,下载完成之后需要校验整个数据库文件是否正确。

但是,客户端每次从服务端上载最新的数据库文件时,不仅所需时间较长,降低了测试效率,而且所需的网络流量较大,提高了测试成本;与此同时,校验整个数据库文件是否正确所需的时间也较长,而且占用的内存较大,进而使得测试效率更为低下。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:在自动化测试时检测客户端本地的数据库版本是否与服务端相同,通过字符串校验服务端返回的数据库信息。本发明能够提高自动化测试的测试效率,降低测试成本,非常便于人们使用,适于推广。

为达到以上目的,本发明提供的自动化测试时客户端与服务端的数据库同步方法,包括以下步骤:

S1:当应用程序在客户端上进行自动化测试时,客户端向服务端发起数据库信息获取请求,数据库信息获包括数据库版本、数据库下载地址、数据库名称、MD5校验值和数据库大小,转到S2;

S2:客户端获取并解析服务端返回的数据库信息,将解析得到的数据库版本、数据库文件大小和数据库名称,拼接形成字符串,对该字符串进行MD5校验后,生成本地MD5校验码;当本地MD5校验码与所述MD5校验值相同、且解析得到的数据库版本的值>客户端本地的数据库版本的值时,转到S3;

S3:客户端根据S2中解析得到的数据库下载地址,下载服务端上的数据库文件;判断下载过程中是否出现异常,若是,则证明下载失败,否则证明下载成功。

本发明提供的实现上述方法的自动化测试时客户端与服务端的数据库同步系统,包括位于客户端上的数据库信息获取模块、数据库版本检测模块和本地数据库更新模块;

数据库信息获取模块用于:当应用程序在客户端上进行自动化测试时,向服务端发起数据库信息获取请求,数据库信息获包括数据库版本、数据库下载地址、数据库名称、MD5校验值和数据库大小;

数据库版本检测模块用于:获取并解析服务端返回的数据库信息,将解析得到的数据库版本、数据库文件大小和数据库名称,拼接形成字符串,对该字符串进行MD5校验后,生成本地MD5校验码;当本地MD5校验码与所述MD5校验值相同、且解析得到的数据库版本的值>客户端本地的数据库版本的值时,向本地数据库更新模块发送本地数据库更新信号;

本地数据库更新模块用于:收到本地数据库更新信号后,根据数据库版本检测模块解析的数据库下载地址,下载服务端上的数据库文件;判断下载过程中是否出现异常,若是,则证明下载失败,否则证明下载成功。

与现有技术相比,本发明的优点在于:

本发明在每次进行自动化测试时,会先让客户端从服务端上获取数据库信息,以确定客户端上的数据库版本是否需要更新。与现有技术中每次下载最新的数据库文件相比,本发明的数据库信息仅包括数据库的标示参数(版本、大小、MD5校验值等),其下载所需的网络流量非常小,下载速度也较快,因此不仅降低了测试成本,也提高了测试效率。

与此同时,本发明校验服务端返回的数据库信息时,能够将数据库信息中的数据库版本、数据库文件大小和数据库名称组成字符串,并以该字符串生成本地MD5校验码与数据库信息中的MD5校验值进行比对。与现有技术中校验整个数据库文件相比,本发明以字符串生成的本地MD5校验码较小,校验时所需的时间较少,占用的内存较小,即校验过程非常快,进一步提高了测试效率。

附图说明

图1为本发明实施例中自动化测试时客户端与服务端的数据库同步方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的自动化测试时客户端与服务端的数据库同步方法,包括以下步骤:

S1:当应用程序在客户端上进行自动化测试时,客户端调用应用接口地址(http://27.17.8.110:8989/auto_server/db.php),向服务端发起数据库信息获取请求,数据库信息获包括数据库版本和数据库下载地址,转到S2。

S2:客户端获取并解析服务端返回的数据库信息,客户端将返回的数据库版本与本地的数据库版本进行比较,判断是否需要更新(下载)数据库,若是,转到S3,否则通知上层应用不需要更新数据库后结束。

S2的具体流程为:

S201:客户端通过HTTP协议(HyperText Transfer Protocol,超文本传输协议),获取服务端返回的数据库信息,转到S202。

数据库信息具体包括:

数据库信息的格式举例为:

S202:客户端通过JSON解析数据库信息,将解析结果存放于DBVersionInfo(数据库版本)结构体中,转到S203。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言;易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

DBVersionInfo结构体的定义为:

S203:客户端将DBVersionInfo结构体中的version(数据库版本)、size(数据库文件大小)和name(数据库名称),拼接形成新的字符串,对该字符串进行MD5(Message Digest Algorithm 5(消息摘要算法第五版)校验后,生成本地MD5校验码,转到S204。

S204:判断本地MD5校验码与服务端返回的MD5校验值是否相同,若是,则证明校验成功,转到S205,否则证明校验失败,通知上层应用校验失败后结束。

S205:取出DBVersionInfo结构体中的version字段的值a1,判断a1是否≤客户端本地的数据库版本的值a2(a2不存在时,设置a2的默认值为-1),若是,则说明本地数据库版本比服务端版本新或者两者版本相同,此时不需要更新本地数据库,通知上层应用不需要更新数据库后结束;否则说明本地数据库版本比服务端的数据库版本低,此时需要更新本地数据库,转到S3。

S3:客户端根据S2中解析的数据库下载地址,下载服务端上的数据库文件;判断下载过程中是否出现异常,若是,则证明下载失败,将下载失败信息通知上层应用后结束;否则证明下载成功,将下载成功信息通知上层应用后结束。

S3的具体流程为:

S301:客户端根据S202中解析的数据库下载地址,开启新的线程并通过HTTP协议向服务端发起数据库文件下载请求,客户端将服务端返回的下载数据全部写入客户端上的数据库存储文件中。

S302:判断客户端写入服务端返回的下载文件的过程中,是否发生异常,若是,则证明下载失败,将下载失败信息通知上层应用后结束;否则证明下载成功,将下载成功信息通知上层应用后结束。

本发明实施例提供的实现上述方法的自动化测试时客户端与服务端的数据库同步系统,包括位于客户端上的数据库信息获取模块、数据库版本检测模块和本地数据库更新模块。

数据库信息获取模块用于:当应用程序在客户端上进行自动化测试时,向服务端发起数据库信息获取请求,数据库信息获包括服务端返回码、返回码携带消息、数据库版本、数据库下载地址、数据库名称、MD5校验值和数据库大小。

数据库版本检测模块用于:获取并通过JSON解析服务端返回的数据库信息,将解析得到的数据库版本、数据库文件大小和数据库名称,拼接形成字符串,对该字符串进行MD5校验后,生成本地MD5校验码;当本地MD5校验码与所述MD5校验值相同、且解析得到的数据库版本的值>客户端本地的数据库版本的值时,向本地数据库更新模块发送本地数据库更新信号。

数据库版本检测模块若发现本地MD5校验码与所述MD5校验值不相同,则通知校验失败,中止工作;若发现解析得到的数据库版本的值≤客户端本地的数据库版本的值,则通知不需要更新本地数据库,中止工作;若发现客户端中没有本地数据库版本,则设置本地数据库版本的值为1。

本地数据库更新模块用于:收到本地数据库更新信号后,根据数据库版本检测模块解析的数据库下载地址,下载服务端上的数据库文件;判断下载过程中是否出现异常,若是,则证明下载失败,否则证明下载成功。

本地数据库更新模块的主要接口设计如下(Java代码为例):

Public interface IdownloadCallback{

Public void onError(int errorCode,String errorMsg);

Public void onSuccess(String dbPath);

}

本地数据库更新模块的具体工作流程为:

根据所述数据库版本检测模块解析的数据库下载地址,开启新的线程并通过HTTP协议向服务端发起数据库文件下载请求,将服务端返回的下载数据全部写入客户端上的数据库存储文件中;

判断写入服务端返回的下载文件的过程中,是否发生异常,若是,通知下载失败,否则通知下载成功。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1