一种测试方法和客户端与流程

文档序号:11133829阅读:446来源:国知局
一种测试方法和客户端与制造工艺

本申请涉及互联网信息技术,尤其是涉及一种测试方法和客户端。



背景技术:

一种常见的互联网(英文:Web)系统包括前端服务器、后端服务器和客户端。为了向用户显示网页,客户端从前端服务器获取网页文件,例如超级文本标记语言(英文:HyperText Markup Language,简称:html)文档等,客户端从后端服务器获取真实数据,基于所述真实数据将所述网页文件转化成对应的网页。

为了保证网页能够正常显示,需要对网页的显示情况进行测试。由于在测试时一般不会产生真实数据,因此需要生成模拟(英文:mock)数据进行测试。目前由前端服务器生成模拟数据,因此,具体的测试过程包括:客户端从前端服务器获取网页文件和模拟数据,并基于所述模拟数据将所述网页文件转化成对应的网页。

可见,由于在测试过程中客户端需要从前端服务器获取模拟数据,而在正式发布网页文件后客户端需要从后端服务器获取真实数据。因此,在正式发布网页文件之前,需要开发人员对网页文件的代码进行修改,使得客户端改变数据的获取位置,从而导致既耗时又耗力。



技术实现要素:

本申请解决的技术问题在于提供一种测试方法和客户端,以实现在正式发布网页文件之前,无需对网页文件的代码进行修改,从而省时省力。

为此,本申请解决技术问题的技术方案是:

本申请提供了一种测试方法,所述方法包括:

客户端获取网页文件;

所述客户端加载所述网页文件后生成第一获取请求,所述第一获取请求用于请求向后端服务器获取数据;

所述客户端拦截到向所述后端服务器发送的所述第一获取请求;

所述客户端从所述客户端的存储模块中获取所述第一模拟数据;

所述客户端基于所述第一模拟数据,将所述网页文件转化成对应的网页。

可选的,所述客户端拦截到向所述后端服务器发送的所述第一获取请求之后,所述方法还包括:

所述客户端获取位置标识,所述位置标识用于标识数据的获取位置;

所述客户端从所述客户端的存储模块中获取所述第一模拟数据,包括:

若所述位置标识为第一标识,所述客户端从所述客户端的存储模块中获取所述第一模拟数据。

可选的,所述方法还包括:

若所述位置标识为第二标识,所述客户端向所述后端服务器发送所述第一获取请求,并接收所述后端服务器发送的第二模拟数据;

所述客户端基于所述第二模拟数据,将所述网页文件转化成对应的网页。

可选的,所述方法还包括:

所述客户端将所述第二模拟数据存储在所述客户端的存储模块中。

可选的,所述客户端从所述客户端的存储模块中获取所述第一模拟数据,包括:

若所述存储模块中存储有所述第一模拟数据,所述客户端从所述存储模块中获取所述第一模拟数据;

所述方法还包括:

若所述存储模块中未存储有所述第一模拟数据,所述客户端获取用户输入的所述第一模拟数据,并将所述第一模拟数据存储在所述存储模块中。

可选的,还包括:

所述客户端检测到用户对所述第一模拟数据的变更操作;

所述客户端获取与所述第一模拟数据不同的第三模拟数据;

所述客户端将所述第三模拟数据存储在所述客户端的存储模块中;

所述客户端基于所述第三模拟数据,将所述网页文件转化成对应的网页。

可选的,所述客户端基于所述第三模拟数据,将所述网页文件转化成对应的网页之前,所述方法还包括:

所述客户端加载所述网页文件后生成第二获取请求,所述第二获取请求用于请求向所述后端服务器获取数据;

所述客户端拦截到向所述后端服务器发送的所述第二获取请求;

所述客户端从所述客户端的存储模块中获取所述第三模拟数据。

可选的,所述网页文件中设置变更功能,所述变更功能默认为未激活状态;所述方法还包括:

所述客户端检测到用户利用浏览器提供的测试平台激活所述变更功能;

所述客户端将所述变更操作设置为激活状态,所述激活状态允许所述客户端检测所述变更操作。

可选的,所述方法还包括:

所述客户端获取所述客户端生成的n条日志;

所述客户端根据用户设置的日志过滤规则,从所述n条日志中获取m条日志;

所述客户端显示所述m条日志;其中,n>1,m>1,n大于m。

可选的,所述存储模块存储有前端数据,所述方法还包括:

所述客户端接收数据处理请求;

所述客户端从所述存储模块中获取所述前端数据;

所述客户端基于所述数据处理请求,对所述前端数据进行数据处理;

所述数据处理包括以下操作中的至少一种:检索、排序、过滤、分类和统计。

本申请还提供了一种客户端,包括:

第一获取单元,用于获取网页文件;

加载单元,用于加载所述网页文件后生成第一获取请求,所述第一获取请求用于请求向后端服务器获取数据;

拦截单元,用于拦截到向所述后端服务器发送的所述第一获取请求;

第二获取单元,用于在所述拦截单元拦截到所述第一获取请求后,从所述客户端的存储模块中获取所述第一模拟数据;

转化单元,用于基于所述第一模拟数据,将所述网页文件转化成对应的网页。

可选的,还包括:第三获取单元;

