CN111767217B - Js单元测试案例生成方法及装置 - Google Patents

Js单元测试案例生成方法及装置 Download PDF

Info

Publication number
CN111767217B
CN111767217B CN202010585036.6A CN202010585036A CN111767217B CN 111767217 B CN111767217 B CN 111767217B CN 202010585036 A CN202010585036 A CN 202010585036A CN 111767217 B CN111767217 B CN 111767217B
Authority
CN
China
Prior art keywords
code
data
unit test
grammar
unit
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.)
Active
Application number
CN202010585036.6A
Other languages
English (en)
Other versions
CN111767217A (zh
Inventor
潘玲
姜坤
杨丹
吴成龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010585036.6A priority Critical patent/CN111767217B/zh
Publication of CN111767217A publication Critical patent/CN111767217A/zh
Application granted granted Critical
Publication of CN111767217B publication Critical patent/CN111767217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种JS单元测试案例生成方法及装置,该方法包括:获取用户编写的待生成的JS单元测试案例的测试数据,其中,所述测试数据包括:至少一种JS代码、每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序;获取用户指定的所述待生成的JS单元测试案例对应的JS单元测试框架,并确定所述JS单元测试框架对应的预设的语法模板;根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例。本发明提高了前端JS单元测试案例的生成效率,降低了开发人员的技术门槛。

Description

JS单元测试案例生成方法及装置
技术领域
本发明涉及前端领域,具体而言,涉及一种JS单元测试案例生成方法及装置。
背景技术
前后端分离是当前软件开发首选的开发模式,前端、后端都有各自独立的开发环境。在开发自测阶段,前端和后端开发环境之间相互独立,而且不会发生任何请求交互,这导致开发人员仅能依赖自己的环境单独开发和自测。如何利用单元测试保证代码质量成为开发人员在这个阶段最关心的问题,避免漏洞推迟到项目后期而导致潜在风险。
单元测试是指对软件中的最小可测试单元进行检查和验证。单元测试更适用于对业务逻辑代码的测试,所以单元测试在后端开发中非常流行和普及,而前端开发需要使用浏览器和用户界面组件,编写单元测试案例比起编写业务逻辑代码更加困难,而且自动调起浏览器执行单元测试案例又涉及许多操纵系统层面的技术,这使得单元测试在前端开发中并未普及起来。随着敏捷开发的推动,业界涌现出了许多优秀的JS(JavaScript)单元测试框架,方便开发人员进行浏览器测试和自动化测试。但是,编写业务逻辑代码案例却需要使用这些测试框架的特定语法,编写用户界面代码案例仍需耗费较大精力去构造和设计,在一定程度上提高了开发人员的技术门槛。
综上,目前没有合理的解决高效高质量编写前端JS单元测试案例这个问题的方案,因此,如何提供一种新的方案,解决上述技术问题是本领域亟待解决的技术难题。
发明内容
本发明为了解决上述背景技术中的技术问题,提出了一种JS单元测试案例生成方法及装置。
为了实现上述目的,根据本发明的一个方面,提供了一种JS单元测试案例生成方法,该方法包括:
获取用户编写的待生成的JS单元测试案例的测试数据,其中,所述测试数据包括:至少一种JS代码、每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序;
获取用户指定的所述待生成的JS单元测试案例对应的JS单元测试框架,并确定所述JS单元测试框架对应的预设的语法模板;
根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例。
可选的,该JS单元测试案例生成方法还包括:
获取预设的多种JS单元测试框架各自的语法结构和语义要素;
根据所述语法结构和所述语义要素确定所述预设的多种JS单元测试框架各自对应的要素字段;
针对每种所述JS单元测试框架,根据每种所述JS代码的代码类型对应的要素字段的组装顺序和填充位置生成每种所述代码类型对应的语法模板,得到每种所述JS单元测试框架各自对应的语法模板。
可选的,所述JS代码的代码类型包括:普通变量操作、异步请求发送和用户界面操作。
可选的,所述普通变量操作类型的JS代码的输入数据包括:变量名称、数据类型和数据值;所述普通变量操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值;
所述异步请求发送类型的JS代码的输入数据包括:请求Url、请求数据类型和请求数据值;所述异步请求发送类型的JS代码的预期输出数据包括:响应数据类型和响应数据值;
所述用户界面操作类型的JS代码的输入数据包括:HTML元素类型、标识符和事件名称;所述用户界面操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值。
为了实现上述目的,根据本发明的另一方面,提供了一种JS单元测试案例生成装置,该装置包括:
测试数据获取单元,用于获取用户编写的待生成的JS单元测试案例的测试数据,其中,所述测试数据包括:至少一种JS代码、每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序;
语法模板确定单元,用于获取用户指定的所述待生成的JS单元测试案例对应的JS单元测试框架,并确定所述JS单元测试框架对应的预设的语法模板;
测试案例生成单元,用于根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例。
可选的,该JS单元测试案例生成装置还包括:
框架数据获取单元,用于获取预设的多种JS单元测试框架各自的语法结构和语义要素;
要素字段定义单元,用于根据所述语法结构和所述语义要素确定所述预设的多种JS单元测试框架各自对应的要素字段;
语法模板生成单元,用于针对每种所述JS单元测试框架,根据每种所述JS代码的代码类型对应的要素字段的组装顺序和填充位置生成每种所述代码类型对应的语法模板,得到每种所述JS单元测试框架各自对应的语法模板。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述JS单元测试案例生成方法中的步骤。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述JS单元测试案例生成方法中的步骤。
本发明的有益效果为:本发明通过生成多种JS单元测试框架各自对应的语法模板,用户仅需配置JS单元测试案例除除语法结构外的部分,即测试数据,进而根据用户选择的JS单元测试框架直接生成对应的标准化的前端JS单元测试案例,提高了前端JS单元测试案例的生成效率,也降低了开发人员的技术门槛。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例JS单元测试案例生成方法的第一流程图;
图2是本发明实施例JS单元测试案例生成方法的第二流程图;
图3是本发明实施例JS单元测试案例生成装置的第一结构框图;
图4是本发明实施例JS单元测试案例生成装置的第二结构框图;
图5是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明为解决在前端单元测试过程中,学习不同前端JS单元测试框架成本高,编写相应JS单元测试案例难度大、效率低,以及各开发人员的前端单元测试案例质量不同导致系统代码质量存在漏洞风险的问题,提供了一种基于约定语法模板自动生成前端JS单元测试的方法及装置。本发明按照每种JS单元测试框架的语法结构和语义要素形成一种语法模板(定义语法要素字段,并按照不同JS单元测试案例类型定义字段的组装顺序和填充位置的一种规则,以数据形式存储在数据库),多种语法模板构成语法模板库,支持前端开发人员根据其JS单元测试框架选择对应语法模板,采用语义要素抽取转换为用户配置的策略,支持前端开发人员可视化配置除语法结构外的最小语义要素规则,转换为标准化的前端JS单元测试案例。
图1是本发明实施例JS单元测试案例生成方法的第一流程图,如图1所示,在本发明一实施例中,本发明的JS单元测试案例生成方法具体包括步骤S101至步骤S103。
步骤S101,获取用户编写的待生成的JS单元测试案例的测试数据,其中,所述测试数据包括:至少一种JS代码、每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序。
在本发明实施例中,JS代码(或JS方法)的代码类型包括:普通变量操作、异步请求发送和用户界面操作。编写JS单元测试案例就是编写这一种或多种代码类型的测试组合。
在本发明实施例中,前端开发人员(即用户)输入一段JS代码的标识符或者JS方法名称,按照普通变量操作定义、异步请求发送定义、用户界面操作定义三种方式设计测试数据。
在本发明实施例中,根据各JS代码的顺序,前端开发人员可以使用拖拽组合的形式来设置这些不同代码类型的测试数据的顺序,从而形成正确的代码测试顺序,最终将生成的测试数据进行保存。
在本发明一实施例中,普通变量操作类型的JS代码的输入数据包括:变量名称、数据类型和数据值;普通变量操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值。
在本发明一实施例中,异步请求发送类型的JS代码的输入数据包括:请求Url、请求数据类型和请求数据值;异步请求发送类型的JS代码的预期输出数据包括:响应数据类型和响应数据值。
在本发明一实施例中,用户界面操作类型的JS代码的输入数据包括:HTML元素类型、标识符和事件名称;用户界面操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值。
步骤S102,获取用户指定的所述待生成的JS单元测试案例对应的JS单元测试框架,并确定所述JS单元测试框架对应的预设的语法模板。
在本发明实施例中,每种JS单元测试框架都有特有的语法结构和语义要素,本发明按照其语法结构和语义要素定义要素字段,并按照不同代码类型定义要素字段的组装顺序和填充位置,以数据形式存储在数据库,形成每种JS单元测试框架各自对应的语法模板。
步骤S103,根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例。
在本发明实施例中,生成JS单元测试案例则需要按照与JS单元测试框架对应的语法模板,声明输入数据和预期输出数据,执行JS代码,将实际执行结果(实际输出数据)与预期输出数据进行断言比较。
在本发明一具体实施例中,前端开发人员选择JS单元测试框架后,系统自动查找与该JS单元测试框架对应的语法模板,并把语法模板信息传递给案例生成器,案例生成器再判断测试数据中各JS代码的代码类型:若代码类型为普通变量操作,则匹配普通变量操作的语法模板;若为异步请求发送,则匹配异步请求发送的语法模板,若为用户界面操作,则匹配用户界面操作的语法模板,然后根据开发人员设置的测试数据中每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序来组装语法结构、语义要素,最终生成基于约定语法模板的JS单元测试案例文件。
由此可见,本发明通过生成多种JS单元测试框架各自对应的语法模板,用户仅需配置JS单元测试案例除除语法结构外的部分,即测试数据,进而根据用户选择的JS单元测试框架直接生成对应的标准化的前端JS单元测试案例,提高了前端JS单元测试案例的生成效率,也降低了开发人员的技术门槛。
图2是本发明实施例JS单元测试案例生成方法的第二流程图,如图2所示,在本发明一实施例中,本发明各JS单元测试框架对应的语法模板的具体生成流程包括步骤S201至步骤S203。
步骤S201,获取预设的多种JS单元测试框架各自的语法结构和语义要素。
步骤S202,根据所述语法结构和所述语义要素确定所述预设的多种JS单元测试框架各自对应的要素字段。
步骤S203,针对每种所述JS单元测试框架,根据每种所述JS代码的代码类型对应的要素字段的组装顺序和填充位置生成每种所述代码类型对应的语法模板,得到每种所述JS单元测试框架各自对应的语法模板。
在本发明实施例中,每种代码类型具有对应的要素字段的组装顺序和填充位置。本步骤针对每种JS单元测试框架,分别生成每种代码类型的语法模板,即一种JS单元测试框架对应的语法模板中包含每种代码类型的语法模板。
在本发明实施例中,代码类型包括:普通变量操作、异步请求发送和用户界面操作。每种JS单元测试框架对应的语法模板均包含:普通变量操作的语法模板、异步请求发送的语法模板和用户界面操作的语法模板。
在本发明可选实施例中,每种JS单元测试框架对应的语法模板还包括变量声明、变量赋值、模拟请求发送、响应数据赋值、DOM事件触发、JS代码/方法执行、实际响应数据与预期响应数据比较断言的语法结构以及各拆分要素的关联关系。
从以上实施例可以看出,本发明提供了一种基于约定语法模板自动生成前端JS单元测试的装置。通过解析前端JS单元测试框架的语法模板,根据这些语义信息的要素规则提取成用户界面呈现给前端开发人员。帮助前端开发人员仅需定义一次数据信息就能生成多种单元测试案例。降低前端开发人员学习JS单元测试框架和编写单元测试案例带来的成本,最大限度提高前端代码质量。其至少实现了以下有益效果:
1、根据业务逻辑和用户界面代码提供不同设计规则,减小案例编写难度;
2、标准化生成前端JS单元测试案例,自动提高案例编写质量;
3、可控的用户配置检查方案,杜绝案例要素遗漏或冗余。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种JS单元测试案例生成装置,可以用于实现上述实施例所描述的JS单元测试案例生成方法,如下面的实施例所述。由于JS单元测试案例生成装置解决问题的原理与JS单元测试案例生成方法相似,因此JS单元测试案例生成装置的实施例可以参见JS单元测试案例生成方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是本发明实施例JS单元测试案例生成装置的第一结构框图,如图3所示,在本发明一实施例中,本发明的JS单元测试案例生成装置包括:测试数据获取单元1、语法模板确定单元2和测试案例生成单元3。
测试数据获取单元1,用于获取用户编写的待生成的JS单元测试案例的测试数据,其中,所述测试数据包括:至少一种JS代码、每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序。
语法模板确定单元2,用于获取用户指定的所述待生成的JS单元测试案例对应的JS单元测试框架,并确定所述JS单元测试框架对应的预设的语法模板。
测试案例生成单元3,用于根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例。
图4是本发明实施例JS单元测试案例生成装置的第二结构框图,如图4所示,在本发明一实施例中,本发明的JS单元测试案例生成装置还包括:
框架数据获取单元4,用于获取预设的多种JS单元测试框架各自的语法结构和语义要素;
要素字段定义单元5,用于根据所述语法结构和所述语义要素确定所述预设的多种JS单元测试框架各自对应的要素字段;
语法模板生成单元6,用于针对每种所述JS单元测试框架,根据每种所述JS代码的代码类型对应的要素字段的组装顺序和填充位置生成每种所述代码类型对应的语法模板,得到每种所述JS单元测试框架各自对应的语法模板。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图5所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述JS单元测试案例生成方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种JS单元测试案例生成方法,其特征在于,包括:
获取用户编写的待生成的JS单元测试案例的测试数据,其中,所述测试数据包括:至少一种JS代码、每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序;
获取用户指定的所述待生成的JS单元测试案例对应的JS单元测试框架,并确定所述JS单元测试框架对应的预设的语法模板,其中,所述JS代码的代码类型包括:普通变量操作、异步请求发送和用户界面操作,JS单元测试框架对应的语法模板中包含每种所述代码类型的语法模板;JS单元测试框架对应的语法模板还包括变量声明、变量赋值、模拟请求发送、响应数据赋值、DOM事件触发、JS代码/方法执行、实际响应数据与预期响应数据比较断言的语法结构以及各拆分要素的关联关系;
根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例;
所述根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例,具体包括:
把所述语法模板传递给案例生成器,案例生成器判断所述测试数据中各JS代码的代码类型:若代码类型为普通变量操作,则匹配普通变量操作的语法模板;若代码类型为异步请求发送,则匹配异步请求发送的语法模板,若代码类型为用户界面操作,则匹配用户界面操作的语法模板,然后根据所述测试数据中每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序来组装语法结构、语义要素,最终生成基于约定语法模板的JS单元测试案例文件。
2.根据权利要求1所述的JS单元测试案例生成方法,其特征在于,还包括:
获取预设的多种JS单元测试框架各自的语法结构和语义要素;
根据所述语法结构和所述语义要素确定所述预设的多种JS单元测试框架各自对应的要素字段;
针对每种所述JS单元测试框架,根据每种所述JS代码的代码类型对应的要素字段的组装顺序和填充位置生成每种所述代码类型对应的语法模板,得到每种所述JS单元测试框架各自对应的语法模板。
3.根据权利要求1所述的JS单元测试案例生成方法,其特征在于,所述普通变量操作类型的JS代码的输入数据包括:变量名称、数据类型和数据值;所述普通变量操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值;
所述异步请求发送类型的JS代码的输入数据包括:请求Url、请求数据类型和请求数据值;所述异步请求发送类型的JS代码的预期输出数据包括:响应数据类型和响应数据值;
所述用户界面操作类型的JS代码的输入数据包括:HTML元素类型、标识符和事件名称;所述用户界面操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值。
4.一种JS单元测试案例生成装置,其特征在于,包括:
测试数据获取单元,用于获取用户编写的待生成的JS单元测试案例的测试数据,其中,所述测试数据包括:至少一种JS代码、每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序;
语法模板确定单元,用于获取用户指定的所述待生成的JS单元测试案例对应的JS单元测试框架,并确定所述JS单元测试框架对应的预设的语法模板,其中,所述JS代码的代码类型包括:普通变量操作、异步请求发送和用户界面操作,JS单元测试框架对应的语法模板中包含每种所述代码类型的语法模板;JS单元测试框架对应的语法模板还包括变量声明、变量赋值、模拟请求发送、响应数据赋值、DOM事件触发、JS代码/方法执行、实际响应数据与预期响应数据比较断言的语法结构以及各拆分要素的关联关系;
测试案例生成单元,用于根据所述语法模板以及所述测试数据生成所述待生成的JS单元测试案例;
所述测试案例生成单元,具体用于把所述语法模板传递给案例生成器,案例生成器判断所述测试数据中各JS代码的代码类型:若代码类型为普通变量操作,则匹配普通变量操作的语法模板;若代码类型为异步请求发送,则匹配异步请求发送的语法模板,若代码类型为用户界面操作,则匹配用户界面操作的语法模板,然后根据所述测试数据中每个JS代码各自对应的输入数据和预期输出数据以及各JS代码的顺序来组装语法结构、语义要素,最终生成基于约定语法模板的JS单元测试案例文件。
5.根据权利要求4所述的JS单元测试案例生成装置,其特征在于,还包括:
框架数据获取单元,用于获取预设的多种JS单元测试框架各自的语法结构和语义要素;
要素字段定义单元,用于根据所述语法结构和所述语义要素确定所述预设的多种JS单元测试框架各自对应的要素字段;
语法模板生成单元,用于针对每种所述JS单元测试框架,根据每种所述JS代码的代码类型对应的要素字段的组装顺序和填充位置生成每种所述代码类型对应的语法模板,得到每种所述JS单元测试框架各自对应的语法模板。
6.根据权利要求4所述的JS单元测试案例生成装置,其特征在于,所述普通变量操作类型的JS代码的输入数据包括:变量名称、数据类型和数据值;所述普通变量操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值;
所述异步请求发送类型的JS代码的输入数据包括:请求Url、请求数据类型和请求数据值;所述异步请求发送类型的JS代码的预期输出数据包括:响应数据类型和响应数据值;
所述用户界面操作类型的JS代码的输入数据包括:HTML元素类型、标识符和事件名称;所述用户界面操作类型的JS代码的预期输出数据包括:变量名称、数据类型和数据值。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至3任意一项所述的方法。
CN202010585036.6A 2020-06-24 2020-06-24 Js单元测试案例生成方法及装置 Active CN111767217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010585036.6A CN111767217B (zh) 2020-06-24 2020-06-24 Js单元测试案例生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010585036.6A CN111767217B (zh) 2020-06-24 2020-06-24 Js单元测试案例生成方法及装置

Publications (2)

Publication Number Publication Date
CN111767217A CN111767217A (zh) 2020-10-13
CN111767217B true CN111767217B (zh) 2024-02-02

Family

ID=72722169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010585036.6A Active CN111767217B (zh) 2020-06-24 2020-06-24 Js单元测试案例生成方法及装置

Country Status (1)

Country Link
CN (1) CN111767217B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487072B (zh) * 2020-11-24 2021-06-08 云汉芯城(上海)互联网科技股份有限公司 电子元器件的参数结构标准化方法、装置、系统及介质
CN113051163A (zh) * 2021-03-24 2021-06-29 中国工商银行股份有限公司 单元测试方法、装置、电子设备及存储介质
CN113157586B (zh) * 2021-04-30 2024-04-05 中国工商银行股份有限公司 一种金融市场单元测试案例生成方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407973A (zh) * 2014-11-25 2015-03-11 珠海格力电器股份有限公司 一种自动化单元测试的实现方法及装置
CN104750604A (zh) * 2013-12-30 2015-07-01 中国银联股份有限公司 浏览器兼容性测试案例的生成方法和装置
CN107133174A (zh) * 2017-05-04 2017-09-05 浙江路港互通信息技术有限公司 测试用例代码自动生成装置与方法
CN107256195A (zh) * 2017-06-08 2017-10-17 武汉斗鱼网络科技有限公司 网页前端测试方法及装置
CN108595342A (zh) * 2018-05-14 2018-09-28 杭州有赞科技有限公司 单元测试方法和装置
CN110287117A (zh) * 2019-06-27 2019-09-27 江苏满运软件科技有限公司 RESTful接口测试方法、系统、设备及存储介质
CN110297767A (zh) * 2019-06-03 2019-10-01 平安科技(深圳)有限公司 测试用例自动执行方法、装置、设备及存储介质
CN110908918A (zh) * 2019-11-29 2020-03-24 北京网聘咨询有限公司 针对多个相互依赖的node.js模块的单元测试方法及装置
CN110928772A (zh) * 2019-11-05 2020-03-27 深圳前海微众银行股份有限公司 一种测试方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750604A (zh) * 2013-12-30 2015-07-01 中国银联股份有限公司 浏览器兼容性测试案例的生成方法和装置
CN104407973A (zh) * 2014-11-25 2015-03-11 珠海格力电器股份有限公司 一种自动化单元测试的实现方法及装置
CN107133174A (zh) * 2017-05-04 2017-09-05 浙江路港互通信息技术有限公司 测试用例代码自动生成装置与方法
CN107256195A (zh) * 2017-06-08 2017-10-17 武汉斗鱼网络科技有限公司 网页前端测试方法及装置
CN108595342A (zh) * 2018-05-14 2018-09-28 杭州有赞科技有限公司 单元测试方法和装置
CN110297767A (zh) * 2019-06-03 2019-10-01 平安科技(深圳)有限公司 测试用例自动执行方法、装置、设备及存储介质
CN110287117A (zh) * 2019-06-27 2019-09-27 江苏满运软件科技有限公司 RESTful接口测试方法、系统、设备及存储介质
CN110928772A (zh) * 2019-11-05 2020-03-27 深圳前海微众银行股份有限公司 一种测试方法及装置
CN110908918A (zh) * 2019-11-29 2020-03-24 北京网聘咨询有限公司 针对多个相互依赖的node.js模块的单元测试方法及装置

Also Published As

Publication number Publication date
CN111767217A (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
CN111767217B (zh) Js单元测试案例生成方法及装置
US11099820B2 (en) Reconfiguring application software into microservice architecture
US9983984B2 (en) Automated modularization of graphical user interface test cases
CN110944048B (zh) 业务逻辑配置方法及装置
US11036728B2 (en) Natural language-aided conversational exploration of self-documenting application programming interfaces
CN110287109A (zh) 协议接口的测试方法、装置、计算机设备及其存储介质
CN103853650A (zh) 一种模糊测试的测试用例生成方法及装置
CN109460546A (zh) 表单生成方法、装置及电子设备
EP2511841A2 (en) System and method for generation of cim-based power system circuit models
CN111143228B (zh) 基于决策表法的测试代码生成方法及装置
US20130035908A1 (en) Identifying invariant candidates based on proofs
US8327311B1 (en) Generating a simulation model of a circuit design
US20090064092A1 (en) Visual programming language optimization
US8954307B1 (en) Chained programming language preprocessors for circuit simulation
CN117242457A (zh) 定位神经网络性能热点
CN114143235A (zh) Nfv自动测试方法、装置、设备及存储介质
GB2397905A (en) Method for automatically generating and ordering test scripts
CN111176624A (zh) 一种流式计算指标的生成方法及装置
CN117574822B (zh) 用于芯片的面向优化设计测试方法、计算机设备及介质
US9891894B1 (en) Code continuity preservation during automatic code generation
CN117077616B (zh) 一种基于结构导向的电路生成方法、装置、设备及介质
CN116341633B (zh) 一种模型部署方法、装置、设备及存储介质
US20240134763A1 (en) System testing method, electronic device, and computer program product
US20240004619A1 (en) Using indentation to trim output of a language synthesis model
EP4246909A1 (en) Method and apparatus for configuring node

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant