CN107102941B - 一种测试用例的生成方法及装置 - Google Patents

一种测试用例的生成方法及装置 Download PDF

Info

Publication number
CN107102941B
CN107102941B CN201710204024.2A CN201710204024A CN107102941B CN 107102941 B CN107102941 B CN 107102941B CN 201710204024 A CN201710204024 A CN 201710204024A CN 107102941 B CN107102941 B CN 107102941B
Authority
CN
China
Prior art keywords
character string
generating
test case
string set
target
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
CN201710204024.2A
Other languages
English (en)
Other versions
CN107102941A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710204024.2A priority Critical patent/CN107102941B/zh
Publication of CN107102941A publication Critical patent/CN107102941A/zh
Application granted granted Critical
Publication of CN107102941B publication Critical patent/CN107102941B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Abstract

本发明公开了一种测试用例的生成方法及装置,该测试用例的生成方法包括:获取网络请求信息;基于所述网络请求信息创建请求数据库,所述请求数据库包括参数标识集、以及所述参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,所述参数标识集包括至少一个参数标识;获取每一参数标识对应的属性信息;根据所述属性信息和请求数据库中的字符串集生成测试用例。上述测试用例的生成方法能利用历史网络数据自动生成测试用例,方法简单,生成效率高,且生成的测试用例的覆盖范围广。

Description