所述第三获取单元,用于在所述拦截单元拦截到向所述后端服务器发送的所述第一获取请求之后,获取位置标识,所述位置标识用于标识数据的获取位置;

所述第二获取单元,具体用于若所述位置标识为第一标识,从所述客户端的存储模块中获取所述第一模拟数据。

可选的,所述第二获取单元,还用于若所述位置标识为第二标识,向所述后端服务器发送所述第一获取请求,并接收所述后端服务器发送的第二模拟数据;

所述转化单元,还用于基于所述第二模拟数据,将所述网页文件转化成对应的网页。

可选的,还包括:

第一存储单元,用于将所述第二模拟数据存储在所述客户端的存储模块中。

可选的,当从所述客户端的存储模块中获取所述第一模拟数据时,所述第二获取单元具体用于若所述存储模块中存储有所述第一模拟数据,从所述存储模块中获取所述第一模拟数据;

所述第二获取单元还用于,若所述存储模块中未存储有所述第一模拟数据,获取用户输入的所述第一模拟数据,并将所述第一模拟数据存储在所述存储模块中。

可选的,还包括:

检测单元,用于检测到用户对所述第一模拟数据的变更操作;

第四获取单元,用于获取与所述第一模拟数据不同的第三模拟数据;

第二存储单元,用于将所述第三模拟数据存储在所述客户端的存储模块中;

所述转化单元,还用于基于所述第三模拟数据,将所述网页文件转化成对应的网页。

可选的,所述加载单元,还用于在所述转化单元基于所述第三模拟数据将所述网页文件转化成对应的网页之前,加载所述网页文件后生成第二获取请求,所述第二获取请求用于请求向所述后端服务器获取数据;

所述拦截单元,还用于拦截到向所述后端服务器发送的所述第二获取请求;

所述第四获取单元,还用于在所述拦截单元拦截到所述第二获取请求后,从所述客户端的存储模块中获取所述第三模拟数据。

可选的,所述网页文件中设置变更功能,所述变更功能默认为未激活状态;所述客户端还包括设置单元;

所述检测单元,还用于检测到用户利用浏览器提供的测试平台激活所述变更功能;

所述设置单元,用于在所述检测单元检测到激活所述变更功能之后,将所述变更操作设置为激活状态,所述激活状态允许所述客户端检测所述变更操作。

可选的,还包括:

第五获取单元,用于获取所述客户端生成的n条日志;

第六获取单元,用于根据用户设置的日志过滤规则,从所述n条日志中获取m条日志;

显示单元,用于显示所述m条日志;其中,n>1,m>1,n大于m。

可选的,所述存储模块存储有前端数据;所述客户端还包括:

接收单元,用于接收数据处理请求;

第七获取单元,用于从所述存储模块中获取所述前端数据;

数据处理单元,用于基于所述数据处理请求,对所述前端数据进行数据处理;

所述数据处理包括以下操作中的至少一种:检索、排序、过滤、分类和统计。

通过上述技术方案可知,在本申请实施例中在测试网页文件的显示情况时,所述客户端加载所述网页文件后会生成第一获取请求,所述第一获取请求用于请求向后端服务器获取数据,因此所述网页文件在正式发布时无需对网页文件的代码进行修改。由于在测试时所述后端服务器不能提供真实数据,因此所述客户端会拦截到所述第一获取请求,即不再根据所述第一获取请求从后端服务器获取数据,而是从客户端的存储模块中获取所述第一模拟数据,并基于所述第一模拟数据将所述网页文件转化成对应的网页。可见,本申请实施例使得网页文件正式发布时,无需开发人员对网页文件的代码进行修改以改变客户端对数据的获取位置,而只需客户端能够拦截到所述第一获取请求并从所述客户端本地获取所述第一模拟数据,从而即省时又省力。

附图说明

图1为本申请实施例提供的一种Web系统的结构示意图;

图2为本申请实施例提供的测试方法的一种实施例的流程示意图;

图3为本申请实施例提供的测试方法的另一种实施例的流程示意图;

图4为本申请实施例提供的客户端显示第一模拟数据的示意图;

图5为本申请实施例提供的客户端显示日志的示意图;

图6为本申请实施例提供的客户端的一种实施例的结构示意图。

具体实施方式

如图1所示,一种常见的Web系统包括前端服务器、后端服务器和客户端01。前端服务器指的是负责Web前端业务的服务器,Web前端业务通常指的是向用户展示或者与用户直接交互的业务,例如包括提供脚本资源(例如JavaScript资源)、样式资源(例如css资源)等等。所述前端服务器具体可以为内容分发网络(英文:Content Delivery Network,简称:CDN)服务器。后端服务器指的是负责Web后端业务的服务器,Web后 端业务通常指的是与向用户展示无关或者不与用户直接交互的业务,例如包括与数据库交互的业务。

为了向用户显示网页,客户端01从前端服务器获取网页文件,并对网页文件进行解析和渲染操作,从而将网页文件转化成对应的网页。而网页文件在转化成对应的网页时可能需要基于一定的数据。例如网页文件加载到饼状图控件,饼状图控件在显示饼状图时需要两种类型的用户数据:用户浏览量和用户点击量。因此,客户端01显示网页的过程为:客户端01加载网页文件生成数据获取请求,并将所述数据获取请求发送至后端服务器,后端服务器接收到所述数据获取请求后,会向客户端01返回用户数据等真实数据,客户端01基于所述真实数据对所述网页文件进行解析和渲染操作,从而将所述网页文件转化成对应的网页。其中,网页文件指的是用于描述网页的文件,例如可以为html文档等。

