基于自动化Web端模块化测试工具的制作方法

文档序号:26050080发布日期:2021-07-27 15:24阅读:99来源:国知局
基于自动化Web端模块化测试工具的制作方法

本申请涉及接口测试技术领域,尤其涉及一种基于自动化web端模块化测试工具。



背景技术:

随着互联网快速发展,b/s结构(browser/server,浏览器/服务器模式)程序已成为当今的主流结构,同时前端技术的迭代,越来越多的业务已迁移到前端。前端的代码量也庞大起来,这时模块化编程方式也在前端流行起来。

在前端技术没有革新的时候,大部份代码都放在一起。造成代码之间的耦合度极高,对于前端测试人员来说无法从某一块单独进行测试,测试的方式也只能通过人工方式进行测试,对于一个小小的改动,都需要整个流程测试一遍,这样会导致资源的极大浪费。同时也对测试人员能力要求也极高,从效率上来说,也是一种损失。

而且,虽然前端技术不断的迭代,但是测试前端的自动化工具却停留在“原始”阶段。目前流行的模块自动化工具都是针对开发人员测试阶段的,不方便测试人员使用,而且测试后没有形成任何报告数据。比如,目前常用的自动化测试工具有jest、mocha、jasmine和nightwatch等,上述工具的存在一定程度上提高了测试效率,但是依然存在一定问题,例如,jest对于其他库或工具的支持度不够,mocha没有良好的图形化界面与测试报表,jasmine的配置非常复杂,nightwatch的测试用例不易阅读等等。因此,亟需一种高效易用且对用户技术要求不高的测试工具来解决上述问题。



技术实现要素:

本申请提供一种基于自动化web端模块化测试工具,以解决现有测试工具使用难度高或对用户技术要求高的问题。

本申请的上述目的是通过以下技术方案实现的:

本申请实施例提供一种基于自动化web端模块化测试工具,其特征在于,基于webpack插件和node.js技术开发而成,用于模块编程的前端测试,所述测试工具包括:插件系统和管理系统;

所述插件系统包括接口获取插件、接口参数分析插件、规则匹配插件和数据分析插件;所述接口获取插件用于扫描所有待测试的前端开发程序,并获取对应的模块以及自动生成各模块的测试接口;所述接口参数分析插件用于分析模块测试时所需要的参数,并生成对应的集合以存储模块信息;所述规则匹配插件用于根据用户配置的测试规则,从所述接口获取插件获取的所有模块中确定待测试模块;所述数据分析插件用于根据存储的模块信息进行数据保存,将数据保存到持久化数据库中;

所述管理系统包括性能测试系统、测试用例生成系统、报表生成系统和日志系统;所述性能测试系统用于根据用户配置的测试规则,在后台自动调用待测试模块进行测试,并将测试的数据存储于数据库中;所述测试用例生成系统用于根据所述性能测试系统测试得到的数据,生成测试用例报表;所述报表生成系统用于根据用户指令,从数据库中读取对应的数据,并根据读取的数据生成展示信息;所述日志系统用于记录测试过程中的所有操作记录。

可选的,所述测试工具还包括管理界面,用户通过所述管理界面配置测试规则以及查看测试结果。

可选的,测试过程中,在检测到模块的参数发生变化时,通过高亮的方式进行提示。

可选的,所述报表生成系统生成的展示信息包括图表及excel表格信息。

可选的,对待测试模块进行测试时,若调用了其他模块,则确定其他模块的处理时长,并展示调用的所有其他模块。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请的实施例提供的基于自动化web端模块化测试工具为通过webpack插件和node.js技术开发而成,通过webpack插件功能,用户可以通过简单操作配置待测试的模块,从而根据用户配置要求自动生成测试代码,也即根据配置的规则自动生每个模块的测试接口,之后借助于node.js自动执行测试,简单易用,降低了测试人员技能要求,并且也提高了测试效率。此外,还可以根据测试结果生成可视化图表,便于进行直观展示。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的基于自动化web端模块化测试工具的系统结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

为了使本申请的技术方案更容易理解,首先对现有的几种测试工具的优缺点进行简要说明。

目前比较流行的测试工具主要有jest、mocha、jasmine和nightwatch。

1.jest工具介绍

(1)使用jest的最大好处是最小配置和设置的开箱即用体验,因为它附带了一个mock支持断言库。与任何新的测试库一样,测试用例是使用行为驱动的开发方法编写的;用户可以将用户的测试用例放在一个名为_tests_的文件夹中,并开始运行它们。

(2)jest被认为是一个有很好文档的、快速执行的javascript测试框架。

(3)jest提供了一种健壮的开发人员工具,代码更不容易出错。

该框架还可以通过捕获屏幕截图来执行可视化回归测试。当使用reactjs开发应用程序时,该特性对于防止意外导致的uibug非常方便。它的工作原理是记录呈现组件的屏幕快照,然后与将来呈现的组件进行比较。如果添加了任何新功能,屏幕截图都可以轻松更新。

但是,jest存在如下缺点:

(1)与jasmine这样的框架相比,它不支持太多的库或工具,这些库或工具有时对于在不支持jest的ide中调试测试用例非常方便。

(2)那些对jest感到不自在的人表示,学习的过程相当艰难。

(3)使用jest进行快照测试对于较大的快照文件不太可行。

2.mocha工具介绍

(1)该应用程序是开源的,并且允许灵活性。

(2)它可以很容易地支持生成器。

(3)由于它是旧的,许多教程和文档都可以在网上找到。

(4)使用灵活的报告顺序执行测试用例。

(5)mocha帮助用户轻松地将异常映射到相关的测试用例。

但是,mocha存在如下缺点:

(1)对技术要求比较高。

