CN111737137B - 接口测试数据生成方法、装置、主机及存储介质 - Google Patents
接口测试数据生成方法、装置、主机及存储介质 Download PDFInfo
- Publication number
- CN111737137B CN111737137B CN202010591740.2A CN202010591740A CN111737137B CN 111737137 B CN111737137 B CN 111737137B CN 202010591740 A CN202010591740 A CN 202010591740A CN 111737137 B CN111737137 B CN 111737137B
- Authority
- CN
- China
- Prior art keywords
- interface
- test data
- test
- parameter
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及测试技术领域,具体而言,涉及一种接口测试数据生成方法、装置、主机及存储介质。
背景技术
当前IT企业普遍流行基于微服务,前后端分离的方式,进行企业的应用开发。一般情况下,前端与后端开发共同约定了接口规范,交互方式后,就各自独立开发页面与后端服务。
由于前后端相对独立,前后端之间的接口数量庞大、接口包括的参数也是形态各异,需要测试人员耗费太多精力制定接口测试数据,以大面积覆盖接口的正常、异常情况的测试,因而测试效率低下。
发明内容
本发明实施例的目的在于提供了一种接口测试数据生成方法、装置、主机及存储介质,能够通过按照每一接口参数对应的默认约束条件生成对应的满足默认约束条件的测试值,再将所有接口参数的测试值进行组合,自动得到覆盖全面的接口测试数据,有效节省了测试人员的工作量,提高了测试效率。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供一种接口测试数据生成方法,应用于主机,所述方法包括:利用爬虫技术获取目标接口的接口信息,其中,接口信息包括多个接口参数及每一接口参数对应的对该接口参数的取值进行约束的默认约束条件;依据每一接口参数的默认约束条件,为对应的接口参数生成满足默认约束条件的测试值;将所有接口参数的测试值进行组合,得到用于测试目标接口的测试数据。
第二方面,本发明实施例提供一种接口测试数据生成装置,应用于主机,所述装置包括获取模块、生成模块及组合模块。获取模块,用于利用爬虫技术获取目标接口的接口信息,其中,接口信息包括多个接口参数及每一接口参数对应的对该接口参数的取值进行约束的默认约束条件;生成模块,用于依据每一接口参数的默认约束条件,为对应的接口参数生成满足默认约束条件的测试值;组合模块,用于将所有接口参数的测试值进行组合,得到用于测试目标接口的测试数据。
第三方面,本发明实施例提供一种主机,所述主机包括:一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的接口测试数据生成方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的接口测试数据生成方法。
相对于现有技术,本发明实施例提供了一种接口测试数据生成方法、装置、主机及存储介质,当需要生成目标接口的测试数据时,首先,利用爬虫技术获取目标接口的接口信息,其中,接口信息包括多个接口参数及每一接口参数对应的对该接口参数的取值进行约束的默认约束条件,依据每一接口参数的默认约束条件,为对应的接口参数生成满足默认约束条件的测试值,然后将所有接口参数的测试值进行组合,得到用于测试目标接口的测试数据。与现有技术相比,本发明实施例通过按照每一接口参数对应的默认约束条件生成对应的满足默认约束条件的测试值,再将所有接口参数的测试值进行组合,自动得到覆盖全面的接口测试数据,有效节省了测试人员的工作量,提高了测试效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种接口测试数据生成方法的流程图。
图2示出了本发明实施例提供的另一种接口测试数据生成方法的流程图。
图3示出了本发明实施例提供的另一种接口测试数据生成方法的流程图。
图4示出了本发明实施例提供的另一种接口测试数据生成方法的流程图。
图5示出了本发明实施例提供的另一种接口测试数据生成方法的流程图。
图6示出了本发明实施例提供的另一种接口测试数据生成方法的流程图。
图7示出了本发明实施例提供的另一种接口测试数据生成方法的流程图。
图8示出了本发明实施例提供的接口测试数据生成装置的方框示意图。
图9示出了本发明实施例提供的主机的方框示意图。
图标:10-主机;11-处理器;12-存储器;13-总线;14-通信接口;100-接口测试数据生成装置;110-获取模块;120-生成模块;130-组合模块;140-更新模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参考图1,图1示出了本发明实施例提供的一种接口测试数据生成方法的流程图,该方法包括以下步骤:
步骤S110,利用爬虫技术获取目标接口的接口信息,其中,接口信息包括多个接口参数及每一接口参数对应的对该接口参数的取值进行约束的默认约束条件。
在本实施例中,目标接口为需要进行测试的接口,目标接口的接口信息通常通过以下两种方式进行管理:(1)根据接口编写规范,提供线下文档,开发人员对线下文档进行编辑后,提交到文档管理器,由文档管理器对接口文档进行统一管理,文档管理器可以是SVN或者Git等。(2)提供在线文档,共同编辑查看或者代码自动生成,此时,接口文档通常以网页的形式进行展示。
在本实施例中,目标接口通常包括多个接口参数,每个接口参数均对应一个默认约束条件,默认约束条件用于对对应的接口参数的取值进行约束,例如,目标接口包括接口参数a和b,对于a,其默认约束条件为:由小写字母和数字组成的字符串,长度小于8,则a的取值为长度小于8的字符串,对于b,其默认约束条件为:由数字组成的字符串,长度大于5且小于32,则b的取值为长度大于5且小于32的、由数字组成的字符串。
在本实施例中,利用爬虫技术获取目标接口的接口信息的触发时机可以按照预设周期触发,也可以由用户手动触发,还可以检测到接口文档有更新时触发。
在本实施例中,对于文档管理器管理的接口文档,可以利用爬虫技术将接口文档下载到本地,再从接口文档中读取目标接口的接口信息。对于网页形式的接口文档,可以利用爬虫技术直接获取网页中目标接口的接口信息。
在本实施例中,可以使用内部配置文件管理接口管理工具的信息,包括接口管理工具地址、端口号、工程号、登录账号密码等,用户可以通过网页中的配置页面更新该内部配置文件,利用爬虫技术根据内部配置文件中指定的地址采用预设抓取策略抓取目标接口的接口信息。
在本实施例中,预设抓取策略可以是默认抓取策略或者自定义抓取策略。其中,默认抓取策略可以是广度优先搜索策略、最佳优先搜索策略等,略,也可根据实际场景的需要设置自定义抓取策略。
步骤S120,依据每一接口参数的默认约束条件,为对应的接口参数生成满足默认约束条件的测试值。
在本实施例中,每一接口参数对应一个默认约束条件,默认约束条件通常是开发人员在对目标接口进行定义时提供的对该接口参数的取值进行约束的条件,包括、但不限于接口参数的类型、长度、是否为必填项等。例如,目标接口的接口参数a的默认约束条件为:由小写字母和数字组成的字符串,长度小于8,可以将abc123作为参数a的测试值。
步骤S130,将所有接口参数的测试值进行组合,得到用于测试目标接口的测试数据。
在本实施例中,测试数据时用于测试目标接口的数据,测试数据可以包括多组测试数据,一组测试数据包括目标接口中所有接口参数的测试值,并且一个接口参数对应一个测试值。例如,目标接口包括a、b、c三个接口参数,则{a123,中国,2020/01/01}为一组测试数据。
对接口参数的测试值进行组合的方式可以至少是以下几种:
(1)全配对,是将每一个接口参数的所有测试值和其他接口参数的所有测试值根据排列组合原理,覆盖得到所有的组合,例如,目标接口包括a、b、c三个接口,a的测试值有两个:(abc123,bcd234),b的测试值有两个:(成都,重庆),c的测试值有三个:(2020/01/01,2019/10/10,2018/05/01),则利用全匹配方式组合的结果包括12组测试数据,分别为{abc123,成都,2020/01/01}、{abc123,成都,2019/10/10}、{abc123,成都,2018/05/01}、{abc123,重庆,2020/01/01}、{abc123,重庆,2019/10/10}、{abc123,重庆,2018/05/01}、{bcd234,成都,2020/01/01}、{bcd234,成都,2019/10/10}、{bcd234,成都,2018/05/01}、{bcd234,重庆,2020/01/01}、{bcd234,重庆,2019/10/10}、{bcd234,重庆,2018/05/01}。
(2)组合配对,是对全匹配的结果按照组合配对方式做筛选,以简化测试数据的数据量。具体做法是:将全匹配的结果分成若干个集合,每个集合中包括预设个数组测试数据,对于每一个集合中的测试数据按照预设方式进行合并,具体合并方式可以是:从一个集合的指定接口参数的测试值相同的多组测试数据中随机选取一组作为合并结果,例如,前N个接口参数的测试值相同的,或者最后N个接口参数的测试值相同的等,N大于1且小于或者等于接口参数的总个数,例如,一个集合中包括三组测试数据:{win7,chrome,64bits}、{win7,chrome,32bits}、{win10,chrome,32bits},按照前2个接口参数测试值相同的方式进行合并,第一组测试数据和第二组测试数据可以合并,从第一组测试数据和第二组测试数据中随机选取一个作为合并结果,合并后的结果可以是:{win7,chrome,32bits}、{win10,chrome,32bits}或者{win7,chrome,64bits}、{win10,chrome,32bits}。由此,测试数据就减少了一组,降低了测试数据的数据量。
(3)随机配对,是对全匹配的结果按照随机配对方式做筛选,以简化测试数据的数据量。具体做法是:从全匹配的结果中随机选取预设个数组测试数据。例如,预设个数为3,即从全匹配的结果中随机选择3组测试数据作为筛选后的测试数据。
(4)反随机配对,是对全匹配的结果按照反随机配对方式做筛选,以简化测试数据的数据量。具体做法是:按照固定间隔从全匹配的结果中选取测试数据。例如,全匹配结果包括10组测试数据:第1组~第10组,固定间隔为2,则反随机配对方式筛选出的测试数据为:第1组、第4组、第7组和第10组。
在本实施例中,全配对方式得到的测试数据测试的场景覆盖率最全,但是数据量也最大,组合配对、随机配对、反随机配对均是在全配对方式的结果上进行了简化和筛选,以降低测试数据的数据量,用户可以根据实际场景的需要在场景覆盖率和数据量之间进行权衡,以选择与实际场景最匹配的组合方式。
在本实施例中,测试数据可以存储于预设格式的配置文件中,该配置文件包括、但不限于接口名称、接口类型、接口路径、Headers头部信息、请求参数类型、期望返回数据、返回码等多个信息项。将获取到的目标接口的接口信息对应的更新至配置文件中的信息项中,将测试数据更新至配置文件中对应的接口参数的对应项。
本发明实施例提供的上述方法,通过按照每一接口参数对应的默认约束条件生成对应的满足默认约束条件的测试值,再将所有接口参数的测试值进行组合,自动得到覆盖全面的接口测试数据,有效节省了测试人员的工作量,提高了测试效率。
在图1的基础上,本发明实施例还提供了另一种接口测试数据生成方法,请参照图2,图2示出了本发明实施例提供的另一种接口测试数据生成方法的流程图,步骤S120包括以下子步骤:
子步骤S1201,当默认约束条件包括参考值时,将参考值作为默认约束条件对应的接口参数的测试值。
子步骤S1202,当默认约束条件不包括参考值时,按照默认约束条件随机生成对应的接口参数的测试值。
在本实施例中,开发人员在对目标接口进行定义时,可以给出接口参数的参考值,也可以不给出接口参数的参考值。当给出接口参数的参考值时,将参考值作为接口参数的测试值,当未给出接口参数的参考值时,本发明实施例随机生成满足接口参数的默认约束条件的测试值。例如,对于用户名这个接口参数,默认约束条件为:长度不超过8的大小写字母的组合而成的字符串,当给出参考值“Abc”时,就将“Abc”作为其测试值,当未给出参考值时,随机生成一个长度不超过8的大小写字母组合成的字符串,例如“cvBed”,则将“cvBed”作为其测试值。
需要说明的是,测试值的个数可以根据需要确定,例如,测试值的个数为3,给出的参考值只有一个,则会按照默认约束条件再随机生成两个测试值。
本发明实施例提供的上述方法,可以根据每一接口参数的默认约束条件确定该接口参数的测试值,整个过程自动完全,无需测试人员的参与,由此极大地减少测试人员的工作量。
在图1的基础上,本发明实施例还提供了另一种接口测试数据生成方法,请参照图3,图3示出了本发明实施例提供的另一种接口测试数据生成方法的流程图,步骤S130包括以下子步骤:
子步骤S1301,将所有接口参数的测试值进行组合,生成多组初始测试数据,其中,每一组初始测试数据包括所有接口参数,每一接口参数对应一个测试值。
在本实施例中,组合所有接口参数的测试值的方式已经在步骤S130中详细描述,此处不再赘述。
子步骤S1302,按照预设等价规则确定多组初始测试数据中的重复测试数据。
在本实施例中,预设等价规则可以是有效等价类规则和/或无效等价类规则,有效等价类规则是指对于目标接口的默认约束条件来说是合理的,有意义的测试数据所构成的有效测试集合,利用有效测试集合中的测试数据可以检验目标接口是否实现了预期的功能和性能。无效等价规则指对于目标接口的默认约束条件来说是不合理的,无意义的测试数据所构成的无效测试集合,利用无效测试集合中的测试数据可以检验目标接口对于无效数据的处理。例如,接口参数有两个:分别为年龄,性别,则测试数据{30,女}和测试数据{70,男},按照有效等价类规则,这两组测试数据为重复测试数据,又例如,接口参数有两个:分别为年龄,性别,测试数据{300,儿童}和测试数据{0,孩子},按照无效等价类规则,这两组测试数据为重复测试数据。
子步骤S1303,对重复测试数据进行去重,将去重后的初始测试数据作为目标接口的测试数据。
在本实施例中,对重复测试数据进行去重的方式可以是从重复测试数据中随机的选取其中一组测试数据,也可以是选取重复测试数据中第一组测试数据,或者是选取重复测试数据中最后一组测试数据。
在本实施例中,将初始测试数据中所有重复测试数据进行去重,去重后的初始测试数据即为目标接口的测试数据。
需要说明的是,图3中的子步骤可以与图2中的子步骤相互组合,例如,图3中的子步骤S1301~S1303可以替换图2中的步骤S130,图2中的子步骤S1201~S1202也可以替换图3中的步骤S120。
本发明实施例提供的上述方法,通过预设等价规则对目标接口的测试数据进行简化,即保证了测试数据的测试覆盖率又避免了测试数据的数据量过大导致测试效率降低,在保证测试效果的同时保证测试效率。
在本实施例中,开发人员在开发过程中,通常会根据实际需求对目标接口的接口信息进行更新,为了可以在接口信息更新后及时地更新对应的测试数据,使目标接口在接口信息发生变化时得以及时有效地测试,本发明实施例还提供了另一种接口测试数据生成方法,请参照图4,图4示出了本发明实施例提供的另一种接口测试数据生成方法的流程图,该方法还包括:
步骤S210,当检测到目标接口的接口信息发生变化时,依据目标接口的测试数据更新原有测试数据。
在本实施例中,主机10预先存储有目标接口的原有测试数据。主机10可以周期性地采用爬虫技术爬取目标接口的最新的接口信息,当发现最新的接口信息与原有的接口信息不一致时,可以判定目标接口的接口信息发生了变化,然后按照步骤S110~S130及其子步骤的方式得到最新的接口信息对应的最新的测试数据,利用最新的测试数据更新原有测试数据。
本发明实施例提供的上述方法,可以自动判断目标接口的接口信息是否发生变化,在发生变化时自动更新目标接口的测试数据,避免了目标接口的接口信息发生变化时,测试方感知度低导致测试维护工作量增加,保证了目标接口发生变化时可以得以及时测试,将目标接口的问题尽可能提前暴露,以保证目标接口的功能的正确性。
在本实施例中,为了提高测试人员采用不同测试策略对目标接口进行针对性的测试,提高目标接口测试的全面性,本发明实施例还提供了另一种接口测试数据生成方法,请参照图5,图5示出了本发明实施例提供的另一种接口测试数据生成方法的流程图,该方法还包括:
步骤S310,获取数据源文件,其中,数据源文件包括至少一个接口参数及对应的自定义约束条件,其中,自定义约束条件是按照预设测试策略确定的、用于对对应的接口参数的取值进行约束。
在本实施例中,自定义约束条件是测试人员按照预设测试策略确定的,用于从测试人员的角度根据测试需求对对应的接口参数的取值进行约束。预设测试策略可以针对目标接口中所有接口参数的取值进行约束,也可以只针对目标接口中部分接口参数的取值进行约束,也可以针对不同的接口参数采取不同的取值约束策略。
在本实施例中,可以在根据接口参数的默认约束条件生成对应接口参数的测试值之后再根据自定义约束条件对测试值进行更新,最终使得接口参数的测试值既满足了开发人员要求的默认约束条件又满足了测试人员要求的自定义约束条件,既保证了目标接口的功能得以正确测试,又保证了测试覆盖的全面性。
在本实施例中,为了便于实现根据自定义约束条件自动地对接口参数的测试值进行更新,将接口参数及对应的自定义约束条件存储至数据源文件中,再从该数据源文件中读取接口参数对应的自定义约束条件,以根据自定义约束条件对接口参数的测试值进行更新。
需要说明的是,通过数据源文件只是一种更新测试值的方式,事实上,测试人员也可以根据需要直接手动更新接口参数的测试值。
步骤S320,依据自定义约束条件对对应的接口参数的测试值进行更新。
本发明实施例提供的上述方法,提供了根据预设测试策略对接口参数的测试值进行更新的方法,使测试值既符合默认约束条件又符合预设测试策略的实际需要,既提高了测试值更新的灵活性又可以使测试值的确定更合理更全面。
在本实施例中,为了基于测试数据更方便地利用开源测试工具对目标接口进行测试,本发明实施例还提供了一种根据目标接口的测试数据自动生成目标接口的测试脚本的方法,请参照图6,图6示出了本发明实施例提供的另一种接口测试数据生成方法的流程图,该方法还包括:
步骤S410,依据预设脚本模板及目标接口的测试数据,生成目标接口的测试脚本。
在本实施例中,预设脚本模板可以、但不限于为JMX文件、PYTHON文件等。JMX文件可直接应用于开源接口测试工具JMETER进行接口测试,也可作为性能测试基础脚本进行性能测试。PYTHON文件更易移植及扩展,可用于接口自动化脚本,这两种文件均可集成到持续集成中。
以JMX文件为例,提取出其中预设关键字段,生成JMX文件框架,再将预设关键字段与接口信息中的关键字匹配,匹配成功即把相应测试数据按照要求格式放入到JMX预设关键字段中,生成完整的JMX文件,其中,预设关键字段可以是目标接口的名称,目标接口包括的接口参数的参数名称,类型等。
需要说明的是,用户也可以根据需要采用其他格式的文件,此时,只需要按照该格式的文件的组织规则生成对应的脚本模板即可。
在本实施例中,可以将目标接口的测试数据更新至预设脚本模板中,就生成了对应的测试脚本。
在本实施例中,生成的测试脚本可以作为性能测试的基本测试脚本,再根据用户自定义和使用场景,可以选取单进程、多进程、协程等方式执行基本测试脚本,也可以对测试脚本进行扩展,配置线程数、响应时间等,最终达到性能测试的目的。
本发明实施例提供的上述方法,可以依据预设脚本模板及目标接口的测试数据,自动生成目标接口的测试脚本,实现了基于测试数据更方便地利用开源测试工具对目标接口进行测试,同时也使得测试脚本更易维护和扩展。
在本实施例中,为了使测试人员更方便地对测试用例及测试数据进行管理和维护,本发明实施例还提供了一种自动生成测试用例的方法,请参照图7,图7示出了本发明实施例提供的另一种接口测试数据生成方法的流程图,该方法还包括:
步骤S510,依据预设用例模板及目标接口的测试数据,生成目标接口的测试用例。
在本实施例中,预设测试用例模板中可以包括、但不限于接口名称、用例编号、入参场景、场景、优先级、预置条件、接口方法、请求地址、URL、JSON参数示例、请求头、期望HTTP返回码、期望返回值、返回示例、URL参数、JSON参数解释等内容,将目标接口的测试数据更新至预设测试用例模板后,就生成了一个较为全面的接口测试用例。
在本实施例中,可根据需要自定义调整测试用例内容,也可以根据需要选择决定是否自动生成测试用例。
本发明实施例提供的上述方法,通过自动生成目标接口的测试用例,减少了测试人员对测试用例进行维护的工作量。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种接口测试数据生成装置100的实现方式。请参照图8,图8示出了本发明实施例提供的接口测试数据生成装置100的方框示意图。需要说明的是,本实施例所提供的接口测试数据生成装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
接口测试数据生成装置100包括获取模块110、生成模块120、组合模块130及更新模块140。
获取模块110,用于利用爬虫技术获取目标接口的接口信息,其中,接口信息包括多个接口参数及每一接口参数对应的对该接口参数的取值进行约束的默认约束条件。
生成模块120,用于依据每一接口参数的默认约束条件,为对应的接口参数生成满足默认约束条件的测试值。
作为一种具体实施方式,生成模块120具体用于:当默认约束条件包括参考值时,将参考值作为默认约束条件对应的接口参数的测试值;当默认约束条件不包括参考值时,按照默认约束条件随机生成对应的接口参数的测试值。
组合模块130,用于将所有接口参数的测试值进行组合,得到用于测试目标接口的测试数据。
作为一种具体实施方式,组合模块130具体用于:将所有接口参数的测试值进行组合,生成多组初始测试数据,其中,每一组初始测试数据包括所有接口参数,每一接口参数对应一个测试值;按照预设等价规则确定多组初始测试数据中的重复测试数据;对重复测试数据进行去重,将去重后的初始测试数据作为目标接口的测试数据。
作为一种具体实施方式,组合模块130还用于:依据预设脚本模板及目标接口的测试数据,生成目标接口的测试脚本。
作为一种具体实施方式,组合模块130还用于:依据预设用例模板及目标接口的测试数据,生成目标接口的测试用例。
更新模块140,在主机预先存储有目标接口的原有测试数据时,用于当检测到目标接口的接口信息发生变化时,依据目标接口的测试数据更新原有测试数据。
作为一种具体实施方式,更新模块140具体用于:获取数据源文件,其中,数据源文件包括至少一个接口参数及对应的自定义约束条件,其中,自定义约束条件是按照预设测试策略确定的、用于对对应的接口参数的取值进行约束;依据自定义约束条件对对应的接口参数的测试值进行更新。
本发明实施例还给出了主机10的方框示意图,请参照图9,图9示出了本发明实施例提供的主机10的方框示意图,主机10包括处理器11、存储器12、总线13、通信接口14,处理器11、存储器12及通信接口14通过总线13连接。
处理器11可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,接口测试数据生成方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如上述图8中的接口测试数据生成装置100。接口测试数据生成装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中或固化在主机10的操作系统(operating system,OS)中的软件功能模块。处理器11在接收到执行指令后,执行所述程序以实现下述实施例揭示的接口测试数据生成方法。
主机10通过通信接口14与其他外设设备进行通信。
综上所述,本发明实施例提供了一种接口测试数据生成方法、装置、主机及存储介质,所述方法包括:利用爬虫技术获取目标接口的接口信息,其中,接口信息包括多个接口参数及每一接口参数对应的对该接口参数的取值进行约束的默认约束条件;依据每一接口参数的默认约束条件,为对应的接口参数生成满足默认约束条件的测试值;将所有接口参数的测试值进行组合,得到用于测试目标接口的测试数据。与现有技术相比,本发明实施例通过按照每一接口参数对应的默认约束条件生成对应的满足默认约束条件的测试值,再将所有接口参数的测试值进行组合,自动得到覆盖全面的接口测试数据,有效节省了测试人员的工作量,提高了测试效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种接口测试数据生成方法,其特征在于,应用于主机,所述主机预先存储有目标接口的原有测试数据,所述方法包括:
利用爬虫技术从接口文档中获取目标接口的接口信息,其中,所述接口信息包括多个接口参数及每一所述接口参数对应的对该接口参数的取值进行约束的默认约束条件,所述接口文档为文档管理器管理的接口文档或者网页形式的接口文档,对于文档管理器管理的接口文档,利用爬虫技术将所述接口文档下载到本地,再从所述接口文档中读取所述目标接口的接口信息,对于网页形式的接口文档,利用爬虫技术直接获取网页中目标接口的接口信息,文档管理器使用内部配置文件管理,通过网页中配置页面更新内部配置文件,利用爬虫技术根据所述内部配置文件中指定的地址采用预设抓取策略抓取目标接口的接口信息;
依据每一所述接口参数的默认约束条件,为对应的接口参数生成满足所述默认约束条件的测试值;
将所有所述接口参数的测试值进行组合,得到用于测试所述目标接口的测试数据;
当检测到所述目标接口的接口信息发生变化时,依据所述目标接口的测试数据更新所述原有测试数据;
所述方法还包括:
获取数据源文件,其中,所述数据源文件包括至少一个所述接口参数及对应的自定义约束条件,其中,所述自定义约束条件是按照预设测试策略确定的、用于对对应的所述接口参数的取值进行约束;
依据所述自定义约束条件对对应的接口参数的测试值进行更新。
2.如权利要求1所述的接口测试数据生成方法,其特征在于,依据每一所述接口参数的默认约束条件,为对应的接口参数生成满足所述默认约束条件的测试值的步骤包括:
当所述默认约束条件包括参考值时,将所述参考值作为所述默认约束条件对应的接口参数的测试值;
当所述默认约束条件不包括参考值时,按照所述默认约束条件随机生成对应的接口参数的测试值。
3.如权利要求1所述的接口测试数据生成方法,其特征在于,所述将所有所述接口参数的测试值进行组合,得到所述目标接口的测试数据的步骤包括:
将所有所述接口参数的测试值进行组合,生成多组初始测试数据,其中,每一组所述初始测试数据包括所有所述接口参数,每一所述接口参数对应一个测试值;
按照预设等价规则确定所述多组初始测试数据中的重复测试数据;
对所述重复测试数据进行去重,将去重后的所述初始测试数据作为所述目标接口的测试数据。
4.如权利要求1所述的接口测试数据生成方法,其特征在于,所述方法还包括:
依据预设脚本模板及所述目标接口的测试数据,生成所述目标接口的测试脚本。
5.如权利要求1所述的接口测试数据生成方法,其特征在于,所述方法还包括:
依据预设用例模板及所述目标接口的测试数据,生成所述目标接口的测试用例。
6.一种接口测试数据生成装置,其特征在于,应用于主机,所述主机预先存储有目标接口的原有测试数据,所述装置包括:
获取模块,用于利用爬虫技术从接口文档获取目标接口的接口信息,其中,所述接口信息包括多个接口参数及每一所述接口参数对应的对该接口参数的取值进行约束的默认约束条件,所述接口文档为文档管理器管理的接口文档或者网页形式的接口文档,对于文档管理器管理的接口文档,利用爬虫技术将所述接口文档下载到本地,再从所述接口文档中读取所述目标接口的接口信息,对于网页形式的接口文档,利用爬虫技术直接获取网页中目标接口的接口信息,文档管理器使用内部配置文件管理,通过网页中配置页面更新内部配置文件,利用爬虫技术根据所述内部配置文件中指定的地址采用预设抓取策略抓取目标接口的接口信息;
生成模块,用于依据每一所述接口参数的默认约束条件,为对应的接口参数生成满足所述默认约束条件的测试值;
组合模块,用于将所有所述接口参数的测试值进行组合,得到用于测试所述目标接口的测试数据;
更新模块,用于当检测到所述目标接口的接口信息发生变化时,依据所述目标接口的测试数据更新所述原有测试数据;
更新模块,还用于获取数据源文件,其中,所述数据源文件包括至少一个所述接口参数及对应的自定义约束条件,其中,所述自定义约束条件是按照预设测试策略确定的、用于对对应的所述接口参数的取值进行约束;依据所述自定义约束条件对对应的接口参数的测试值进行更新。
7.一种主机,其特征在于,所述主机包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1~5中任一项所述的接口测试数据生成方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~5中任一项所述的接口测试数据生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010591740.2A CN111737137B (zh) | 2020-06-24 | 2020-06-24 | 接口测试数据生成方法、装置、主机及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010591740.2A CN111737137B (zh) | 2020-06-24 | 2020-06-24 | 接口测试数据生成方法、装置、主机及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737137A CN111737137A (zh) | 2020-10-02 |
CN111737137B true CN111737137B (zh) | 2023-04-07 |
Family
ID=72651145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010591740.2A Active CN111737137B (zh) | 2020-06-24 | 2020-06-24 | 接口测试数据生成方法、装置、主机及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737137B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256944A (zh) * | 2020-10-26 | 2021-01-22 | 四川长虹电器股份有限公司 | 基于JMeter的网站数据自动爬取方法 |
CN112346991B (zh) * | 2020-11-27 | 2022-03-22 | 新华三大数据技术有限公司 | 一种接口测试脚本的生成方法及装置 |
CN113821443B (zh) * | 2021-09-30 | 2023-06-16 | 腾讯科技(深圳)有限公司 | 应用程序的功能检测方法、装置、设备及存储介质 |
CN116627851B (zh) * | 2023-07-24 | 2023-10-20 | 恒生电子股份有限公司 | 接口测试方法以及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461898A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 应用测试的方法、中控服务器、测试终端及系统 |
CN107894952A (zh) * | 2017-11-08 | 2018-04-10 | 中国平安人寿保险股份有限公司 | 接口测试用例的生成方法、装置、设备及可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7493597B2 (en) * | 2005-02-23 | 2009-02-17 | Microsoft Corporation | System and method for model based generation of application programming interface test code |
WO2007076484A2 (en) * | 2005-12-22 | 2007-07-05 | Flory Clive F | Method, system, and apparatus for the management of the electronic files |
US11042471B2 (en) * | 2017-08-25 | 2021-06-22 | Oracle International Corporation | System and method for providing a test manager for use with a mainframe rehosting platform |
CN110334009A (zh) * | 2019-05-28 | 2019-10-15 | 中国平安人寿保险股份有限公司 | 测试用例自动生成方法、装置、终端及存储介质 |
CN110287113A (zh) * | 2019-06-25 | 2019-09-27 | 四川长虹电器股份有限公司 | 自动化接口测试方法 |
-
2020
- 2020-06-24 CN CN202010591740.2A patent/CN111737137B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461898A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 应用测试的方法、中控服务器、测试终端及系统 |
CN107894952A (zh) * | 2017-11-08 | 2018-04-10 | 中国平安人寿保险股份有限公司 | 接口测试用例的生成方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
Ir接口协议自动化测试系统的研究;江浚 等;《价值工程》;第32卷(第307期);第184-186页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111737137A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737137B (zh) | 接口测试数据生成方法、装置、主机及存储介质 | |
US10733079B2 (en) | Systems and methods for end-to-end testing of applications using dynamically simulated data | |
US11704177B2 (en) | Session triage and remediation systems and methods | |
US9940187B2 (en) | Nexus determination in a computing device | |
CN107741902B (zh) | 程序应用检测方法及程序应用检测装置 | |
US9372776B2 (en) | Monitoring user activity and performance of computerized devices | |
CN109739619B (zh) | 一种基于容器化应用的处理方法、装置及存储介质 | |
US20220300698A1 (en) | Techniques for web framework detection | |
CN110716848A (zh) | 数据收集方法、装置、电子设备及存储介质 | |
WO2019161620A1 (zh) | 应用依赖关系更新方法、终端、设备及存储介质 | |
CN112363935A (zh) | 数据联调方法、装置、电子设备及存储介质 | |
US20120173658A1 (en) | Schema Validation Proxy | |
US20150331772A1 (en) | Methods for updating diagnostic tools on a hardware device and devices thereof | |
CN115495372A (zh) | 一种模拟数据处理方法、装置、设备及介质 | |
CN107302605B (zh) | 电视代理服务器的配置方法及装置、电视及存储介质 | |
CN112199529A (zh) | 图片处理方法、装置、电子设备及存储介质 | |
CN112749164A (zh) | 数据质量分析方法、装置及电子设备 | |
CN116225576B (zh) | 应用程序的数据环境切换方法、装置、电子设备及介质 | |
CN116662123B (zh) | 服务器部件监控方法、装置、电子设备及存储介质 | |
JP2021039394A (ja) | 情報処理システム、情報処理方法、開発装置、および開発装置用のプログラム | |
CN109684220A (zh) | 一种基于事件回放的浏览器兼容性分析方法 | |
CN110674622A (zh) | 可视化图表生成方法、系统、存储介质及电子设备 | |
CN116594960B (zh) | 描述性文件格式转换方法、装置、计算机设备及存储介质 | |
CN115202545B (zh) | 基于接口的事件触发方法、模块、学习机及存储介质 | |
US20240012909A1 (en) | Correction of non-compliant files in a code repository |
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 |