一种测试用例的生成方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试用例的生成方法及装置。
背景技术
大数据集群是指成千上万的计算机通过网络连接所组成的、能够共同完成数据存储、数据计算等任务的计算机集群。大数据集群所承载的数据量巨大,业务复杂度也很高,因此,为了正常且稳定的运行,大数据集群必须具有高稳定性。
为了确保大数据集群的高稳定性,需要对大数据集群的生产环境进行测试,在相关的测试方法中,一般都是构建出与大数据集群的生产环境类似的测试场景(也即测试用例),在该测试场景下进行测试。目前,这些测试场景通常是人工构建的,这种构建方式主要是参考历史业务数据来实现,若历史业务覆盖不全,一些小业务重视度不够,则容易导致测试场景构建不完整、不全面的问题,并且,人工构建的过程繁琐且耗时较长,构建效率较低。
发明内容
本发明的目的在于提供一种测试用例的生成方法及装置,以解决现有测试用例构建不完整、构建效率低的技术问题。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种测试用例的生成方法,包括:
获取网络请求信息;
基于所述网络请求信息创建请求数据库,所述请求数据库包括参数标识集、以及所述参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,所述参数标识集包括至少一个参数标识;
获取每一参数标识对应的属性信息;
根据所述属性信息和请求数据库中的字符串集生成测试用例。
为解决上述技术问题,本发明实施例还提供以下技术方案:
一种测试用例的生成装置,包括:
第一获取模块,用于获取网络请求信息;
创建模块,用于基于所述网络请求信息创建请求数据库,所述请求数据库包括参数标识集、以及所述参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,所述参数标识集包括至少一个参数标识;
第二获取模块,用于获取每一参数标识对应的属性信息;
生成模块,用于根据所述属性信息和请求数据库中的字符串集生成测试用例。
本发明所述的测试用例的生成方法及装置,通过获取网络请求信息,并基于该网络请求信息创建请求信息库,该请求信息库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识,之后,获取每一参数标识的属性信息,并根据该属性信息和请求信息库中的字符串集生成测试用例,从而能利用历史网络数据自动生成测试用例,方法简单,生成效率高,且生成的测试用例的覆盖范围广。
附图说明
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
图1为本发明实施例提供的测试用例的生成方法的流程示意图;
图2a为本发明实施例提供的测试用例的生成方法的流程示意图;
图2b为本发明实施例提供的步骤S206的流程示意图;
图2c为本发明实施例提供的填入后正交表的示意图;
图2d为本发明实施例提供的目标空白表的处理过程示意图;
图3a本发明实施例提供的测试用例的生成装置的结构示意图;
图3b本发明实施例提供的另一测试用例的生成装置的结构示意图;
图4本发明实施例提供的网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种测试用例的生成方法和装置。以下分别进行详细说明。需说明的是,以下实施例的编号并不作为对实施例优选顺序的限定。
第一实施例
本实施例将从测试用例的生成装置的角度进行描述,该测试用例的生成装置具体可以作为独立的实体来实现,也可以集成在其他的设备,比如网络设备中来实现,该网络设备具体可以包括手机、笔记本电脑、或个人计算机(PC,Personal Computer)、服务器等设备。
一种测试用例的生成方法,包括:获取网络请求信息,并基于该网络请求信息创建请求信息库,该请求信息库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识,之后,获取每一参数标识的属性信息,并根据该属性信息和请求信息库中的字符串集生成测试用例。
如图1所示,该测试用例的生成方法的具体流程可以如下:
S101、获取网络请求信息。
本实施例中,该网络请求信息主要指客户端发送给服务器的请求信息,其可以是从链路层获取的,也可以是通过其他方式,比如从系统日志中获取的,具体可以根据实际需求而定。当为从链路层获取的时,该网络请求信息表现为原始RAW数据包的形式,每一数据包是TCP/IP(Transmission Control Protocol/Internet Protocol,网络通讯协议)传输中的数据单位,其可以包括包头和包体,通常,该包体中包含实质的请求内容,该包头是对请求内容进行封装后形成的数据。具体可以通过一些数据包抓取工具,比如PacketCapture library(数据包捕获函数库)来获取。
S102、基于该网络请求信息创建请求数据库,该请求数据库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识。
本实施例中,该请求数据库中存储的数据主要用于测试用例的生成。该参数标识可以是请求内容中所包含的关键参数的名称,每一关键参数都是一个变量,每一字符串集是该关键参数所取的值集,每一字符串可以包括下划线、数字和/或字母。
例如,上述步骤S102具体可以包括:
1-1、对该网络请求信息进行解析。
本实施例中,需要根据请求内容的打包方式选择合适的解析协议进行解析,以得到该请求内容。通常,数据的打包方式包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据协议),具体的,可以去掉数据包的IP(Internet Protocol,网络之间互联的协议)包头以获取协议号(protocols number),根据协议号来确定打包方式,比如,协议号为6时,打包方式是TCP,协议号为17时,打包方式是UDP,不同的打包方式对应不同的解析协议。
1-2、从解析后的网络请求信息中提取出预设的参数标识集中每一参数标识对应的所有字符串。
本实施例中,该参数标识集通常是用户预先设置好的,比如可以提前根据待测系统的业务类型进行设置。具体的,可以获取某一业务类型的历史请求内容,从历史请求内容中提取出关键参数的名称添入该参数标识集中,当然,每一请求内容包括很多参数(变量),这些参数有些是对待测系统的性能测试有影响的关键参数,有些则是通用或无关的参数(比如extend延伸和remark备注),需要人工进行筛选,通常,同一业务类型的不同请求内容具有相同的关键参数。
当设置并存储好这些关键参数的名称(也即参数标识集)后,后续可以从该请求内容中提取出该关键参数对应的值,也即字符串,一般来说,每一请求内容中每个关键参数都赋予有至少一个值。
1-3、建立每一参数标识与对应的所有字符串的关联关系。
本实施例中,该关联关系可以包括参数标识、字符串、以及每一参数标识与字符串的对应关系。
1-4、将该关联关系存储在请求数据库中,以创建该请求数据库。
本实施例中,在存储时,每一参数标识对应的所有字符串可以是按序排列的,比如可以按照各自的提取顺序进行排序,提取时间越早,排位越靠前。
需要说明的是,该网络请求信息可以是一段时间内获取的请求内容的数据包,比如十天或一个月,此时,不同的数据包提取出的同一关键参数的值可能相同,为减少冗余,在创建请求数据库的过程中,需要去掉重复的值,也即需要舍弃掉重复的字符串。该请求数据库的创建操作可以是实时进行,比如每次获取到数据包就对请求数据库进行更新和完善,也可以是集中进行,比如一次性对这段时间内获取的所有数据包进行处理,并用处理后的数据创建请求数据库,具体可以根据实际需求而定。
S103、获取每一参数标识对应的属性信息。
本实施例中,该属性信息是根据每一参数对待测系统的性能测试的影响程度进行设定的,其可以包括强相关和强无关,通常,影响较大的参数设定为强相关参数,影响较小的参数设定为强无关参数。用户需要预先在该请求数据库或其他指定区域建立每一参数标识与属性信息的关联关系,从而后续可以根据该关联关系找到该参数标识对应的参数的属性信息。
S104、根据该属性信息和请求数据库中的字符串集生成测试用例。
本实施例中,该测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求,不同的待测系统(软件),其测试用例是不同的。
例如,上述步骤S104具体可以包括:
2-1、根据该属性信息对该请求数据库中的字符串集进行分类,得到第一字符串集和第二字符串集。
例如,上述步骤2-1具体可以包括:
将该属性信息指示强相关的参数标识对应的字符串集确定为第一字符串集;
将该属性信息指示强无关的参数标识对应的字符串集确定为第二字符串集。
本实施例中,由于强相关参数对待测系统性能测试的影响远大于强无关参数,故在构建测试用例时,可以有侧重性的对强相关参数和强无关参数进行处理,使强相关参数的值集(也即第一字符串集)被利用的次数多于强无关参数的值集(也即第二字符串集)被利用的次数,确保强相关参数的值集得到充分利用。
2-2、利用预设规则对该第一字符串集进行处理,得到多条组合信息,每一组合信息包括至少一个字符串。
本实施例中,该预设规则可以根据实际需求而定,为使强相关参数的值集在得到充分利用的同时,又能避免后续生成的测试用例数目过多,给测试软件带来沉重负担,该预设规则可以为正交测试法。该正交测试法是依据Galois理论,从大量的测试用例中挑选适量的、有代表性的点,从而合理地安排测试的一种科学实验设计方法。
例如,当该预设规则为正交测试法时,上述步骤2-2具体可以包括:
2-2-1、根据该第一字符串集的数量、以及每一个第一字符串集中字符串的数量从预设的正交表库中确定目标正交表。
本实施例中,该正交表库中存储有一系列规格化的正交表格Ln(ji),其中,L为正交表的符号,n为行数,j为水平数,i为因素数,n、j和i均属于正整数。本实施例中,i取决于第一字符串集的数量(也即强相关的参数标识数),j取决于该正交表的选择主要取决于因素个数和每一因素的水平数,在本实施例中,该因素是强相关参数(也即第一字符串集),该因素的水平是该强相关参数对应的值(也即第一字符串集中的字符串)。
2-2-2、建立该目标正交表中列与第一字符串集的对应关系。
本实施例中,可以按一定顺序将强相关参数和目标正交表的列进行关联,该关联顺序可以是用户预先设定的,也可以是随机的。
2-2-3、根据该对应关系、目标正交表以及第一字符串集生成多条组合信息。
例如,上述步骤2-2-3具体可以包括:
根据该对应关系将每一个第一字符串集中的字符串填入该目标正交表中,得到填入后正交表;
将该填入后正交表中每一行包含的所有字符串确定为组合信息,每一行对应一条组合信息。
本实施例中,当正交表的列与强相关参数建立好对应关系后,每一强相关参数的值(字符串)在列中的排列位置基本也定了,根据各自的排列位置将每一值填充在该目标正交表中的单元格里,从而使每一单元格里都有一个值,并且,每个值在表中出现的次数和其他值在表中出现的次数相等,每一列中的所有值都属于同一强相关参数,每一行(也即组合信息)的每个值都属于不同的强相关参数。采用正交测试法对不同强相关参数的值进行交叉组合,不仅能使每一强相关参数的值被充分利用,而且得到的每个组合都具有一定代表性,能最大程度的减少组合次数,避免冗余。
2-3、根据该多条组合信息、以及第二字符串集生成测试用例。
本实施例中,由于强无关参数对待测系统的性能测试的影响较小,在构建测试用例时,每一强无关参数的值只需被利用一次即可,无需交叉组合,从而能在不影响最终测试结果的情况下,尽量减少测试用例的数量。
例如,上述步骤2-3具体可以包括:
2-3-1、根据该组合信息的条数、第二字符串集的数量、以及每一个第二字符串集中字符串的数量确定目标空白表;
2-3-3、将该多条组合信息作为单独列,将每一个第二字符串集作为单独列,填入该目标空白表中,得到一级处理表;
2-3-3、基于该一级处理表生成测试用例。
本实施例中,该目标空白表可以是新建的,也可以是从空白表库中选择的。在该目标空白表中,每一组合信息、以及第二字符串集中的每一字符串都作为一个最小的元素填充到目标空白表的单元格中,且每个元素只出现一次。通常,该目标空白表的行数取决于组合信息的条数(也即该填入后正交表的行数)与第二字符串集中字符串的数量之间的最大值,其列数取决于第二字符串集(也即强无关参数)的数量。
例如,上述步骤2-3-3具体可以包括:
根据该一级处理表中空白单元格所在的列对该空白单元格进行填充,以对该一级处理表进行处理,得到二级处理表;
将该二级处理表中每一行包含的所有字符串确定为目标字符串组,每一行对应一个目标字符串组;
基于该目标字符串组生成测试用例。
本实施例中,由于每一第二字符串集中字符串的数量可能不一样,故该一级处理表中难免会存在未填充的空白单元格,此时,可以从该空白单元格所在的列中任意获取一个元素对其进行填充,使每一行包含的字符串总数相等,确保每一目标字符串组包括所有关键参数的值,且任意两个目标字符串组包括的值不完全一样。此时,可以直接对每一目标字符串组进行打包,得到基本用例,之后,将这些基本用例作为全部的测试用例对待测系统进行测试,基本可以满足待测系统各个性能的检测。
此外,由于一些特殊的关键参数,比如值为数字类的关键参数,对接口的兼容程度要求较高,若不针对这类型的参数额外生成一些补充用例,添加到测试用例中,则难以准确检测出待测系统的接口的兼容能力,为此,上述步骤“基于该目标字符串组生成测试用例”具体可以包括:
获取预设参数标识对应的预设字符串集,该预设字符串集包括至少一个预设字符串;
利用该预设字符串替换该目标字符串组中预设参数标识对应的字符串,得到补充字符串组;
根据该目标字符串组和补充字符串组生成测试用例。
本实施例中,该预设参数标识和预设字符串集是用户预先设置的,该预设参数标识主要是值为数字类的关键参数的名称,该预设字符串主要为数字串。通过将目标字符串组中指定参数的值进行变异,之后将变异后的字符串组(也即补充字符串组)进行打包,可以生成针对待测系统某一性能(数字兼容能力)的补充用例,提高测试的覆盖能力。
由上述可知,本实施例提供的测试用例的生成方法,通过获取网络请求信息,并基于该网络请求信息创建请求信息库,该请求信息库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识,之后,获取每一参数标识的属性信息,并根据该属性信息和请求信息库中的字符串集生成测试用例,从而能利用历史网络数据自动生成测试用例,无需人工手动生成,方法简单,生成效率高,且生成的测试用例的覆盖范围广。
第二实施例
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以测试用例的生成装置集成在网络设备中,该待测系统为费用系统,为例进行详细说明。
如图2a所示,一种测试用例的生成方法,具体流程可以如下:
S201、网络设备获取网络请求信息。
譬如,该网络请求信息可以是指定时间段内,比如一个月,客户端发送给费用系统服务器的请求信息,其可以是从链路层获取的原始RAW数据包,具体可以通过一些数据包抓取工具,比如Packet Capture library(数据包捕获函数库)来获取。
S202、网络设备对该网络请求信息进行解析,并从解析后的网络请求信息中提取出预设的参数标识集中每一参数标识对应的所有字符串。
譬如,针对于费用系统,该参数标识集可以包括Channel渠道、Cmd业务命令字、UIN业务号码、Ae、Bf等关键参数的名称,其中,e、f是正整数。当通过合适的解析协议对网络请求信息进行解析,以得到请求内容后,可以进一步从该请求内容中提取出每一参数标识对应的字符串(值),比如,Channel对应的字符串可以包括bank银行、cash现钞、Alipay支付宝等支付渠道,Cmd对应的字符串可以包括pay支付、transfer转账、save存款等业务活动,UIN对应的字符串可以包括12345、22221、33333等数字串,等等。
S203、网络设备建立每一参数标识与对应的所有字符串的关联关系,并将该关联关系存储在请求数据库。
譬如,可以将channel、cmd、UIN、Ae、Bf等这些关键参数的名字作为索引字段,通过表格的形式,分别将channel与其值集{bank、cash、Alipay…},cmd与其值集{pay、transfer、save、draw…},UIN与其值集{12345、22221、33333…},Ae与其值集{xx}、Bf与其值集{xx}之间进行关联,如下表所示,之后将该关联关系存储在请求数据库中。
channel bank、cash、Alipay…
cmd pay、transfer、save、draw…
UIN 12345、22221、33333…
A<sub>e</sub> xx、xx、xx、xx…
B<sub>f</sub> xx、xx、xx、xx…
S204、网络设备获取测试用例的生成指令。
譬如,该生成指令可以是网络设备自动触发生成的,比如到达指定时间自动生成,也可以是用户点击某个按钮时人工触发生成的,具体可以根据实际需求而定。
S205、网络设备根据该生成指令获取每一参数标识对应的属性信息,并将该请求数据库中,该属性信息指示强相关的参数标识对应的字符串集确定为第一字符串集,该属性信息指示强无关的参数标识对应的字符串集确定为第二字符串集。
譬如,该属性信息可以包括强相关related和强无关nonrelated,用户可以根据每一参数对待测系统的性能测试的影响程度来设定,比如,Channel、Cmd和Ae的属性信息可以设定为related,UIN和Bf的属性信息可以设定为nonrelated,之后,可以通过表格的形式,将channel、cmd、UIN、Ae、Bf作为索引字段,将每个索引字段对应的属性信息存储在表格中,从而建立属性信息与参数标识的关联关系,此时,该第一字符串集包括{bank、cash、Alipay…}、{pay、transfer、save、draw…},该第二字符串集包括{12345、22221、33333…}。
S206、网络设备利用预设规则对该第一字符串集进行处理,得到多条组合信息,每一组合信息包括至少一个字符串。
例如,该预设规则可以为正交测试法,此时,请参阅图2b,上述步骤S206具体可以包括:
S2061、网络设备根据该第一字符串集的数量、以及每一个第一字符串集中字符串的数量从预设的正交表库中确定目标正交表。
譬如,若第一字符串集的数量为5,且其中四个第一字符串集中字符串的数量为2,剩余一个第一字符串集中字符串的数量为4,则选择的目标正交表为L8(41×24)。
S2062、网络设备建立该目标正交表中列与第一字符串集的对应关系,并根据该对应关系将每一个第一字符串集中的字符串填入该目标正交表中,得到填入后正交表。
譬如,可以将channel、Cmd对应的第一字符串集依次与目标正交表的第一列、第二列对应,从而值集{bank、cash、Alipay…}和{pay、transfer、save、draw…}中的值在目标正交表中的位置基本也定了,具体请参见图2c,其中k为大于0的正整数。
S2063、网络设备将该填入后正交表中每一行包含的所有字符串确定为组合信息,每一行对应一条组合信息。
譬如,可以将图2c中每一行包含的所有字符串确定为组合信息Ct,t∈(1,2…k),则可以得到组合信息{C1、C2、C3…Ck},其中,C1为“bank、pay…”,C2为“bank、transfer…”
S207、网络设备根据该组合信息的条数、第二字符串集的数量、以及每一个第二字符串集中字符串的数量确定目标空白表。
譬如,该目标空白表可以是新建的,若该组合信息的条数为k,第二字符串集的数量为m,且该m个第二字符串集中字符串的数量的最大值为q,则该目标空白表的行数为q+1,列数为m+2。
S208、网络设备将该多条组合信息作为单独列,将每一个第二字符串集作为单独列,填入该目标空白表中,得到一级处理表。
譬如,可以将{C1、C2、C3…Ck}、UIN对应的值集{12345、22221、33333…}、Bf对应的值集{xx}作为列,添入目标空白表中,具体请参见图2d。
S209、网络设备根据该一级处理表中空白单元格所在的列对该空白单元格进行填充,以对该一级处理表进行处理,得到二级处理表。
譬如,在图2d中,可以将一级处理表中第二列的空白单元格用12345进行填充,得到二级处理表。
S210、网络设备将该二级处理表中每一行包含的所有字符串确定为目标字符串组,每一行对应一个目标字符串组。
譬如,从图2c和图2d可知,图2d中第一行对应的目标字符串组为“bank、pay、12345…”,第二行对应的目标字符串组为“bank、transfer、22221…”。
S211、网络设备获取预设参数标识对应的预设字符串集,该预设字符串集包括至少一个预设字符串,并利用该预设字符串替换该目标字符串组中预设参数标识对应的字符串,得到补充字符串组。
譬如,该预设参数标识可以为UIN,该预设字符串集可以为{0,1,0.01,-9223372036854775807,9223372036854775808},此时,可以对任意一个目标字符串组进行5次替换,或者对任意5个目标字符串组进行单次替换,得到5个补充字符串组,比如,若对“bank、pay、12345…”进行5次替换,则得到的补偿字符串组包括{“bank、pay、0…”、“bank、pay、1…”、“bank、pay、-9223372036854775807…”、“bank、pay、9223372036854775807…”}。
S212、网络设备根据该目标字符串组和补充字符串组生成测试用例。
譬如,可以利用该费用系统所用的协议对这些目标字符串组和补充字符串组进行打包,得到测试用例。
由上述可知,本实施例提供的测试用例的生成方法,其中网络设备可以获取网络请求信息,之后,对该网络请求信息进行解析,并从解析后的网络请求信息中提取出预设的参数标识集中每一参数标识对应的所有字符串,接着,建立每一参数标识与对应的所有字符串的关联关系,并将该关联关系存储在请求数据库中,从而完成测试用例的相关数据的存储操作,之后,获取测试用例的生成指令,根据该生成指令获取每一参数标识对应的属性信息,并将该请求数据库中,该属性信息指示强相关的参数标识对应的字符串集确定为第一字符串集,该属性信息指示强无关的参数标识对应的字符串集确定为第二字符串集,之后,利用预设规则对该第一字符串集进行处理,得到多条组合信息,每一组合信息包括至少一个字符串,并根据该第一字符串集的数量、以及每一个第一字符串集中字符串的数量从预设的正交表库中确定目标正交表,接着,建立该目标正交表中列与第一字符串集的对应关系,并根据该对应关系将每一个第一字符串集中的字符串填入该目标正交表中,得到填入后正交表,接着,将该填入后正交表中每一行包含的所有字符串确定为组合信息,每一行对应一条组合信息,并根据该组合信息的条数、第二字符串集的数量、以及每一个第二字符串集中字符串的数量确定目标空白表,之后,将该多条组合信息作为单独列,将每一个第二字符串集作为单独列,填入该目标空白表中,得到一级处理表,并根据该一级处理表中空白单元格所在的列对该空白单元格进行填充,以对该一级处理表进行处理,得到二级处理表,之后,将该二级处理表中每一行包含的所有字符串确定为目标字符串组,每一行对应一个目标字符串组,接着,获取预设参数标识对应的预设字符串集,该预设字符串集包括至少一个预设字符串,并利用该预设字符串替换该目标字符串组中预设参数标识对应的字符串,得到补充字符串组,最后,根据该目标字符串组和补充字符串组生成测试用例,从而能利用历史网络数据自动生成测试用例,无需人工手动生成,方法简单,生成效率高,且生成的测试用例的覆盖范围广。
第三实施例
根据实施例一和实施例二所描述的方法,本实施例将从测试用例的生成装置的角度进一步进行描述,该测试用例的生成装置可以集成在网络设备中。
请参阅图3a,图3a具体描述了本发明第三实施例提供的测试用例的生成装置,其可以包括:第一获取模块10、创建模块20、第二获取模块30和生成模块40,其中:
(1)第一获取模块10
第一获取模块10,用于获取网络请求信息。
本实施例中,该网络请求信息主要指客户端发送给服务器的请求信息,其可以是从链路层获取的,也可以是通过其他方式,比如从系统日志中获取的,具体可以根据实际需求而定。当为从链路层获取的时,该网络请求信息表现为原始RAW数据包的形式,每一数据包是TCP/IP(Transmission Control Protocol/Internet Protocol,网络通讯协议)传输中的数据单位,其可以包括包头和包体,通常,该包体中包含实质的请求内容,该包头是对请求内容进行封装后形成的数据。具体的,第一获取模块10可以通过一些数据包抓取工具,比如Packet Capture library(数据包捕获函数库)来获取。
(2)创建模块20
创建模块20,用于基于该网络请求信息创建请求数据库,该请求数据库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识。
本实施例中,该请求数据库中存储的数据主要用于测试用例的生成。该参数标识可以是请求内容中所包含的关键参数的名称,每一关键参数都是一个变量,每一字符串集是该关键参数所取的值集,每一字符串可以包括下划线、数字和/或字母。
例如,该创建模块20具体可以用于:
1-1、对该网络请求信息进行解析。
本实施例中,创建模块20需要根据请求内容的打包方式选择合适的解析协议进行解析,以得到该请求内容。通常,数据的打包方式包括TCP(Transmission ControlProtocol,传输控制协议)和UDP(User Data Protocol,用户数据协议),具体的,可以去掉数据包的IP(Internet Protocol,网络之间互联的协议)包头以获取协议号(protocolsnumber),根据协议号来确定打包方式,比如,协议号为6时,打包方式是TCP,协议号为17时,打包方式是UDP,不同的打包方式对应不同的解析协议。
1-2、从解析后的网络请求信息中提取出预设的参数标识集中每一参数标识对应的所有字符串。
本实施例中,该参数标识集通常是用户预先设置好的,比如可以提前根据待测系统的业务类型进行设置。具体的,可以获取某一业务类型的历史请求内容,从历史请求内容中提取出关键参数的名称添入该参数标识集中,当然,每一请求内容包括很多参数(变量),这些参数有些是对待测系统的性能测试有影响的关键参数,有些则是通用或无关的参数(比如extend延伸和remark备注),需要人工进行筛选,通常,同一业务类型的不同请求内容具有相同的关键参数。
当设置并存储好这些关键参数的名称(也即参数标识集)后,后续创建模块20可以从该请求内容中提取出该关键参数对应的值,也即字符串,一般来说,每一请求内容中每个关键参数都赋予有至少一个值。
1-3、建立每一参数标识与对应的所有字符串的关联关系。
本实施例中,该关联关系可以包括参数标识、字符串、以及每一参数标识与字符串的对应关系。
1-4、将该关联关系存储在请求数据库中,以创建该请求数据库。
本实施例中,创建模块20在存储时,每一参数标识对应的所有字符串可以是按序排列的,比如可以按照各自的提取顺序进行排序,提取时间越早,排位越靠前。
需要说明的是,该网络请求信息可以是一段时间内获取的请求内容的数据包,比如十天或一个月,此时,不同的数据包提取出的同一关键参数的值可能相同,为减少冗余,创建模块20在创建请求数据库的过程中,需要去掉重复的值,也即需要舍弃掉重复的字符串。该请求数据库的创建操作可以是实时进行,比如每次获取到数据包就对请求数据库进行更新和完善,也可以是集中进行,比如一次性对这段时间内获取的所有数据包进行处理,并用处理后的数据创建请求数据库,具体可以根据实际需求而定。
(3)第二获取模块30
第二获取模块30,用于获取每一参数标识对应的属性信息。
本实施例中,该属性信息是根据每一参数对待测系统的性能测试的影响程度进行设定的,其可以包括强相关和强无关,通常,影响较大的参数设定为强相关参数,影响较小的参数设定为强无关参数。用户需要预先在该请求数据库或其他指定区域建立每一参数标识与属性信息的关联关系,从而后续第二获取模块30可以根据该关联关系找到该参数标识对应的参数的属性信息。
(4)生成模块40
生成模块40,用于根据该属性信息和请求数据库中的字符串集生成测试用例。
本实施例中,该测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求,不同的待测系统(软件),其测试用例是不同的。
例如,请参阅图3b,该生成模块40具体可以包括:分类子模块41、处理子模块42以及生成子模块43,其中:
分类子模块41,用于根据该属性信息对该请求数据库中的字符串集进行分类,得到第一字符串集和第二字符串集。
例如,该属性信息可以包括强相关和强无关,此时,该分类子模块41具体可以用于:
将该属性信息指示强相关的参数标识对应的字符串集确定为第一字符串集;
将该属性信息指示强无关的参数标识对应的字符串集确定为第二字符串集。
本实施例中,由于强相关参数对待测系统性能测试的影响远大于强无关参数,故在构建测试用例时,可以有侧重性的对强相关参数和强无关参数进行处理,使强相关参数的值集(也即第一字符串集)被利用的次数多于强无关参数的值集(也即第二字符串集)被利用的次数,确保强相关参数的值集得到充分利用。
处理子模块42,用于利用预设规则对该第一字符串集进行处理,得到多条组合信息,每一组合信息包括至少一个字符串。
本实施例中,该预设规则可以根据实际需求而定,为使强相关参数的值集在得到充分利用的同时,又能避免后续生成的测试用例数目过多,给测试软件带来沉重负担,该预设规则可以为正交测试法。该正交测试法是依据Galois理论,从大量的测试用例中挑选适量的、有代表性的点,从而合理地安排测试的一种科学实验设计方法。
例如,当该预设规则为正交测试法时,该处理子模块42具体可以用于:
2-2-1、根据该第一字符串集的数量、以及每一个第一字符串集中字符串的数量从预设的正交表库中确定目标正交表。
本实施例中,该正交表库中存储有一系列规格化的正交表格Ln(ji),其中,L为正交表的符号,n为行数,j为水平数,i为因素数,n、j和i均属于正整数。本实施例中,i取决于第一字符串集的数量(也即强相关的参数标识数),j取决于该正交表的选择主要取决于因素个数和每一因素的水平数,在本实施例中,该因素是强相关参数(也即第一字符串集),该因素的水平是该强相关参数对应的值(也即第一字符串集中的字符串)。
2-2-2、建立该目标正交表中列与第一字符串集的对应关系。
本实施例中,处理子模块42可以按一定顺序将强相关参数和目标正交表的列进行关联,该关联顺序可以是用户预先设定的,也可以是随机的。
2-2-3、根据该对应关系、目标正交表以及第一字符串集生成多条组合信息。
例如,处理子模块42具体可以用于:
根据该对应关系将每一个第一字符串集中的字符串填入该目标正交表中,得到填入后正交表;
将该填入后正交表中每一行包含的所有字符串确定为组合信息,每一行对应一条组合信息。
本实施例中,当正交表的列与强相关参数建立好对应关系后,每一强相关参数的值(字符串)在列中的排列位置基本也定了,根据各自的排列位置将每一值填充在该目标正交表中的单元格里,从而使每一单元格里都有一个值,并且,每个值在表中出现的次数和其他值在表中出现的次数相等,每一列中的所有值都属于同一强相关参数,每一行(也即组合信息)的每个值都属于不同的强相关参数。采用正交测试法对不同强相关参数的值进行交叉组合,不仅能使每一强相关参数的值被充分利用,而且得到的每个组合都具有一定代表性,能最大程度的减少组合次数,避免冗余。
生成子模块43,用于根据该多条组合信息、以及第二字符串集生成测试用例。
本实施例中,由于强无关参数对待测系统的性能测试的影响较小,在构建测试用例时,每一强无关参数的值只需被利用一次即可,无需交叉组合,从而能在不影响最终测试结果的情况下,尽量减少测试用例的数量。
例如,该生成子模块43具体可以包括:确定单元、填入单元和生成单元,其中:
确定单元,用于根据该组合信息的条数、第二字符串集的数量、以及每一个第二字符串集中字符串的数量确定目标空白表;
填入单元,用于将该多条组合信息作为单独列,将每一个第二字符串集作为单独列,填入该目标空白表中,得到一级处理表;
生成单元,用于基于该一级处理表生成测试用例。
本实施例中,该目标空白表可以是新建的,也可以是从空白表库中选择的。在该目标空白表中,每一组合信息、以及第二字符串集中的每一字符串都作为一个最小的元素填充到目标空白表的单元格中,且每个元素只出现一次。通常,该目标空白表的行数取决于组合信息的条数(也即该填入后正交表的行数)与第二字符串集中字符串的数量之间的最大值,其列数取决于第二字符串集(也即强无关参数)的数量。
例如,该生成单元具体可以用于:
根据该一级处理表中空白单元格所在的列对该空白单元格进行填充,以对该一级处理表进行处理,得到二级处理表;
将该二级处理表中每一行包含的所有字符串确定为目标字符串组,每一行对应一个目标字符串组;
基于该目标字符串组生成测试用例。
本实施例中,由于每一第二字符串集中字符串的数量可能不一样,故该一级处理表中难免会存在未填充的空白单元格,此时,可以从该空白单元格所在的列中任意获取一个元素对其进行填充,使每一行包含的字符串总数相等,确保每一目标字符串组包括所有关键参数的值,且任意两个目标字符串组包括的值不完全一样。此时,可以直接对每一目标字符串组进行打包,得到基本用例,之后,将这些基本用例作为全部的测试用例对待测系统进行测试,基本可以满足待测系统各个性能的检测。
此外,由于一些特殊的关键参数,比如值为数字类的关键参数,对接口的兼容程度要求较高,若不针对这类型的参数额外生成一些补充用例,添加到测试用例中,则难以准确检测出待测系统的接口的兼容能力,此时,该生成单元具体可以用于:
获取预设参数标识对应的预设字符串集,该预设字符串集包括至少一个预设字符串;
利用该预设字符串替换该目标字符串组中预设参数标识对应的字符串,得到补充字符串组;
根据该目标字符串组和补充字符串组生成测试用例。
本实施例中,该预设参数标识和预设字符串集是用户预先设置的,该预设参数标识主要是值为数字类的关键参数的名称,该预设字符串主要为数字串。生成单元通过将目标字符串组中指定参数的值进行变异,之后将变异后的字符串组(也即补充字符串组)进行打包,可以生成针对待测系统某一性能(数字兼容能力)的补充用例,提高测试的覆盖能力。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上述可知,本实施例提供的测试用例的生成装置,通过第一获取模块10获取网络请求信息,创建模块20基于该网络请求信息创建请求信息库,该请求信息库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识,之后,第二获取模块30获取每一参数标识的属性信息,生成模块40根据该属性信息和请求信息库中的字符串集生成测试用例,从而能利用历史网络数据自动生成测试用例,无需人工手动生成,方法简单,生成效率高,且生成的测试用例的覆盖范围广。
第四实施例
相应的,本发明实施例还提供一种测试用例的生成系统,包括本发明实施例所提供的任一种测试用例的生成装置,该测试用例的生成装置可以集成在网络设备中。
其中,测试用例的生成获取网络请求信息;基于该网络请求信息创建请求信息库,该请求信息库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识;获取每一参数标识的属性信息;根据该属性信息和请求信息库中的字符串集生成测试用例。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由于该路况信息的生成系统可以包括本发明实施例所提供的任一种测试用例的生成装置,因此,可以实现本发明实施例所提供的任一种测试用例的生成装置所能实现的有益效果,详见前面的实施例,在此不再赘述。
第五实施例
本发明实施例还提供一种网络设备,如图4所示,其示出了本发明实施例所涉及的网络设备的结构示意图,具体来讲:
该网络设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、射频(Radio Frequency,RF)电路503、电源504、输入单元505、以及显示单元506等部件。本领域技术人员可以理解,图4中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器501是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
RF电路503可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器501处理;另外,将涉及上行的数据发送给基站。通常,RF电路503包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路503还可以通过无线通信与网络和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
网络设备还包括给各个部件供电的电源504(比如电池),优选的,电源504可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源504还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该网络设备还可包括输入单元505,该输入单元505可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元505可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元505还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该网络设备还可包括显示单元506,该显示单元506可用于显示由用户输入的信息或提供给用户的信息以及网络设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元506可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图4中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,网络设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,网络设备中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能,如下:
获取网络请求信息;
基于该网络请求信息创建请求数据库,该请求数据库包括参数标识集、以及该参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,该参数标识集包括至少一个参数标识;
获取每一参数标识对应的属性信息;
根据该属性信息和请求数据库中的字符串集生成测试用例。
该网络设备可以实现本发明实施例所提供的任一种测试用例的生成装置所能实现的有效效果,详见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种测试用例的生成方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (17)