为了保证网页能够正常显示,需要对网页的显示情况进行测试。由于测试网页的显示情况一般发生在网页文件正式发布之前,因此一般不会产生真实数据,例如不会产生真实的用户浏览量和用户点击量,因此需要生成模拟数据进行测试。目前由前端服务器生成模拟数据,具体的测试过程包括:客户端01从前端服务器获取网页文件和模拟数据,网页文件和所述模拟数据在同一文件夹下,网页文件中指示出所述模拟数据在该文件夹的地址,使得所述客户端01从该文件夹获取所述模拟数据。客户端01基于所述模拟数据对所述网页文件进行解析和渲染操作,从而将所述网页文件转化成对应的网页。

可见,由于在测试过程中客户端01需要从前端服务器获取模拟数据,实际上即网页文件中指示出的地址,而在正式发布网页文件后客户端01需要从后端服务器获取真实数据。因此,在正式发布网页文件之前,需要开发人员对网页文件的代码进行修改,将客户端01对数据的获取位置从网页文件中指示的地址改变为后端服务器,显然这种需要对代码进行修改的方式导致耗费较大的时间和人力成本。

在本申请实施例中,提供了一种测试方法和客户端,以实现在正式发布网页文件之前,无需对网页文件的代码进行修改,从而省时省力。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本申请保护的范围。

请参阅图2,本申请提供了测试方法的一种方法实施例,所述方法用于测试网页的显示情况。所述方法包括:

201:客户端获取网页文件。

在本申请实施例中,所述客户端可以从前端服务器中获取所述网页文件。所述网页文件可以为html文档。

202:所述客户端加载所述网页文件后生成第一获取请求,所述第一获取请求用于请求向后端服务器获取数据。

若所述网页文件在转化成对应的网页时需要依赖一定的数据,所述客户端在加载所述网页文件后会生成所述第一获取请求,所述第一获取请求实际上为数据获取请求,因此,所述客户端将所述第一获取请求发送至后端服务器,所述后端服务器会向所述客户端返回数据。

203:所述客户端拦截到向所述后端服务器发送的所述第一获取请求。

与现有技术不同的是,所述客户端在生成所述第一获取请求之后,会向所述后端服务器发送所述第一获取请求,由于所述客户端会拦截到所述第一获取请求,从而使得所述后端服务器不会接收到所述第一获取请求。其中,本实施例可以通过所述客户端的浏览器,实现上述拦截功能。

204:所述客户端从所述客户端的存储模块中获取所述第一模拟数据。

所述客户端拦截到所述第一获取请求后,表示所述客户端需要获取模拟数据,因此所述客户端会从所述客户端的存储模块,即所述客户端本地获取所述第一模拟数据。其中,所述客户端的存储模块中预先存储有所述第一模拟数据。

在本申请实施例中,所述存储模块区别于所述客户端的内存,即所述存储模块为非内存的存储模块。

205:所述客户端基于所述第一模拟数据,将所述网页文件转化成对应的网页。

在本申请实施例中,所述客户端可以基于所述第一模拟数据,通过解析和渲染操作,将所述网页文件转化成对应的网页进行显示,即所述网页中显示有所述第一模拟数据。从而使得测试人员能够对所述网页的显示情况进行测试。

通过上述技术方案可知,在本申请实施例中在测试网页文件的显示情况时,所述客户端加载所述网页文件后会生成第一获取请求,所述第一获取请求用于请求向后端服务器获取数据,因此所述网页文件在正式发布时无需对网页文件的代码进行修改,即所述网页文件正式发布后,所述客户端在加载所述网页文件后也会生成所述第一获取请求。由于在测试时所述后端服务器不能提供真实数据,因此所述客户端会拦截到所述第一获取请求,不再根据所述第一获取请求从后端服务器获取数据,而是从客户端的存储模块中获取所述第一模拟数据,并基于所述第一模拟数据将所述网页文件转化成对应的网页。可见,本申请实施例使得网页文件正式发布时,无需开发人员对网页文件的代码进行修改以改变客户端对数据的获取位置,而只需客户端能够拦截到所述第一获取请求并从所述客户端本地获取所述第一模拟数据,从而即省时又省力。

在本申请实施例中,所述客户端从所述客户端的存储模块中获取所述模拟数据,因此对于多个客户端来说,每个客户端可以从自身的存储模块中获取模拟数据,即每个客户端存储的模拟数据相互独立,当一个客户端存储的模拟数据发生变更时,对另一个客户端存储的模拟数据没有影响,从而提高了测试的独立性。

在本申请实施例中,无论是在对所述网页文件的显示情况进行测试时,还是在所述网页文件正式发布之后,所述客户端在加载所述网页文件时都会生成所述第一获取请求。所不同的是,在进行所述测试时,客户端会拦截到所述第一获取请求,并从客户端本地获取到所述第一模拟数据;而在所述网页文件正式发布之后,客户端会根据所述第一获取请求从后端服务器获取真实数据。其中,在上述两个阶段可以分别使用两个客户端,这两个客户端分别具有以上两种数据获取方式,或者也可以使用同一个客户端,而该客户端根据自身的配置选择不同的数据获取方式,下面对这种情况进行具体说明。

