CN109344081A - 基于标签脚本实现自动化覆盖率统计的方法及装置 - Google Patents

基于标签脚本实现自动化覆盖率统计的方法及装置 Download PDF

Info

Publication number
CN109344081A
CN109344081A CN201811292201.8A CN201811292201A CN109344081A CN 109344081 A CN109344081 A CN 109344081A CN 201811292201 A CN201811292201 A CN 201811292201A CN 109344081 A CN109344081 A CN 109344081A
Authority
CN
China
Prior art keywords
interface
interface data
data
target
statistical form
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.)
Granted
Application number
CN201811292201.8A
Other languages
English (en)
Other versions
CN109344081B (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.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
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 Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN201811292201.8A priority Critical patent/CN109344081B/zh
Publication of CN109344081A publication Critical patent/CN109344081A/zh
Application granted granted Critical
Publication of CN109344081B publication Critical patent/CN109344081B/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/3676Test management for coverage analysis

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

本发明提供了一种基于标签脚本实现自动化覆盖率统计的方法及装置,包括:获取接口数据,并根据接口数据创建初始化接口统计表;获取带有配置文件的标签脚本,该标签脚本可适配多种框架和编程语言;遍历执行目标目录下的自动化代码,在执行自动化代码时,若调用目标目录中的目标接口数据,则在执行目标接口数据所对应的自动化用例后,调用标签脚本,以对初始化接口统计表中目标接口数据所对应的信息进行更新,得到更新后的接口统计表,进而确定覆盖率统计结果。本发明的标签脚本可适配多种框架和编程语言,那么该覆盖率统计的方法可对多种框架和编程语言都适用,通用性好,缓解了现有的覆盖率统计方法受语言和框架的限制,通用性不好的技术问题。

Description

基于标签脚本实现自动化覆盖率统计的方法及装置
技术领域
本发明涉及网络安全的技术领域,尤其是涉及一种基于标签脚本实现自动化覆盖率统计的方法及装置。
背景技术
获取和分析代码覆盖率是确保测试质量的重要手段。代码覆盖率描述的是代码被测试的比例和程度。简单地说,只是编写用例来测试代码,而不检查究竟哪些代码被测试过,哪些代码还没有被测试过,很容易形成测试的漏洞。代码覆盖率是一种白盒测试方法,因为它需要对代码本身进行理解和分析。通过测试代码覆盖率可以得知哪些代码未被覆盖,从而进一步补足测试用例。
目前,对于Java编写的代码,已经有很成熟的覆盖率测试方案,例如开源工具库EMMA和JoCoCo,然而对于JavaScript代码来说,上述的开源工具将不再适用,而JavaScript代码的的测试工具还不成熟。
综上,现有的覆盖率统计方法受语言和框架的限制,通用性不好。
发明内容
有鉴于此,本发明的目的在于提供一种基于标签脚本实现自动化覆盖率统计的方法及装置,以缓解现有的覆盖率统计方法受语言和框架的限制,通用性不好的技术问题。
第一方面,本发明实施例提供了一种基于标签脚本实现自动化覆盖率统计的方法,包括:
获取目标目录下的接口数据,并根据所述接口数据创建初始化接口统计表,其中,所述初始化接口统计表中包含:所述接口数据的编号,所述接口数据的接口API,所述接口数据是否已调用,所述接口数据的单次调用次数,所述接口数据的调用总数;
获取带有配置文件的标签脚本,其中,所述标签脚本可适配多种框架和编程语言;
遍历执行所述目标目录下的自动化代码,其中,当执行所述自动化代码时,若调用所述目标目录中的目标接口数据,则在执行所述目标接口数据所对应的自动化用例后,所述目标接口数据所对应的目标框架调用所述标签脚本,以使所述标签脚本对所述初始化接口统计表中所述目标接口数据所对应的信息进行更新,得到更新后的接口统计表,所述目标接口数据为所述目标目录下的任一接口数据;
基于所述更新后的接口统计表确定覆盖率统计结果。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,当第一次测试时,根据所述接口数据创建初始化接口统计表包括:
将所述接口数据的编号和接口API分别保存至所述初始化接口统计表中的所述接口数据所对应的接口数据的编号字段和接口数据的接口API字段;
将所述初始化接口统计表中接口数据是否已调用字段均设置为未调用;
将所述初始化接口统计表中接口数据的单次调用次数字段均设置为0;
将所述初始化接口统计表中所述接口数据的调用总数字段均设置为0。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,当不是第一次测试时,根据所述接口数据创建初始化接口统计表包括:
判断是否存在新增接口数据;
若存在,则将所述新增接口数据的编号和接口API保存至上一次测试之后得到的导出接口统计表中,其中,所述导出接口统计表为上一次测试后未调用的数据接口的信息统计表;
将所述导出接口统计表中接口数据是否已调用字段均设置为未调用;
将所述导出接口统计表中接口数据的单次调用次数字段均设置为0;
将所述导出接口统计表中所述新增接口数据所对应的接口数据的调用总数设置为0,其它接口数据所对应的接口数据的调用总数不变。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述配置文件中包含:目标框架和目标编程语言。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述标签脚本对所述初始化接口统计表中所述目标接口数据所对应的信息进行更新包括:
将所述目标接口数据所对应的是否已调用更新为已调用;
将所述目标接口数据所对应的单次调用次数更新为1;
将所述目标接口数据所对应的调用总数进行加1。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,基于所述更新后的接口统计表确定覆盖率统计结果包括:
统计所述更新后的接口统计表中是否已调用字段为已调用的接口数据条数;
根据所述已调用的接口数据条数和所述接口数据的总条数计算自动化覆盖率。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述方法还包括:
导出所述更新后的接口统计表中是否已调用字段为未调用的数据接口的信息,得到导出接口统计表,以将其用于下次测试。
第二方面,本发明实施例还提供了一种基于标签脚本实现自动化覆盖率统计的装置,包括:
获取和创建模块,用于获取目标目录下的接口数据,并根据所述接口数据创建初始化接口统计表,其中,所述初始化接口统计表中包含:所述接口数据的编号,所述接口数据的接口API,所述接口数据是否已调用,所述接口数据的单次调用次数,所述接口数据的调用总数;
获取模块,用于获取带有配置文件的标签脚本,其中,所述标签脚本可适配多种框架和编程语言;
遍历执行模块,用于遍历执行所述目标目录下的自动化代码,其中,当执行所述自动化代码时,若调用所述目标目录中的目标接口数据,则在执行所述目标接口数据所对应的自动化用例后,所述目标接口数据所对应的目标框架调用所述标签脚本,以使所述标签脚本对所述初始化接口统计表中所述目标接口数据所对应的信息进行更新,得到更新后的接口统计表,所述目标接口数据为所述目标目录下的任一接口数据;
确定模块,用于基于所述更新后的接口统计表确定覆盖率统计结果。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,当第一次测试时,所述获取和创建模块包括:
第一保存单元,用于将所述接口数据的编号和接口API分别保存至所述初始化接口统计表中的所述接口数据所对应的接口数据的编号字段和接口数据的接口API字段;
第一设置单元,用于将所述初始化接口统计表中接口数据是否已调用字段均设置为未调用;
第二设置单元,用于将所述初始化接口统计表中接口数据的单次调用次数字段均设置为0;
第三设置单元,用于将所述初始化接口统计表中所述接口数据的调用总数字段均设置为0。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,当不是第一次测试时,所述获取和创建模块包括:
判断单元,用于判断是否存在新增接口数据;
第二保存单元,若存在,则将所述新增接口数据的编号和接口API保存至上一次测试之后得到的导出接口统计表中,其中,所述导出接口统计表为上一次测试后未调用的数据接口的信息统计表;
第四设置单元,用于将所述导出接口统计表中接口数据是否已调用字段均设置为未调用;
第五设置单元,用于将所述导出接口统计表中接口数据的单次调用次数字段均设置为0;
第六设置单元,用于将所述导出接口统计表中所述新增接口数据所对应的接口数据的调用总数设置为0,其它接口数据所对应的接口数据的调用总数不变。
本发明实施例带来了以下有益效果:
在本实施例中,先获取目标目录下的接口数据,并根据接口数据创建初始化接口统计表;然后,获取带有配置文件的标签脚本,该标签脚本可适配多种框架和编程语言;进而,遍历执行目标目录下的自动化代码,在执行自动化代码时,若调用目标目录中的目标接口数据,则在执行目标接口数据所对应的自动化用例后,调用标签脚本,以使标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新,得到更新后的接口统计表;最后,根据更新后的接口统计表确定覆盖率统计结果。通过上述描述可知,在本实施例中,标签脚本可适配多种框架和编程语言,那么该覆盖率统计的方法可对多种框架和编程语言都适用,通用性好,缓解了现有的覆盖率统计方法受语言和框架的限制,通用性不好的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于标签脚本实现自动化覆盖率统计的方法的流程图;
图2为本发明实施例提供的第一次测试时根据接口数据创建初始化接口统计表的方法流程图;
图3为本发明实施例提供的不是第一次测试时根据接口数据创建初始化接口统计表的方法流程图;
图4为本发明实施例提供的标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新的方法流程图;
图5为本发明实施例提供的基于更新后的接口统计表确定覆盖率统计结果的方法流程图;
图6为本发明实施例提供的一种基于标签脚本实现自动化覆盖率统计的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于标签脚本实现自动化覆盖率统计的方法进行详细介绍。
实施例一:
根据本发明实施例,提供了一种基于标签脚本实现自动化覆盖率统计的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种基于标签脚本实现自动化覆盖率统计的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取目标目录下的接口数据,并根据接口数据创建初始化接口统计表,其中,初始化接口统计表中包含:接口数据的编号,接口数据的接口API,接口数据是否已调用,接口数据的单次调用次数,接口数据的调用总数;
在本发明实施例中,接口数据是指用代码写成的接口,在得到目标目录下的接口数据后,进一步根据接口数据创建初始化接口统计表,该初始化接口统计表中包含有接口数据的编号,接口数据的接口API,接口数据是否已调用,接口数据的单次调用次数,接口数据的调用总数。
创建初始化接口统计表一方面能够用于后续进行的覆盖率统计,另一方面也可查看每次批跑(即遍历执行自动化代码)后调用接口数据的情况,根据每次批跑调用接口数据的情况检查自动化代码的正确性。
下文中再对创建初始化接口统计表的过程进行详细介绍。
步骤S104,获取带有配置文件的标签脚本,其中,标签脚本可适配多种框架和编程语言;
在本发明实施例中,标签脚本是事先编写得到的能够适配多种框架和编程语言的代码,该标签脚本能够实现对被调用的目标接口数据的信息进行更新的作用。具体的,配置文件中包含有此次测试所用的框架和编程语言,是用户配置得到的,即配置文件中包含:目标框架和目标编程语言。比如,用户在配置文件中填写的参数为testng框架和java编程语言,那么,调用标签脚本时,就会执行testng框架和java编程语言相关的一段代码;而如果用户在配置文件中填写的参数为testng框架和JavaScript编程语言,那么,调用标签脚本时,就会执行testng框架和JavaScript编程语言相关的一段代码。
步骤S106,遍历执行目标目录下的自动化代码,其中,当执行自动化代码时,若调用目标目录中的目标接口数据,则在执行目标接口数据所对应的自动化用例后,目标接口数据所对应的目标框架调用标签脚本,以使标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新,得到更新后的接口统计表,目标接口数据为目标目录下的任一接口数据;
实际实现时,可将标签脚本复制在目标目录下,然后遍历执行目标目录下的自动化代码(通过执行命令语句实现),当执行所述自动化代码时,若调用目标目录中的目标接口数据,则在执行目标接口数据所对应的自动化用例后,目标接口数据所对应的目标框架就会调用标签脚本,使得标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新,得到更新后的接口统计表。
需要说明的是,目标框架(其中存储有接口数据)之所以会调用标签脚本是因为目标框架中写入了调用标签脚本的代码语言,这样每个目标接口数据跑完后都会自动调用标签脚本,使得标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新。
步骤S108,基于更新后的接口统计表确定覆盖率统计结果。
在本实施例中,先获取目标目录下的接口数据,并根据接口数据创建初始化接口统计表;然后,获取带有配置文件的标签脚本,该标签脚本可适配多种框架和编程语言;进而,遍历执行目标目录下的自动化代码,在执行自动化代码时,若调用目标目录中的目标接口数据,则在执行目标接口数据所对应的自动化用例后,调用标签脚本,以使标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新,得到更新后的接口统计表;最后,根据更新后的接口统计表确定覆盖率统计结果。通过上述描述可知,在本实施例中,标签脚本可适配多种框架和编程语言,那么该覆盖率统计的方法可对多种框架和编程语言都适用,通用性好,缓解了现有的覆盖率统计方法受语言和框架的限制,通用性不好的技术问题。
上述内容对本发明的基于标签脚本实现自动化覆盖率统计的方法进行了简要介绍,下面对其中涉及到的具体内容进行详细描述。
在本发明的一个可选实施方式中,参考图2,当第一次测试时,根据接口数据创建初始化接口统计表包括如下步骤:
步骤S201,将接口数据的编号和接口API分别保存至初始化接口统计表中的接口数据所对应的接口数据的编号字段和接口数据的接口API字段;
具体的,编号是对接口数据通过阿拉伯数字进行的顺序编码,接口API是指每个接口数据所对应的接口API。
步骤S202,将初始化接口统计表中接口数据是否已调用字段均设置为未调用;
步骤S203,将初始化接口统计表中接口数据的单次调用次数字段均设置为0;
步骤S204,将初始化接口统计表中接口数据的调用总数字段均设置为0。
在本发明的另一个可选实施方式中,参考图3,当不是第一次测试时,根据接口数据创建初始化接口统计表包括如下步骤:
步骤S301,判断是否存在新增接口数据;
若存在,则执行步骤S302至步骤S305,若不存在,则执行步骤S306至步骤S308;
步骤S302,将新增接口数据的编号和接口API保存至上一次测试之后得到的导出接口统计表中,其中,导出接口统计表为上一次测试后未调用的数据接口的信息统计表;
步骤S303,将导出接口统计表中接口数据是否已调用字段均设置为未调用;
步骤S304,将导出接口统计表中接口数据的单次调用次数字段均设置为0;
步骤S305,将导出接口统计表中新增接口数据所对应的接口数据的调用总数设置为0,其它接口数据所对应的接口数据的调用总数不变。
步骤S306,将上一次测试之后得到的导出接口统计表中的接口数据是否已调用字段均设置为未调用;
步骤S307,将上一次测试之后得到的导出接口统计表中的接口数据的单次调用次数字段均设置为0;
步骤S308,上一次测试之后得到的导出接口统计表中的接口数据的调用总数字段保持不变。
在本发明的一个可选实施方式中,参考图4,标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新包括如下步骤:
步骤S401,将目标接口数据所对应的是否已调用更新为已调用;
步骤S402,将目标接口数据所对应的单次调用次数更新为1;
步骤S403,将目标接口数据所对应的调用总数进行加1。
在本发明的一个可选实施方式中,参考图5,基于更新后的接口统计表确定覆盖率统计结果包括如下步骤:
步骤S501,统计更新后的接口统计表中是否已调用字段为已调用的接口数据条数;
步骤S502,根据已调用的接口数据条数和接口数据的总条数计算自动化覆盖率。
可选地,在计算得到自动化覆盖率之后,该方法还包括:
导出更新后的接口统计表中是否已调用字段为未调用的数据接口的信息,得到导出接口统计表,以将其用于下次测试。
本发明通过标签脚本和接口统计表的方式进行自动化覆盖率统计,过程简单,能准确确定未被测试(即未被调用)的接口数据和已被测试的接口数据,能适用于所有框架和编程语言,普适性好。
实施例二:
本发明实施例还提供了一种基于标签脚本实现自动化覆盖率统计的装置,该基于标签脚本实现自动化覆盖率统计的装置主要用于执行本发明实施例上述内容所提供的基于标签脚本实现自动化覆盖率统计的方法,以下对本发明实施例提供的基于标签脚本实现自动化覆盖率统计的装置做具体介绍。
图6是根据本发明实施例的一种基于标签脚本实现自动化覆盖率统计的装置的示意图,如图6所示,该基于标签脚本实现自动化覆盖率统计的装置主要包括获取和创建模块10,获取模块20,遍历执行模块30和确定模块40,其中:
获取和创建模块,用于获取目标目录下的接口数据,并根据接口数据创建初始化接口统计表,其中,初始化接口统计表中包含:接口数据的编号,接口数据的接口API,接口数据是否已调用,接口数据的单次调用次数,接口数据的调用总数;
获取模块,用于获取带有配置文件的标签脚本,其中,标签脚本可适配多种框架和编程语言;
遍历执行模块,用于遍历执行目标目录下的自动化代码,其中,当执行自动化代码时,若调用目标目录中的目标接口数据,则在执行目标接口数据所对应的自动化用例后,目标接口数据所对应的目标框架调用标签脚本,以使标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新,得到更新后的接口统计表,目标接口数据为目标目录下的任一接口数据;
确定模块,用于基于更新后的接口统计表确定覆盖率统计结果。
在本实施例中,先获取目标目录下的接口数据,并根据接口数据创建初始化接口统计表;然后,获取带有配置文件的标签脚本,该标签脚本可适配多种框架和编程语言;进而,遍历执行目标目录下的自动化代码,在执行自动化代码时,若调用目标目录中的目标接口数据,则在执行目标接口数据所对应的自动化用例后,调用标签脚本,以使标签脚本对初始化接口统计表中目标接口数据所对应的信息进行更新,得到更新后的接口统计表;最后,根据更新后的接口统计表确定覆盖率统计结果。通过上述描述可知,在本实施例中,标签脚本可适配多种框架和编程语言,那么该覆盖率统计的方法可对多种框架和编程语言都适用,通用性好,缓解了现有的覆盖率统计方法受语言和框架的限制,通用性不好的技术问题。
可选地,当第一次测试时,获取和创建模块包括:
第一保存单元,用于将接口数据的编号和接口API分别保存至初始化接口统计表中的接口数据所对应的接口数据的编号字段和接口数据的接口API字段;
第一设置单元,用于将初始化接口统计表中接口数据是否已调用字段均设置为未调用;
第二设置单元,用于将初始化接口统计表中接口数据的单次调用次数字段均设置为0;
第三设置单元,用于将初始化接口统计表中接口数据的调用总数字段均设置为0。
可选地,当不是第一次测试时,获取和创建模块包括:
判断单元,用于判断是否存在新增接口数据;
第二保存单元,若存在,则将新增接口数据的编号和接口API保存至上一次测试之后得到的导出接口统计表中,其中,导出接口统计表为上一次测试后未调用的数据接口的信息统计表;
第四设置单元,用于将导出接口统计表中接口数据是否已调用字段均设置为未调用;
第五设置单元,用于将导出接口统计表中接口数据的单次调用次数字段均设置为0;
第六设置单元,用于将导出接口统计表中新增接口数据所对应的接口数据的调用总数设置为0,其它接口数据所对应的接口数据的调用总数不变。
可选地,配置文件中包含:目标框架和目标编程语言。
可选地,遍历执行模块还用于:
将目标接口数据所对应的是否已调用更新为已调用;
将目标接口数据所对应的单次调用次数更新为1;
将目标接口数据所对应的调用总数进行加1。
可选地,确定模块还包括:
统计单元,用于统计更新后的接口统计表中是否已调用字段为已调用的接口数据条数;
计算单元,用于根据已调用的接口数据条数和接口数据的总条数计算自动化覆盖率。
可选地,确定模块还包括:
导出单元,用于导出更新后的接口统计表中是否已调用字段为未调用的数据接口的信息,得到导出接口统计表,以将其用于下次测试。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例所提供的基于标签脚本实现自动化覆盖率统计的方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种基于标签脚本实现自动化覆盖率统计的方法,其特征在于,包括:
获取目标目录下的接口数据,并根据所述接口数据创建初始化接口统计表,其中,所述初始化接口统计表中包含:所述接口数据的编号,所述接口数据的接口API,所述接口数据是否已调用,所述接口数据的单次调用次数,所述接口数据的调用总数;
获取带有配置文件的标签脚本,其中,所述标签脚本可适配多种框架和编程语言;
遍历执行所述目标目录下的自动化代码,其中,当执行所述自动化代码时,若调用所述目标目录中的目标接口数据,则在执行所述目标接口数据所对应的自动化用例后,所述目标接口数据所对应的目标框架调用所述标签脚本,以使所述标签脚本对所述初始化接口统计表中所述目标接口数据所对应的信息进行更新,得到更新后的接口统计表,所述目标接口数据为所述目标目录下的任一接口数据;
基于所述更新后的接口统计表确定覆盖率统计结果。
2.根据权利要求1所述的方法,其特征在于,当第一次测试时,根据所述接口数据创建初始化接口统计表包括:
将所述接口数据的编号和接口API分别保存至所述初始化接口统计表中的所述接口数据所对应的接口数据的编号字段和接口数据的接口API字段;
将所述初始化接口统计表中接口数据是否已调用字段均设置为未调用;
将所述初始化接口统计表中接口数据的单次调用次数字段均设置为0;
将所述初始化接口统计表中所述接口数据的调用总数字段均设置为0。
3.根据权利要求1所述的方法,其特征在于,当不是第一次测试时,根据所述接口数据创建初始化接口统计表包括:
判断是否存在新增接口数据;
若存在,则将所述新增接口数据的编号和接口API保存至上一次测试之后得到的导出接口统计表中,其中,所述导出接口统计表为上一次测试后未调用的数据接口的信息统计表;
将所述导出接口统计表中接口数据是否已调用字段均设置为未调用;
将所述导出接口统计表中接口数据的单次调用次数字段均设置为0;
将所述导出接口统计表中所述新增接口数据所对应的接口数据的调用总数设置为0,其它接口数据所对应的接口数据的调用总数不变。
4.根据权利要求1所述的方法,其特征在于,所述配置文件中包含:目标框架和目标编程语言。
5.根据权利要求1所述的方法,其特征在于,所述标签脚本对所述初始化接口统计表中所述目标接口数据所对应的信息进行更新包括:
将所述目标接口数据所对应的是否已调用更新为已调用;
将所述目标接口数据所对应的单次调用次数更新为1;
将所述目标接口数据所对应的调用总数进行加1。
6.根据权利要求1所述的方法,其特征在于,基于所述更新后的接口统计表确定覆盖率统计结果包括:
统计所述更新后的接口统计表中是否已调用字段为已调用的接口数据条数;
根据所述已调用的接口数据条数和所述接口数据的总条数计算自动化覆盖率。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
导出所述更新后的接口统计表中是否已调用字段为未调用的数据接口的信息,得到导出接口统计表,以将其用于下次测试。
8.一种基于标签脚本实现自动化覆盖率统计的装置,其特征在于,包括:
获取和创建模块,用于获取目标目录下的接口数据,并根据所述接口数据创建初始化接口统计表,其中,所述初始化接口统计表中包含:所述接口数据的编号,所述接口数据的接口API,所述接口数据是否已调用,所述接口数据的单次调用次数,所述接口数据的调用总数;
获取模块,用于获取带有配置文件的标签脚本,其中,所述标签脚本可适配多种框架和编程语言;
遍历执行模块,用于遍历执行所述目标目录下的自动化代码,其中,当执行所述自动化代码时,若调用所述目标目录中的目标接口数据,则在执行所述目标接口数据所对应的自动化用例后,所述目标接口数据所对应的目标框架调用所述标签脚本,以使所述标签脚本对所述初始化接口统计表中所述目标接口数据所对应的信息进行更新,得到更新后的接口统计表,所述目标接口数据为所述目标目录下的任一接口数据;
确定模块,用于基于所述更新后的接口统计表确定覆盖率统计结果。
9.根据权利要求8所述的装置,其特征在于,当第一次测试时,所述获取和创建模块包括:
第一保存单元,用于将所述接口数据的编号和接口API分别保存至所述初始化接口统计表中的所述接口数据所对应的接口数据的编号字段和接口数据的接口API字段;
第一设置单元,用于将所述初始化接口统计表中接口数据是否已调用字段均设置为未调用;
第二设置单元,用于将所述初始化接口统计表中接口数据的单次调用次数字段均设置为0;
第三设置单元,用于将所述初始化接口统计表中所述接口数据的调用总数字段均设置为0。
10.根据权利要求8所述的装置,其特征在于,当不是第一次测试时,所述获取和创建模块包括:
判断单元,用于判断是否存在新增接口数据;
第二保存单元,若存在,则将所述新增接口数据的编号和接口API保存至上一次测试之后得到的导出接口统计表中,其中,所述导出接口统计表为上一次测试后未调用的数据接口的信息统计表;
第四设置单元,用于将所述导出接口统计表中接口数据是否已调用字段均设置为未调用;
第五设置单元,用于将所述导出接口统计表中接口数据的单次调用次数字段均设置为0;
第六设置单元,用于将所述导出接口统计表中所述新增接口数据所对应的接口数据的调用总数设置为0,其它接口数据所对应的接口数据的调用总数不变。
CN201811292201.8A 2018-10-31 2018-10-31 基于标签脚本实现自动化覆盖率统计的方法及装置 Active CN109344081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811292201.8A CN109344081B (zh) 2018-10-31 2018-10-31 基于标签脚本实现自动化覆盖率统计的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811292201.8A CN109344081B (zh) 2018-10-31 2018-10-31 基于标签脚本实现自动化覆盖率统计的方法及装置

Publications (2)

Publication Number Publication Date
CN109344081A true CN109344081A (zh) 2019-02-15
CN109344081B CN109344081B (zh) 2022-03-11

Family

ID=65312961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811292201.8A Active CN109344081B (zh) 2018-10-31 2018-10-31 基于标签脚本实现自动化覆盖率统计的方法及装置

Country Status (1)

Country Link
CN (1) CN109344081B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127352A (zh) * 2021-04-20 2021-07-16 成都新潮传媒集团有限公司 一种自动化用例的统计方法、装置及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266570A (zh) * 2007-03-15 2008-09-17 中兴通讯股份有限公司 软件系统的测试方法及装置
US20100058295A1 (en) * 2008-09-02 2010-03-04 International Business Machines Corporation Dynamic Test Coverage
CN103246602A (zh) * 2012-02-14 2013-08-14 阿里巴巴集团控股有限公司 代码覆盖率确定方法及系统、代码覆盖检测方法及系统
CN104809071A (zh) * 2015-05-14 2015-07-29 北京润科通用技术有限公司 一种代码测试方法及装置
CN105589805A (zh) * 2015-12-16 2016-05-18 北京奇虎科技有限公司 一种代码覆盖率报告的生成方法和装置
US20160328314A1 (en) * 2015-05-06 2016-11-10 Hcl Technologies Limited System and method for providing code coverage
CN107807881A (zh) * 2017-09-28 2018-03-16 北京新能源汽车股份有限公司 代码覆盖率的测试方法、装置和计算机设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266570A (zh) * 2007-03-15 2008-09-17 中兴通讯股份有限公司 软件系统的测试方法及装置
US20100058295A1 (en) * 2008-09-02 2010-03-04 International Business Machines Corporation Dynamic Test Coverage
CN103246602A (zh) * 2012-02-14 2013-08-14 阿里巴巴集团控股有限公司 代码覆盖率确定方法及系统、代码覆盖检测方法及系统
US20160328314A1 (en) * 2015-05-06 2016-11-10 Hcl Technologies Limited System and method for providing code coverage
CN104809071A (zh) * 2015-05-14 2015-07-29 北京润科通用技术有限公司 一种代码测试方法及装置
CN105589805A (zh) * 2015-12-16 2016-05-18 北京奇虎科技有限公司 一种代码覆盖率报告的生成方法和装置
CN107807881A (zh) * 2017-09-28 2018-03-16 北京新能源汽车股份有限公司 代码覆盖率的测试方法、装置和计算机设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127352A (zh) * 2021-04-20 2021-07-16 成都新潮传媒集团有限公司 一种自动化用例的统计方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN109344081B (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
CN107844424B (zh) 基于模型的测试系统及方法
CN105260315B (zh) 一种在嵌入式系统进程中调试日志的方法
CN101521899B (zh) 用于移动应用程序的机上测试系统和方法
CN101227345B (zh) 基于应用程序接口的自动测试方法
CN102938800B (zh) 一种无线通信质量自动测试系统以及方法
CN107368408A (zh) 一种面向接口的软件故障注入自动化测试方法
CN106708718B (zh) 服务框架接口测试方法与装置
CN105446868B (zh) 系统兼容性测试方法、测试用例管理方法及相关装置
CN105094783A (zh) 安卓应用稳定性测试的方法及装置
CN103744787A (zh) 一种手机自动化测试方法
CN104778118B (zh) 自动化测试技术的改进方法
CN108897724A (zh) 功能完成进度确定方法及装置
CN105095088A (zh) 基于uiautomator测试框架的计算器自动化测试方法和测试系统
CN108874672A (zh) 应用程序异常定位方法、装置、设备及存储介质
CN109460367A (zh) 基于Jmeter可持续集成自动化性能测试的方法
CN110347407A (zh) 一种获取内存占用量的方法、装置、计算机设备及介质
CN106021071A (zh) 一种监控sql运行过程的方法和系统
CN109753286A (zh) 一种基于功能标签的代码方法统计其调用次数的方法
CN104572428A (zh) 基于windows操作系统下的复杂控件测试方法
CN106776346A (zh) Ccmts设备的测试方法和装置
CN105279092A (zh) 一种软件测试的方法及装置
CN109344081A (zh) 基于标签脚本实现自动化覆盖率统计的方法及装置
CN102340429A (zh) 一种互联网协议还原自动化检测方法
CN109542754A (zh) 移动设备的接入方法、应用程序的调试方法、装置和系统
CN105760300B (zh) 一种stk/utk业务的自动化测试方法及测试系统

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