1.一种测试用例的生成方法,其特征在于,包括:
获取网络请求信息;
基于所述网络请求信息创建请求数据库,所述请求数据库包括参数标识集、以及所述参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,所述参数标识集包括至少一个参数标识;
获取每一参数标识对应的属性信息;
根据所述属性信息和请求数据库中的字符串集生成测试用例;
其中,所述根据所述网络请求信息创建请求数据库,包括:对所述网络请求信息进行解析;从解析后的网络请求信息中提取出预设的参数标识集中每一参数标识对应的所有字符串;建立每一参数标识与对应的所有字符串的关联关系;将所述关联关系存储在请求数据库中,以创建所述请求数据库。
2.根据权利要求1所述的测试用例的生成方法,其特征在于,所述根据所述属性信息和请求数据库中的字符串集生成测试用例,包括:
根据所述属性信息对所述请求数据库中的字符串集进行分类,得到第一字符串集和第二字符串集;
利用预设规则对所述第一字符串集进行处理,得到多条组合信息,每一组合信息包括至少一个字符串;
根据所述多条组合信息、以及第二字符串集生成测试用例。
3.根据权利要求2所述的测试用例的生成方法,其特征在于,所述属性信息包括强相关和强无关,所述根据所述属性信息对所述请求数据库中的字符串集进行分类,得到第一字符串集和第二字符串集,包括:
将所述属性信息指示强相关的参数标识对应的字符串集确定为第一字符串集;
将所述属性信息指示强无关的参数标识对应的字符串集确定为第二字符串集。
4.根据权利要求2所述的测试用例的生成方法,其特征在于,所述根据所述多条组合信息、以及第二字符串集生成测试用例,包括:
根据所述组合信息的条数、第二字符串集的数量、以及每一个第二字符串集中字符串的数量确定目标空白表;
将所述多条组合信息作为单独列,将每一个第二字符串集作为单独列,填入所述目标空白表中,得到一级处理表;
基于所述一级处理表生成测试用例。
5.根据权利要求4所述的测试用例的生成方法,其特征在于,所述基于所述一级处理表生成测试用例,包括:
根据所述一级处理表中空白单元格所在的列对所述空白单元格进行填充,以对所述一级处理表进行处理,得到二级处理表;
将所述二级处理表中每一行包含的所有字符串确定为目标字符串组,每一行对应一个目标字符串组;
基于所述目标字符串组生成测试用例。
6.根据权利要求5所述的测试用例的生成方法,其特征在于,所述基于所述目标字符串组生成测试用例,包括:
获取预设参数标识对应的预设字符串集,所述预设字符串集包括至少一个预设字符串;
利用所述预设字符串替换所述目标字符串组中预设参数标识对应的字符串,得到补充字符串组;
根据所述目标字符串组和补充字符串组生成测试用例。
7.根据权利要求5所述的测试用例的生成方法,其特征在于,所述根据所述一级处理表中空白单元格所在的列对所述空白单元格进行填充,包括:
获取所述一级处理表中的空白单元格;
获取所述空白单元格所在列中除所述空白单元格之外的单元格,作为目标单元格;
随机选取一个目标单元格;
利用选取的目标单元格对所述空白单元格进行替换。
8.一种测试用例的生成装置,其特征在于,包括:
第一获取模块,用于获取网络请求信息;
创建模块,用于基于所述网络请求信息创建请求数据库,所述请求数据库包括参数标识集、以及所述参数标识集中每一参数标识对应的字符串集,每一字符串集包括至少一个字符串,所述参数标识集包括至少一个参数标识;具体用于对所述网络请求信息进行解析,从解析后的网络请求信息中提取出预设的参数标识集中每一参数标识对应的所有字符串,建立每一参数标识与对应的所有字符串的关联关系,将所述关联关系存储在请求数据库中,以创建所述请求数据库;
第二获取模块,用于获取每一参数标识对应的属性信息;
生成模块,用于根据所述属性信息和请求数据库中的字符串集生成测试用例。
9.根据权利要求8所述的测试用例的生成装置,其特征在于,所述生成模块包括:
分类子模块,用于根据所述属性信息对所述请求数据库中的字符串集进行分类,得到第一字符串集和第二字符串集;
处理子模块,用于利用预设规则对所述第一字符串集进行处理,得到多条组合信息,每一组合信息包括至少一个字符串;
生成子模块,用于根据所述多条组合信息、以及第二字符串集生成测试用例。
10.根据权利要求9所述的测试用例的生成装置,其特征在于,所述属性信息包括强相关和强无关,所述分类子模块具体用于:
将所述属性信息指示强相关的参数标识对应的字符串集确定为第一字符串集;
将所述属性信息指示强无关的参数标识对应的字符串集确定为第二字符串集。
11.根据权利要求9所述的测试用例的生成装置,其特征在于,所述生成子模块具体包括:
确定单元,用于根据所述组合信息的条数、第二字符串集的数量、以及每一个第二字符串集中字符串的数量确定目标空白表;
填入单元,用于将所述多条组合信息作为单独列,将每一个第二字符串集作为单独列,填入所述目标空白表中,得到一级处理表;
生成单元,用于基于所述一级处理表生成测试用例。
12.根据权利要求11所述的测试用例的生成装置,其特征在于,所述生成单元用于:
根据所述一级处理表中空白单元格所在的列对所述空白单元格进行填充,以对所述一级处理表进行处理,得到二级处理表;
将所述二级处理表中每一行包含的所有字符串确定为目标字符串组,每一行对应一个目标字符串组;
基于所述目标字符串组生成测试用例。
13.根据权利要求12所述的测试用例的生成装置,其特征在于,所述生成单元具体用于:
获取预设参数标识对应的预设字符串集,所述预设字符串集包括至少一个预设字符串;
利用所述预设字符串替换所述目标字符串组中预设参数标识对应的字符串,得到补充字符串组;
根据所述目标字符串组和补充字符串组生成测试用例。
14.根据权利要求12所述的测试用例的生成装置,其特征在于,所述生成单元具体用于:
获取所述一级处理表中的空白单元格;
获取所述空白单元格所在列中除所述空白单元格之外的单元格,作为目标单元格;
随机选取一个目标单元格;
利用选取的目标单元格对所述空白单元格进行替换。
15.一种测试用例的生成系统,其特征在于,包括如权利要求8至14任一项所有的测试用例的生成装置。
16.一种网络设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述方法中的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述方法中的步骤。
CN201710204024.2A 2017-03-30 2017-03-30 一种测试用例的生成方法及装置 Active CN107102941B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710204024.2A CN107102941B (zh) 2017-03-30 2017-03-30 一种测试用例的生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710204024.2A CN107102941B (zh) 2017-03-30 2017-03-30 一种测试用例的生成方法及装置