在203中的所述客户端拦截到向所述后端服务器发送的所述第一获取请求之后,所述方法还包括:所述客户端获取位置标识,所述位置标识用于标识数据的获取位置;所述客户端从所述客户端的存储模块中获取所述第一模拟数据,包括:若所述位置标识为第一标识,所述客户端从所述客户端的存储模块中获取所述第一模拟数据。

也就是说,在所述客户端拦截到所述第一获取请求之后,所述客户端会获取所述位置标识,其中所述位置标识用于标识数据的获取位置,如果所述位置标识为所述第一标识,所述客户端才会从所述客户端的存储模块中获取所述第一模拟数据。如果所述位置标识为除所述第一标识外的其他标识,则所述客户端从所述存储模块之外的设备中获取数据。例如,所述方法还包括:若所述位置标识为第二标识,所述客户端向所述后端服务器发送所述第一获取请求,并接收所述后端服务器发送的第二模拟数据;所述客户端基于所述第二模拟数据,将所述网页文件转化成对应的网页。其中,用户可以对位置标识进行配置。

举例说明,位置标识need_redirect为true时,客户端从所述存储模块获取所述第一模拟数据,位置标识need_redirect为false时,客户端从所述后端服务器获取所述第二模拟数据。其中,用户可以对位置标识need_redirect为true还是false进行配置。

可见,当采用上述方式确定数据的获取位置时,所述网页文件在正式发布时,无需再修改所述网页文件的代码,只需更改位置标识即可,从而降低操作的复杂度。例如所述位置标识的默认配置为所述第二标识,当在所述客户端上进行测试时,将所述位置标识修改为所述第一标识。

其中需要说明的是,在本申请实施例中,后端服务器既可以为后端数据服务器,也可以为模拟数据服务器。其中,后端数据服务器用于提供用户的真实数据,因此在所述网页文件正式发布之后,所述客户端可以根据所述第一获取请求从所述后端数据服务器获取到真实数据,并基于真实数据将所述网页文件转化成对应的网页。而在测试过程中,所述客户端根可以根据所述第一获取请求从所述模拟数据服务器中获取到所述第二模拟数据,并基于所述第二模拟数据,将所述网页文件转化成对应的网页。

在本申请实施例中,所述客户端接收所述第二模拟数据之后,还可以将所述第二模拟数据存储在所述客户端的存储模块中,从而下一次拦截到获取请求时,可以从所述客户端的存储模块中获取所述第二模拟数据。其中,可以通过存储标识判断是否需要存储所述第一模拟数据,例如,若所述存储标识为第三标识,则在接收所述第二模拟数据之后,将所述第二模拟数据存储在所述存储模块中;若所述存储标识为第四标识,则在接收所述第二模拟数据之后,不存储所述第一模拟数据。

在本实施例的204中获取所述第一模拟数据之前,可以判断所述存储模块是否存储有所述第一模拟数据,如果有,进一步获取,如果没有,由用户输入所述第一模拟数据。具体地,204中的所述客户端从所述客户端的存储模块中获取所述第一模拟数据,包括:若所述存储模块中存储有所述第一模拟数据,所述客户端从所述存储模块中获取所述第一模拟数据;所述方法还包括:若所述存储模块中未存储有所述第一模拟数据,所述客户端获取用户输入的所述第一模拟数据,并将所述第一模拟数据存储在所述存储模块中。

在对网页文件的显示情况进行测试时,可能需要对模拟数据进行变更,比如模拟数据不符合测试的要求,或者需要测试更多的模拟数据以提高测试的全面性等等。举例说明,模拟的用户浏览量和用户点击量分别为100和40,为了提高测试的全面性,在健壮性测试时需要将模拟的用户点击量变更为100,以测试饼状图在临界点时的显示情况。

如图1所示,所述Web系统还包括客户端02。目前在对模拟数据进行变更时,需要开发人员在客户端02上变更模拟数据,通过客户端02重新向前端服务器上传变更后的模拟数据,测试人员通过客户端01从前端服务器获取变更后的模拟数据。可见在这种变更方式中,由于需要客户端02重新向前端服务器上传变更后的模拟数据,并且需要客户端01重新从前端服务器上获取变更后的模拟数据,而不能在客户端01上直接对模拟数据进行变更,导致测试的便捷性较差。其中,客户端01可以为测试端,客户端02可以为开发端。特殊的,客户端01和客户端02可以为同一个设备。

目前采用上述变更方式,而不是在客户端01上直接对模拟数据进行变更的主要原因是:客户端01在从前端服务器获取模拟数据后,会将模拟数 据保存在客户端01的内存中,若直接在客户端01上变更模拟数据,当重新解析和渲染网页文件时,保存在内存中的模拟数据将会丢失,因此无法基于变更后的模拟数据将网页文件转化成对应的网页。

因此,本申请提供了一种能够在客户端上直接对模拟数据进行变更的方式,以提高测试的便捷性。下面具体说明。

如图3所示,所述测试方法除了201至205之外,还包括301至304。

301:所述客户端检测到用户对所述第一模拟数据的变更操作。