(2)随着jest的出现,摩卡(mocha)在测试人员社区中的受欢迎程度显著下降。

(3)没有良好的图形化界面与测试报表。

3.jasmine工具介绍

(1)jasmine最大的优点是它可以兼容你选择的所有框架或库,这使它成为最灵活的javascript测试框架之一。无论用户想要使用sinon来模拟或者chai来断言测试用例,jasmine都将毫无困难地帮助用户。

(2)jasmine的社区非常大,用户将获得各种各样的支持,包括库、博客文章或视频教程。

(3)随着社区的扩大,jasmine的学习曲线非常平滑。用户也会得到令人印象深刻的文档。提供优雅的编程风格和模式。

但是,jasmine存在如下缺点:

(1)jasmine需要很多配置。在使用mock框架或断言库之前,用户必须显式地选择它。如果用户的项目需要这种灵活性,那么它可能很有用。如果没有,配置过程可能有点令人沮丧。

(2)jasmine通过使用jasmine-snapshot库支持快照测试。然而,集成它可能有点困难。

4.nightwatch工具介绍

(1)首先,设置非常简单。

(2)用户只需要导入selenium库。

(3)通过博客和教程的形式获得很多资源。

(4)语言非常简单。你只需要一点面向对象编程的基础知识。

如果测试人员属于一个java团队,后端团队成员可以轻松获取知识,并帮助测试人员编写自动化测试用例,从而提高团队的整体生产力。

但是,nightwatch存在如下缺点:

(1)测试用例不像其他框架那样容易阅读。语法不清楚,用户也不可能对每一步都写清楚描述。用户可以以注释的形式来完成它,但是如果任何测试用例失败,它将都不会显示在日志中。

(2)虽然用户可以为每一步添加一条清晰的错误消息,但要找出哪里出错了,还是会比较困难。

为了应对上述问题,本申请提供一种基于自动化web端模块化测试工具。其是针对上述的缺点而开发的一款轻量级、易用、高效率的测试工具;同时对测试人员的技术能力要求不高,只需要一些简单的配置,就可以实现测试,且无需写一些额外的代码。以下通过实施例进行详细说明。

实施例

参照图1,图1为本申请实施例提供的基于自动化web端模块化测试工具的系统结构示意图。其中,该测试工具基于webpack插件和node.js技术开发而成,用于模块编程的前端测试,由于该工具是在模块的基础之上进行开发,因此没有采用模块编程的前端无法使用。

webpack是代码编译工具,有入口、出口、loader和插件,适用于代码分割、模块化。node.js对一些特殊用例进行优化,提供替代的api,使得v8在非浏览器环境下运行得更好,v8引擎执行javascript的速度非常快,性能非常好,基于chromejavascript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。

如图1所示,该测试工具包括插件系统和管理系统;

插件系统包括接口获取插件、接口参数分析插件、规则匹配插件和数据分析插件;接口获取插件用于扫描所有待测试的前端开发程序,并获取对应的模块以及自动生成各模块的测试接口;接口参数分析插件用于分析模块测试时所需要的参数,并生成对应的集合以存储模块信息;规则匹配插件用于根据用户配置的测试规则,从接口获取插件获取的所有模块中确定待测试模块;所述数据分析插件用于根据存储的模块信息进行数据保存,将数据保存到持久化数据库中;

管理系统包括性能测试系统、测试用例生成系统、报表生成系统和日志系统;性能测试系统用于根据用户配置的测试规则,在后台自动调用待测试模块进行测试,并将测试的数据存储于数据库中;测试用例生成系统用于根据性能测试系统测试得到的数据,生成测试用例报表;报表生成系统用于根据用户指令,从数据库中读取对应的数据,并根据读取的数据生成展示信息;日志系统用于记录测试过程中的所有操作记录。

此外,测试工具还提供管理界面,用户通过管理界面配置测试规则以及查看测试结果等等。

基于上述测试工具,在测试之前,用户首先可以配置测试规则,也即选择设置哪些模块不进行测试或者针对某一个模块进行测试。规则配置完成后,即可开始测试,当程序进行构建时,webpack插件开始执行,通过接口获取插件进行扫描所有前端开发程序,获取对应的模块,并且自动生每个模块的测试接口,无需测试人员写出测试接口。获取到测试接口后,接口参数分析插件可以捕获到调用后端接口的地址,根据需要的参数自动补全,以便测试后台接口的性能。然后,规则匹配插件根据用户配置的测试规则,从接口获取插件获取的所有模块中确定待测试模块。之后由性能测试系统执行测试,测试结果数据存储于数据库中。测试过程中,在检测到模块的参数发生变化时,通过高亮的方式进行提示。之后测试用例生成系统可以根据性能测试系统测试得到的数据,生成测试用例报表供用户查看;而报表生成系统可以根据用户指令(比如通过管理界面下达的查看指令),从数据库中读取对应的数据,并根据读取的数据生成展示信息,包括图表及excel表格信息等等。并且,对待测试模块进行测试时,若调用了其他模块,则确定所调用的其他模块的处理时长,并通过管理界面展示调用的所有其他模块和处理时长等信息,便于用户直观查看。此外,日志系统可以记录测试过程中的所有操作记录,用于以后问题查找。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请的实施例提供的基于自动化web端模块化测试工具为通过webpack插件和node.js技术开发而成,通过webpack插件功能,用户可以通过简单操作配置待测试的模块,从而根据用户配置要求自动生成测试代码,也即根据配置的规则自动生每个模块的测试接口,之后借助于node.js自动执行测试,简单易用,降低了测试人员技能要求,并且也提高了测试效率。此外,还可以根据测试结果生成可视化图表,便于进行直观展示。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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