Publications (2)

Publication Number Publication Date
CN107102941A CN107102941A (zh) 2017-08-29
CN107102941B true CN107102941B (zh) 2021-01-08

Family

ID=59676115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710204024.2A Active CN107102941B (zh) 2017-03-30 2017-03-30 一种测试用例的生成方法及装置

Country Status (1)

Country Link
CN (1) CN107102941B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908548B (zh) * 2017-10-10 2020-07-14 深圳市融壹买信息科技有限公司 一种生成测试用例的方法和装置
CN107894952A (zh) * 2017-11-08 2018-04-10 中国平安人寿保险股份有限公司 接口测试用例的生成方法、装置、设备及可读存储介质
CN109901984A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 生成大数据测试用例的方法和装置
CN109903109A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 测试方法和装置
CN108319550A (zh) * 2017-12-28 2018-07-24 华为技术有限公司 一种测试系统及测试方法
CN108470242B (zh) * 2018-03-08 2022-03-22 创新先进技术有限公司 风险管控方法、装置、及服务器
CN110209567B (zh) * 2018-04-09 2021-09-10 腾讯科技(深圳)有限公司 一种性能测试方法及装置
CN108600034B (zh) * 2018-05-28 2020-07-03 腾讯科技(深圳)有限公司 业务压力管理方法、装置、设备、系统及存储介质
CN109522211B (zh) * 2018-09-29 2023-07-18 中国平安人寿保险股份有限公司 接口参数传递方法、装置、电子设备及存储介质
CN109861875A (zh) * 2018-12-29 2019-06-07 顺丰科技有限公司 应用程序的测试方法及装置
CN110134589B (zh) * 2019-04-17 2023-02-03 深圳壹账通智能科技有限公司 接口测试用例的生成方法、装置、计算机设备和存储介质
CN110196813B (zh) * 2019-06-06 2023-05-02 北京百度网讯科技有限公司 接口测试方法、装置、设备和介质
CN112180890B (zh) * 2019-07-05 2022-01-07 北京新能源汽车股份有限公司 一种测试用例的生成方法、装置及设备
CN111045922B (zh) * 2019-10-21 2023-09-12 望海康信(北京)科技股份公司 测试用例生成方法及系统
CN111338943A (zh) * 2020-02-21 2020-06-26 北京字节跳动网络技术有限公司 一种测试方法、装置、电子设备及可读存储介质
CN111581092B (zh) * 2020-05-07 2023-05-30 安徽星环人工智能科技有限公司 仿真测试数据的生成方法、计算机设备及存储介质
CN111625473B (zh) * 2020-07-01 2023-08-22 北京字节跳动网络技术有限公司 接口测试用例生成方法、装置、存储介质和电子设备
CN112073709B (zh) * 2020-07-27 2023-04-14 武汉旷视金智科技有限公司 测试数据的生成方法、装置及电子设备
CN112527649A (zh) * 2020-12-15 2021-03-19 建信金融科技有限责任公司 一种测试用例的生成方法和装置
CN113138934B (zh) * 2021-05-14 2024-01-19 杭州网易云音乐科技有限公司 自动测试的方法、介质、装置和计算设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314395A (zh) * 2011-10-12 2012-01-11 中国农业银行股份有限公司 一种测试用例生成方法及系统
CN103198015A (zh) * 2013-03-21 2013-07-10 中国人民解放军国防科学技术大学 一种基于使用概率的嵌入式软件可靠性测试数据生成方法
CN103313289A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 Wap系统自动化测试系统和方法
CN106250310A (zh) * 2016-07-25 2016-12-21 微梦创科网络科技(中国)有限公司 一种测试用例生成方法及装置
CN106528395A (zh) * 2015-09-09 2017-03-22 阿里巴巴集团控股有限公司 测试用例的生成方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025696B2 (en) * 2016-02-09 2018-07-17 General Electric Company System and method for equivalence class analysis-based automated requirements-based test case generation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314395A (zh) * 2011-10-12 2012-01-11 中国农业银行股份有限公司 一种测试用例生成方法及系统
CN103313289A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 Wap系统自动化测试系统和方法
CN103198015A (zh) * 2013-03-21 2013-07-10 中国人民解放军国防科学技术大学 一种基于使用概率的嵌入式软件可靠性测试数据生成方法
CN106528395A (zh) * 2015-09-09 2017-03-22 阿里巴巴集团控股有限公司 测试用例的生成方法及装置
CN106250310A (zh) * 2016-07-25 2016-12-21 微梦创科网络科技(中国)有限公司 一种测试用例生成方法及装置