本申请实施例中,变更操作包括以下操作中的至少一项:对特定按钮的点击、长按等操作,或者在特定区域的滑动操作。当所述客户端检测到所述变更操作后,所述客户端可以显示所述第一模拟数据,以使得用户对所述第一模拟数据进行变更。

由于在对所述网页文件的显示情况进行测试时,可以允许对所述第一模拟数据的变更操作,因此,在本申请实施例中,可以在所述网页文件中设置变更功能,例如显示变更按钮,当用户点击该变更按钮时,用户可以对所述第一模拟数据进行变更。而当所述网页文件正式发布之后,则需要用户无法对数据进行变更,因此,可以在所述网页文件正式发布之前,通过修改所述网页文件的代码的方式消除该变更功能,或者也可以将该变更功能默认为未激活状态,即默认不显示所述变更按钮,只有利用浏览器提供给开发人员的测试平台编写JavaScript等语言的代码,才能够激活该变更功能,例如显示所述变更按钮,并且开发人员之外的用户一般也不会利用所述测试平台去激活该变更功能。具体的激活过程可以包括:所述客户端检测到用户利用浏览器提供的测试平台激活所述变更功能;所述客户端将所述变更操作设置为激活状态,所述激活状态允许所述客户端检测所述变更操作。其中,所述浏览器一般为所述客户端的浏览器。

302:所述客户端获取与所述第一模拟数据不同的第三模拟数据。

在本申请实施例中,当检测到所述变更操作后,所述客户端可以通过多种方式获取与所述第一模拟数据不同的所述第三模拟数据。下面举例说明。

例如,所述客户端可以允许用户直接对所述第一模拟数据进行修改。如图4所示,所述客户端可以显示所述第一模拟数据,并且允许用户对显示的 所述第一模拟数据进行变更,例如删除第6-10行的数据,将变更后的数据作为所述第三模拟数据。

又例如,所述客户端通过生成输入框等方式获取用户输入的所述第三模拟数据。所述客户端还可以检测用户输入的模拟数据是否与所述第一模拟数据相同,如果否,则将用户输入的模拟数据作为所述第三模拟数据。

又例如,所述客户端按照预设规则或者随机方式生成与所述第一模拟数据不同的所述第三模拟数据。

303:所述客户端将所述第三模拟数据存储在所述客户端的存储模块中。

所述存储模块为非内存的存储模块,因此当基于所述第三模拟数据解析和渲染所述网页文件时,所述存储模块中存储的所述第三模拟数据不丢失。

所述客户端在存储所述第三模拟数据时,可以利用浏览器的存储机制。

304:所述客户端基于所述第三模拟数据,将所述网页文件转化成对应的网页。

在本申请实施例中,所述客户端可以基于所述第三模拟数据,通过解析和渲染操作,将所述网页文件转化成对应的网页进行显示,即所述网页中显示有所述第三模拟数据。

其中,由于在变更所述第一模拟数据之后,所述客户端不会自动转化网页,因此,本实施例还可以通过重新加载所述网页文件的方式重新转化网页。具体地,在304之前所述方法还可以包括:所述客户端加载所述网页文件后生成第二获取请求,所述第二获取请求用于请求向所述后端服务器获取数据;所述客户端拦截到向所述后端服务器发送的所述第二获取请求;所述客户端从所述客户端的存储模块中获取所述第三模拟数据。

可见在图3所示的实施例中,所述客户端可以根据对所述第一模拟数据的变更操作,获取与所述第一模拟数据不同的所述第三模拟数据,并将所述第三模拟数据存储在所述客户端的存储模块中,因此当基于所述第三模拟数据将所述网页文件转化成对应的网页时,所述存储模块中存储的所述第三模拟数据不会发生丢失的现象,从而实现了在所述客户端上直接对模拟数据进行变更,而无需重新从前端服务器获取更改后的模拟数据,提高了测试的便 捷性。

在对网页文件的显示情况的测试过程中,所述客户端会生成至少一条日志,而在现有技术中,所述客户端会显示所有的日志,造成可读性差、很难快速定位到用户当前需求的日志。因此在本申请实施例中,可以根据用户的设置将用户当前需求的日志显示给用户,从而使得显示界面更加简洁,提高可读性并且使得用户能够快速定位到用户当前需求的日志。具体地,本申请实施例中的所述方法还包括:所述客户端获取所述客户端生成的n条日志;所述客户端根据用户设置的日志过滤规则,从所述n条日志中获取m条日志;所述客户端显示所述m条日志;其中,n>1,m>1,n大于m。其中日志过滤规则可以根据基于功能模块,例如根据所述客户端能够实现的功能,设置多个功能模块。所述日志过滤规则用于设置每个功能模块对应的日志是否显示。其中为了便于对日志进行管理,本申请实施例的所述n条日志中可以表示为“功能模块+模块中的方法名称”的格式。例如图5所示,例如,设置Queue模块、Cache_localstorage模块、ferry模块和Sdk模块共四个功能模块,根据上述格式显示该四个功能模块对应的9条日志。

在本申请实施例中,所述存储模块中可以存储有前端数据,其中前端数据指的是所述客户端在处理Web前端业务时产生的数据。所述前端数据可以包括以下参数中的至少一种:所述客户端生成的日志、所述客户端与所述前端服务器交互的数据、以及所述客户端向用户展示的数据。而在现有技术中,并没有一种对上述数据的管理方式,很多情况下很难快速定位到所需的数据。因此本申请实施例中,可以实现对上述数据的管理方式。具体地,所述存储模块存储有前端数据,所述方法还包括:所述客户端接收数据处理请求;所述客户端基于所述数据处理请求,对所述存储模块中存储的所述前端数据进行数据处理。所述数据处理包括以下操作中的至少一种:检索、排序、过滤、分类和统计。其中可以自定义多个检索条件对所述前端数据进行检索。

本申请可以依赖JavaScript语言来实现,可以方便的调用当前内核提供的暴露给前端的标准方法、接口。并且可以依赖于c、c++语言来实现,直接调用内核提供的native方法。

对应上述方法实施例,本申请还提供了客户端的装置实施例,下面具体说明。

请参阅图6,本申请提供了客户端的一种装置实施例,所述客户端用于测试网页的显示情况。所述客户端包括:第一获取单元601、加载单元602、拦截单元603、第二获取单元604和转化单元605。

第一获取单元601,用于获取网页文件。

在本申请实施例中,第一获取单元601可以从前端服务器中获取所述网页文件。所述网页文件可以为html文档。

加载单元602,用于加载所述网页文件后生成第一获取请求,所述第一获取请求用于请求向后端服务器获取数据。

若所述网页文件在转化成对应的网页时需要依赖一定的数据,加载单元602在加载所述网页文件后会生成所述第一获取请求,所述第一获取请求实际上为数据获取请求,因此,所述客户端将所述第一获取请求发送至后端服务器,所述后端服务器会向所述客户端返回数据。

拦截单元603,用于拦截到向所述后端服务器发送的所述第一获取请求。

与现有技术不同的是,加载单元602在生成所述第一获取请求之后,会向所述后端服务器发送所述第一获取请求,由于拦截单元603会拦截到所述第一获取请求,从而使得所述后端服务器不会接收到所述第一获取请求。其中,拦截单元603可以通过所述客户端的浏览器,实现上述拦截功能。

第二获取单元604,用于在拦截单元603拦截到所述第一获取请求后,从所述客户端的存储模块中获取所述第一模拟数据。

拦截单元603拦截到所述第一获取请求后,表示所述客户端需要获取模拟数据,因此第二获取单元604会从所述客户端的存储模块,即所述客户端本地获取所述第一模拟数据。其中,所述客户端的存储模块中预先存储有所述第一模拟数据。

在本申请实施例中,所述存储模块区别于所述客户端的内存,即所述存储模块为非内存的存储模块。

转化单元605,用于基于所述第一模拟数据,将所述网页文件转化成对应的网页。

在本申请实施例中,转化单元605可以基于所述第一模拟数据,通过解析和渲染操作,将所述网页文件转化成对应的网页进行显示,即所述网页中显示有所述第一模拟数据。从而使得测试人员能够对所述网页的显示情况进行测试。

通过上述技术方案可知,在本申请实施例中在测试网页文件的显示情况时,加载单元602加载所述网页文件后会生成第一获取请求,所述第一获取请求用于请求向后端服务器获取数据,因此所述网页文件在正式发布时无需对网页文件的代码进行修改,即所述网页文件正式发布后,加载单元602在加载所述网页文件后也会生成所述第一获取请求。由于在测试时所述后端服务器不能提供真实数据,因此拦截单元603会拦截到所述第一获取请求,不再根据所述第一获取请求从后端服务器获取数据,而是由第二获取单元604从客户端的存储模块中获取所述第一模拟数据,并由转化单元605基于所述第一模拟数据将所述网页文件转化成对应的网页。可见,本申请实施例使得网页文件正式发布时,无需开发人员对网页文件的代码进行修改以改变客户端对数据的获取位置,而只需拦截单元603能够拦截到所述第一获取请求并由第二获取单元604从所述客户端本地获取所述第一模拟数据,从而即省时又省力。

在本申请实施例中,第二获取单元604从所述客户端的存储模块中获取所述模拟数据,因此对于多个客户端来说,每个客户端可以从自身的存储模块中获取模拟数据,即每个客户端存储的模拟数据相互独立,当一个客户端存储的模拟数据发生变更时,对另一个客户端存储的模拟数据没有影响,从而提高了测试的独立性。

在本申请实施例中,无论是在对所述网页文件的显示情况进行测试时,还是在所述网页文件正式发布之后,所述客户端在加载所述网页文件时都会生成所述第一获取请求。所不同的是,在进行所述测试时,客户端会拦截到所述第一获取请求,并从客户端本地获取到所述第一模拟数据;而在所述网页文件正式发布之后,客户端会根据所述第一获取请求从后端服务器获取真实数据。其中,在上述两个阶段可以分别使用两个客户端,这两个客户端分别具有以上两种数据获取方式,或者也可以使用同一个客户端, 而该客户端根据自身的配置选择不同的数据获取方式,下面对这种情况进行具体说明。

所述客户端还包括:第三获取单元;所述第三获取单元,用于在拦截单元603拦截到向所述后端服务器发送的所述第一获取请求之后,获取位置标识,所述位置标识用于标识数据的获取位置;所述第二获取单元,具体用于若所述位置标识为第一标识,从所述客户端的存储模块中获取所述第一模拟数据。