Also Published As

Publication number Publication date
CN107102941A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN107102941B (zh) 一种测试用例的生成方法及装置
CN104808892A (zh) 一种应用图标排序方法、装置、系统及相关设备
CN108197091B (zh) 一种创建数据表的方法、系统及相关设备
US20200134361A1 (en) Data processing method and apparatus
CN106844550B (zh) 一种虚拟化平台操作推荐方法及装置
CN112019820A (zh) 界面生成方法和装置
CN109062807B (zh) 测试应用程序的方法及装置、存储介质、电子装置
CN111782317A (zh) 页面的测试方法和装置、存储介质和电子装置
CN111047434B (zh) 一种操作记录生成方法、装置、计算机设备和存储介质
CN116611411A (zh) 一种业务系统报表生成方法、装置、设备及存储介质
CN109697224B (zh) 一种账单消息处理方法、装置和存储介质
CN106294457A (zh) 网络信息推送方法及装置
CN112364267B (zh) 前端数据的采集方法及装置
CN110020166A (zh) 一种数据分析方法及相关设备
CN114840565A (zh) 抽样查询方法、装置、电子设备及计算机可读存储介质
CN112000876A (zh) 一种信息显示的方法、终端、服务器
CN114356712A (zh) 数据处理方法、装置、设备、可读存储介质及程序产品
CN113656731A (zh) 广告页面的处理方法、装置、电子设备和存储介质
CN105468603B (zh) 数据选择方法及装置
CN113065083A (zh) 一种页面处理方法、装置、电子设备及存储介质
CN111027056A (zh) 一种图形化展示安全威胁事件的方法、装置及存储介质
CN110569459A (zh) 一种网页信息的统计方法和装置
CN109948037A (zh) 信息投放方法、装置及存储设备
CN109241428B (zh) 用户性别的确定方法、装置、服务器及存储介质
CN113590447B (zh) 埋点处理方法和装置

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