也就是说,在拦截单元603拦截到所述第一获取请求之后,所述第三获取单元会获取所述位置标识,其中所述位置标识用于标识数据的获取位置,如果所述位置标识为所述第一标识,所述第二获取单元才会从所述客户端的存储模块中获取所述第一模拟数据。如果所述位置标识为除所述第一标识外的其他标识,则所述客户端从所述存储模块之外的设备中获取数据。例如,第二获取单元604,还用于若所述位置标识为第二标识,向所述后端服务器发送所述第一获取请求,并接收所述后端服务器发送的第二模拟数据;转化单元605,还用于基于所述第二模拟数据,将所述网页文件转化成对应的网页。其中,用户可以对位置标识进行配置。

举例说明,位置标识need_redirect为true时,第二获取单元604从所述存储模块获取所述第一模拟数据,位置标识need_redirect为false时,第二获取单元604从所述后端服务器获取所述第二模拟数据。其中,用户可以对位置标识need_redirect为true还是false进行配置。

可见,当采用上述方式确定数据的获取位置时,所述网页文件在正式发布时,无需再修改所述网页文件的代码,只需更改位置标识即可,从而降低操作的复杂度。例如所述位置标识的默认配置为所述第二标识,当在所述客户端上进行测试时,将所述位置标识修改为所述第一标识。

其中需要说明的是,在本申请实施例中,后端服务器既可以为后端数据服务器,也可以为模拟数据服务器。其中,后端数据服务器用于提供用户的真实数据,因此在所述网页文件正式发布之后,所述客户端可以根据所述第一获取请求从所述后端数据服务器获取到真实数据,并基于真实数据将所述网页文件转化成对应的网页。而在测试过程中,所述客户端根可以根据所述 第一获取请求从所述模拟数据服务器中获取到所述第二模拟数据,并基于所述第二模拟数据,将所述网页文件转化成对应的网页。

在本申请实施例中,所述客户端还可以包括第一存储单元,所述第一存储单元用于接收所述第二模拟数据之后,将所述第二模拟数据存储在所述客户端的存储模块中,从而下一次拦截到获取请求时,可以从所述客户端的存储模块中获取所述第二模拟数据。其中,可以通过存储标识判断是否需要存储所述第一模拟数据,例如,若所述存储标识为第三标识,则在接收所述第二模拟数据之后,由所述第一存储单元将所述第二模拟数据存储在所述存储模块中;若所述存储标识为第四标识,则在接收所述第二模拟数据之后,不存储所述第一模拟数据。

在本实施例的第二获取单元604获取所述第一模拟数据之前,可以判断所述存储模块是否存储有所述第一模拟数据,如果有,进一步获取,如果没有,由用户输入所述第一模拟数据。具体地,当从所述客户端的存储模块中获取所述第一模拟数据时,第二获取单元604具体用于若所述存储模块中存储有所述第一模拟数据,从所述存储模块中获取所述第一模拟数据;第二获取单元604还用于,若所述存储模块中未存储有所述第一模拟数据,获取用户输入的所述第一模拟数据,并将所述第一模拟数据存储在所述存储模块中。

在对网页文件的显示情况进行测试时,可能需要对模拟数据进行变更。如图1所示,所述Web系统还包括客户端02。目前在对模拟数据进行变更时,需要客户端02重新向前端服务器上传变更后的模拟数据,并且需要客户端01重新从前端服务器上获取变更后的模拟数据,而不能在客户端01上直接对模拟数据进行变更,导致测试的便捷性较差。

因此,本申请提供了一种能够在客户端上直接对模拟数据进行变更的方式,以提高测试的便捷性。下面具体说明。

本申请实施例的所述客户端还包括:检测单元、第四获取单元和第二存储单元。

所述检测单元,用于检测到用户对所述第一模拟数据的变更操作。

本申请实施例中,变更操作包括以下操作中的至少一项:对特定按钮的点击、长按等操作,或者在特定区域的滑动操作。当所述检测单元检测到所 述变更操作后,所述客户端可以显示所述第一模拟数据,以使得用户对所述第一模拟数据进行变更。

由于在对所述网页文件的显示情况进行测试时,可以允许对所述第一模拟数据的变更操作,因此,在本申请实施例中,可以在所述网页文件中设置变更功能,例如显示变更按钮,当用户点击该变更按钮时,用户可以对所述第一模拟数据进行变更。而当所述网页文件正式发布之后,则需要用户无法对数据进行变更,因此,可以在所述网页文件正式发布之前,通过修改所述网页文件的代码的方式消除该变更功能,或者也可以将该变更功能默认为未激活状态,即默认不显示所述变更按钮,只有利用浏览器提供给开发人员的测试平台编写JavaScript等语言的代码,才能够激活该变更功能,例如显示所述变更按钮,并且开发人员之外的用户一般也不会利用所述测试平台去激活该变更功能。具体地,所述客户端还包括设置单元;所述检测单元,还用于检测到用户利用浏览器提供的测试平台激活所述变更功能;所述设置单元,用于在所述检测单元检测到激活所述变更功能之后,将所述变更操作设置为激活状态,所述激活状态允许所述客户端检测所述变更操作。其中,所述浏览器一般为所述客户端的浏览器。

所述第四获取单元,用于获取与所述第一模拟数据不同的第三模拟数据。

在本申请实施例中,当所述检测单元检测到所述变更操作后,所述第四获取单元可以通过多种方式获取与所述第一模拟数据不同的所述第三模拟数据。下面举例说明。

例如,所述客户端可以允许用户直接对所述第一模拟数据进行修改。如图4所示,所述客户端可以显示所述第一模拟数据,并且允许用户对显示的所述第一模拟数据进行变更,例如删除第6-10行的数据,所述第四获取单元将变更后的数据作为所述第三模拟数据。

又例如,所述第四获取单元通过生成输入框等方式获取用户输入的所述第三模拟数据。所述客户端还可以检测用户输入的模拟数据是否与所述第一模拟数据相同,如果否,则所述第四获取单元将用户输入的模拟数据作为所述第三模拟数据。

又例如,所述第四获取单元按照预设规则或者随机方式生成与所述第一模拟数据不同的所述第三模拟数据。

所述第二存储单元,用于将所述第三模拟数据存储在所述客户端的存储模块中。

所述存储模块为非内存的存储模块,因此当基于所述第三模拟数据解析和渲染所述网页文件时,所述存储模块中存储的所述第三模拟数据不丢失。

所述第二存储单元在存储所述第三模拟数据时,可以利用浏览器的存储机制。

转化单元605,还用于基于所述第三模拟数据,将所述网页文件转化成对应的网页。

在本申请实施例中,转化单元605可以基于所述第三模拟数据,通过解析和渲染操作,将所述网页文件转化成对应的网页进行显示,即所述网页中显示有所述第三模拟数据。

其中,由于在变更所述第一模拟数据之后,转化单元605不会自动转化网页,因此,本实施例还可以通过重新加载所述网页文件的方式重新转化网页。具体地,所述加载单元,还用于在转化单元605基于所述第三模拟数据将所述网页文件转化成对应的网页之前,加载所述网页文件后生成第二获取请求,所述第二获取请求用于请求向所述后端服务器获取数据;所述拦截单元,还用于拦截到向所述后端服务器发送的所述第二获取请求;所述第四获取单元,还用于在所述拦截单元拦截到所述第二获取请求后,从所述客户端的存储模块中获取所述第三模拟数据。

可见在图3所示的实施例中,所述客户端可以根据对所述第一模拟数据的变更操作,获取与所述第一模拟数据不同的所述第三模拟数据,并将所述第三模拟数据存储在所述客户端的存储模块中,因此当基于所述第三模拟数据将所述网页文件转化成对应的网页时,所述存储模块中存储的所述第三模拟数据不会发生丢失的现象,从而实现了在所述客户端上直接对模拟数据进行变更,而无需重新从前端服务器获取更改后的模拟数据,提高了测试的便捷性。

在对网页文件的显示情况的测试过程中,所述客户端会生成至少一条日志,而在现有技术中,所述客户端会显示所有的日志,造成可读性差、很难快速定位到用户当前需求的日志。因此在本申请实施例中,可以根据用户的设置将用户当前需求的日志显示给用户,从而使得显示界面更加简洁,提高可读性并且使得用户能够快速定位到用户当前需求的日志。具体地,本申请实施例中的所述客户端还包括:第五获取单元、第六获取单元和显示单元,所述第五获取单元用于获取所述客户端生成的n条日志;所述第六获取单元用于根据用户设置的日志过滤规则,从所述n条日志中获取m条日志;所述显示单元用于显示所述m条日志;其中,n>1,m>1,n大于m。

其中日志过滤规则可以根据基于功能模块,例如根据所述客户端能够实现的功能,设置多个功能模块。所述日志过滤规则用于设置每个功能模块对应的日志是否显示。其中为了便于对日志进行管理,本申请实施例的所述n条日志中可以表示为“功能模块+模块中的方法名称”的格式。例如图5所示,例如,设置Queue模块、Cache_localstorage模块、ferry模块和Sdk模块共四个功能模块,根据上述格式显示该四个功能模块对应的9条日志。

在本申请实施例中,所述存储模块中可以存储有前端数据,其中前端数据指的是所述客户端在处理Web前端业务时产生的数据。所述前端数据可以包括以下参数中的至少一种:所述客户端生成的日志、所述客户端与所述前端服务器交互的数据、以及所述客户端向用户展示的数据。而在现有技术中,并没有一种对上述数据的管理方式,很多情况下很难快速定位到所需的数据。因此本申请实施例中,可以实现对上述数据的管理方式。具体地,所述存储模块存储有前端数据,所述存储模块存储有前端数据;所述客户端还包括:接收单元、第七获取单元和数据处理单元;所述接收单元用于接收数据处理请求;所述第七获取单元用于从所述存储模块中获取所述前端数据;所述数据处理单元用于基于所述数据处理请求,对所述前端数据进行数据处理;所述数据处理包括以下操作中的至少一种:检索、排序、过滤、分类和统计。其中可以自定义多个检索条件对所述前端数据进行检索。

本申请可以依赖JavaScript语言来实现,可以方便的调用当前内核提供的暴露给前端的标准方法、接口。并且可以依赖于c、c++语言来实现,直接调用内核提供的native方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行变更,或者对其中部分技术特征进行等同替换;而这些变更或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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