CN117632763A - 测试方法、装置、计算设备及存储介质 - Google Patents

测试方法、装置、计算设备及存储介质 Download PDF

Info

Publication number
CN117632763A
CN117632763A CN202311715400.6A CN202311715400A CN117632763A CN 117632763 A CN117632763 A CN 117632763A CN 202311715400 A CN202311715400 A CN 202311715400A CN 117632763 A CN117632763 A CN 117632763A
Authority
CN
China
Prior art keywords
test
test case
offline
online
case
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.)
Pending
Application number
CN202311715400.6A
Other languages
English (en)
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202311715400.6A priority Critical patent/CN117632763A/zh
Publication of CN117632763A publication Critical patent/CN117632763A/zh
Pending legal-status Critical Current

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种测试方法、装置、计算设备及存储介质。方法包括:从线下测试用例集合中获取第一线下测试用例;获取线上测试配置数据;利用线上测试配置数据对第一线下测试用例进行修改,以得到线上测试用例。采用本方案可以将线下测试用例转换为可以在线上环境运行的线上测试用例,从而实现线上测试用例的自动化生成,提高线上测试用例的生成效率以及节约人工成本。

Description

测试方法、装置、计算设备及存储介质
技术领域
本发明实施例涉及测试技术领域,具体涉及一种测试方法、装置、计算设备及存储介质。
背景技术
随着科技及社会的不断发展,各类软件服务的出现极大丰富了人们的工作与生活。对软件服务进行测试能够有效地发掘服务漏洞,对提高服务质量以及服务迭代进度等具有十分重要的意义。
目前的服务测试过程为编译线上测试用例以及线下测试用例,利用线上测试用例对服务进行线上测试以及利用线下测试用例进行线下测试。
然而,发明人在实施过程中发现,现有技术中存在如下缺陷:现有技术中需要人工编译线上测试用例,线上测试用例的生成效率低下,人工成本较高。
发明内容
鉴于现有技术中存在线上测试用例生成效率低下和/或人工成本高的技术问题,提出了本发明实施例,以便提供一种克服上述问题或者至少部分地解决上述问题的测试方法、装置、计算设备及存储介质。
根据本发明实施例的第一方面,提供了一种测试方法,包括:从线下测试用例集合中获取第一线下测试用例;获取线上测试配置数据;利用所述线上测试配置数据对所述第一线下测试用例进行修改,以得到线上测试用例。
在一种可选的实施方式中,所述从线下测试用例集合中获取第一线下测试用例进一步包括:根据所述线下测试用例集合中线下测试用例的稳定性指标值,从所述线下测试用例集合中获取第一线下测试用例。
在一种可选的实施方式中,在所述根据所述线下测试用例集合中线下测试用例的稳定性指标值,从所述线下测试用例集合中获取第一线下测试用例之前,所述方法还包括:针对所述线下测试用例集合中的任一线下测试用例,计算该线下测试用例的测试成功率,根据所述测试成功率生成该线下测试用例的稳定性指标值;和/或,计算该线下测试用例的真实失败率,根据所述真实失败率生成该测试用例的稳定性指标值。
在一种可选的实施方式中,所述利用所述线上测试配置数据对所述第一线下测试用例进行修改,以得到线上测试用例进一步包括:利用所述线上测试配置数据对所述第一线下测试用例进行修改后得到候选线上测试用例;所述方法还包括:根据所述候选线上测试用例的属性信息,从所述候选线上测试用例中筛选出在线上环境执行的线上测试用例;其中,所述属性信息包括如下信息中的至少一种:业务场景信息、接口信息、以及操作权限信息。
在一种可选的实施方式中,所述方法还包括:检测到针对所述第一线下测试用例的变更事件,获取所述变更事件对应的变更数据;利用所述变更数据更新由所述第一线下测试用例生成的线上测试用例。
在一种可选的实施方式中,所述方法还包括:获取线上流量数据,从所述线上流量数据中提取第一测试特征;从所述线下测试用例集合中获取第二线下测试用例;根据所述第一测试特征以及所述第二线下测试用例生成第三线下测试用例。
在一种可选的实施方式中,所述方法还包括:获取人工测试用例;利用第一语义识别模型提取所述人工测试用例中的第二测试特征;利用模板转化模型对所述第二测试特征处理后生成自动化测试用例。
在一种可选的实施方式中,在所述利用模板转化模型对所述第二测试特征处理后生成自动化测试用例之后,所述方法还包括:确定所述自动化测试用例对应的功能;将具有功能关联的多个自动化测试用例聚合为一个自动化测试用例。
在一种可选的实施方式中,在所述利用模板转化模型对所述第二测试特征处理后生成自动化测试用例之后,所述方法还包括:在第一预设时段运行所述自动化测试用例以及所述自动化测试用例对应的人工测试用例;获取在第一预设时间段所述自动化测试用例的第一测试指标值,以及获取在所述第一预设时间段所述自动化测试用例对应的人工测试用例的第二测试指标值;若所述第一测试指标值与所述第二测试指标值一致,则将所述自动化测试用例作为能够复用的自动化测试用例。
根据本发明实施例第二方面,提供了一种测试装置,包括:
用例获取模块,用于从线下测试用例集合中获取第一线下测试用例;
数据获取模块,用于获取线上测试配置数据;
转换模块,用于利用所述线上测试配置数据对所述第一线下测试用例进行修改,以得到线上测试用例。
在一种可选的实施方式中,用例获取模块用于:根据所述线下测试用例集合中线下测试用例的稳定性指标值,从所述线下测试用例集合中获取第一线下测试用例。
在一种可选的实施方式中,用例获取模块用于:针对所述线下测试用例集合中的任一线下测试用例,计算该线下测试用例的测试成功率,根据所述测试成功率生成该线下测试用例的稳定性指标值;和/或,计算该线下测试用例的真实失败率,根据所述真实失败率生成该测试用例的稳定性指标值。
在一种可选的实施方式中,转换模块用于:利用所述线上测试配置数据对所述第一线下测试用例进行修改后得到候选线上测试用例;根据所述候选线上测试用例的属性信息,从所述候选线上测试用例中筛选出在线上环境执行的线上测试用例;其中,所述属性信息包括如下信息中的至少一种:业务场景信息、接口信息、以及操作权限信息。
在一种可选的实施方式中,该装置还包括:更新模块,用于检测到针对所述第一线下测试用例的变更事件,获取所述变更事件对应的变更数据;利用所述变更数据更新由所述第一线下测试用例生成的线上测试用例。
在一种可选的实施方式中,该装置还包括:线上转线下模块,用于获取线上流量数据,从所述线上流量数据中提取第一测试特征;从所述线下测试用例集合中获取第二线下测试用例;根据所述第一测试特征以及所述第二线下测试用例生成第三线下测试用例。
在一种可选的实施方式中,该装置还包括:人工转自动化模块,用于获取人工测试用例;利用第一语义识别模型提取所述人工测试用例中的第二测试特征;利用模板转化模型对所述第二测试特征处理后生成自动化测试用例。
在一种可选的实施方式中,人工转自动化模块用于:确定所述自动化测试用例对应的功能;将具有功能关联的多个自动化测试用例聚合为一个自动化测试用例。
在一种可选的实施方式中,人工转自动化模块用于:在第一预设时段运行所述自动化测试用例以及所述自动化测试用例对应的人工测试用例;获取在第一预设时间段所述自动化测试用例的第一测试指标值,以及获取在所述第一预设时间段所述自动化测试用例对应的人工测试用例的第二测试指标值;若所述第一测试指标值与所述第二测试指标值一致,则将所述自动化测试用例作为能够复用的自动化测试用例。
根据本发明实施例第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述测试方法对应的操作。
根据本发明实施例第四方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述测试方法对应的操作。
本发明实施例根据线上测试配置和第一线下测试用例得到线上测试用例,从而将线下测试用例转换为可以在线上执行的线上测试用例,实现线上测试用例的自动化生成,提高线上测试用例的生成效率以及节约人工成本。
本发明实施例根据线下测试用例的稳定性指标值来选取第一线下测试用例,从而能够提高生成的线上测试用例的稳定性。还可以根据测试成功率和/或真实失败率生成该稳定性指标值,便于提升稳定性指标值的确定精度。
本发明实施例在第一线下测试用例发生变更时,及时变更由该第一线下测试用例生成的线上测试用例,保障该线上测试用例的测试精度。
本发明实施例根据线上流量数据与第二线下测试用例结合来得到第三线下测试用例,从而实现线下测试用例的自动化生成,扩充线下测试用例库,提高线下测试的覆盖范围,提升线下测试用例的生成效率、测试精度以及节约人工成本。
本发明实施例通过第一语义识别模型以及模板转化模型将人工测试用例转换为自动化测试用例,从而便于对测试用例的管理及维护,降低系统冗余。
本发明实施例在由人工测试用例转换为自动化测试用例后,并行运行人工测试用例以及自动化测试用例,在两者测试指标一致的情况下才将生成的自动化测试用例投入后续的测试过程中,提升生成的自动化测试用例的稳定性以及测试精度。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例一提供的一种测试方法的流程示意图;
图2示出了本发明实施例二提供的一种测试方法的流程示意图;
图3示出了本发明实施例三提供的一种测试方法的流程示意图;
图4示出了本发明实施例四提供的一种测试方法的流程示意图;
图5示出了本发明实施例五提供的一种测试方法的流程示意图;
图6示出了本发明实施例六提供的一种测试方法的流程示意图;
图7示出了本发明实施例七提供的一种测试方法的流程示意图;
图8示出了本发明实施例八提供的一种测试方法的流程示意图;
图9示出了本发明实施例九提供的一种测试方法的流程示意图;
图10示出了本发明实施例十提供的一种测试方法的流程示意图;
图11示出了本发明实施例十一提供的一种测试装置的结构示意图;
图12示出了本发明实施例十二提供的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明实施例的示例性实施例。虽然附图中显示了本发明实施例的示例性实施例,然而应当理解,可以以各种形式实现本发明实施例而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明实施例,并且能够将本发明实施例的范围完整的传达给本领域的技术人员。
实施例一
图1示出了本发明实施例一提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种线上测试用例的生成方法。
具体地,如图1所示,该方法包括如下步骤:
步骤S110,从线下测试用例集合中获取第一线下测试用例。
线下测试用例集合包含有至少一个线下测试用例,线下测试用例是在线下环境中执行的测试用例。线下环境又称为测试环境,是开发环境到生产环境的过渡环境,测试环境通常会对生产环境进行模拟,并且在测试环境中的处理不会影响生产环境中的相关数据,实现与生产环境的隔离。其中,本发明实施例对线下测试用例的类型不作限定,例如,该线下测试用例可以是人工编译的测试用例,也可以是自动化生成的测试用例;该线下测试用例可以是回归测试用例,也可以是针对测试对象的新版本编译的测试用例,等等。
进一步从线下测试用例集合包含的线下测试用例中筛选出第一线下测试用例。筛选出的第一线下测试用例可以为一个或多个,针对于每个第一线下测试用例执行后续步骤S120-S130将该第一线下测试用例转换为线上测试用例。
在一种可选的实施方式中,为了提升自动生成的线上测试用例的稳定性以及测试精度,本实施方式具体是根据线下测试用例集合中线下测试用例的稳定性指标值,从线下测试用例集合中获取第一线下测试用例。具体可以先确定任一线下测试用例的稳定性指标值,并选取稳定性指标值高的线下测试用例作为第一线下测试用例,例如可以选取稳定性指标值大于预设阈值的线下测试用例作为第一线下测试用例,还可以依据稳定性指标值由高到底的顺序对线下测试用例集合中的线下测试用例进行排序,并且选取位序前N的线下测试用例作为第一线下测试用例。
进一步可选的,具体可以通过如下方式中的一种或多种生成线下测试用例的稳定性指标值:
生成方式一:针对线下测试用例集合中的任一线下测试用例,计算该线下测试用例的测试成功率,根据测试成功率生成该线下测试用例的稳定性指标值。具体地,针对于任一线下测试用例,获取该线下测试用例在历史时段内每次运行后得到的历史测试结果,该测试结果可以为测试成功或测试失败,其中,测试成功的测试结果称为测试成功结果,测试失败的测试结果称为测试失败结果。统计该线下测试用例的历史测试结果的总数量,以及测试成功结果的第一数量,根据该第一数量与该总数量的比值得到该线下测试用例的测试成功率。在得到线下测试用例的测试成功率之后,根据该测试成功率得到该线下测试用例的稳定性指标值,由于测试成功率越高表明该线下测试用例自身存在的缺陷越少,用例稳定性越高,从而稳定性指标值正相关于该测试成功率。本实施方式对如何根据测试成功率得到稳定性指标值的具体方式不作限定,稳定性指标值与测试成功率呈正相关映射关系的公式可适用于本生成方式,例如,可以直接将测试成功率作为稳定性指标值,也可以对测试成功率进行相应的处理(如乘以固定正值参数,加上固定参数等等)后将处理后的结果作为稳定性指标值,等等。采用本生成方式,能够提高稳定性指标值的生成效率。
生成方式二:针对线下测试用例集合中的任一线下测试用例,计算该线下测试用例的真实失败率,根据真实失败率生成该测试用例的稳定性指标值。具体地,引起线下测试用例失败的原因包含两类,其一为线下测试用例自身编译存在漏洞而导致用例测试失败,其二为因网络因素、系统因素等非用例原因导致的用例测试失败。本生成方式中,获取任一线下测试用例的历史测试结果,若该历史测试结果中存在至少一个测试失败结果,则统计测试失败结果的第二数量,以及测试失败结果中的真实测试失败结果的第三数量,其中,若某测试失败结果是由网络等非用例原因导致的,则确定该测试失败结果为真实测试失败结果。进而根据第三数量与第二数量的比值得到真实失败率。在得到线下测试用例的真实失败率之后,根据该真实失败率得到该线下测试用例的稳定性指标值,由于真实失败率越高表明用例自身原因引起的失败比率越小,用例稳定性越高,从而稳定性指标值正相关于该真实失败率。本实施方式对如何根据真实失败率得到稳定性指标值的具体方式不作限定,保障稳定性指标值与真实失败率呈正相关映射关系的公式可适用于本生成方式,例如,可以直接将真实失败率作为稳定性指标值,也可以对真实失败率进行相应的处理(如乘以固定正值参数,加上固定参数等等)后将处理后的结果作为稳定性指标值,等等。采用本生成方式,能够提高稳定性指标值的生成效率。
获取方式三:针对线下测试用例集合中的任一线下测试用例,计算该线下测试用例的测试成功率以及真实失败率,根据测试成功率以及真实失败率生成该线下测试用例的稳定性指标值。具体地,可以根据测试成功率以及真实失败率及对应的权重得到稳定性指标值,从而从成功率以及真实失败率两个维度确定稳定性指标值。其中,该权重可以为固定权重,如测试成功率权重为0.6,真实失败率为0.4等等;又或者,测试成功率权重根据测试成功率的大小关系动态变化,真实失败率权重与测试成功率权重的和为固定值(比如1),具体可以建立不同的测试成功率范围与测试成功率权重的映射关系,根据该映射关系确定出相应的测试成功率权重,例如,在测试成功率高于预设比率阈值时,该测试成功率可以为0.7,在测试成功率低于或等于该预设比率阈值时,该测试成功率可以为0.4等等,即测试成功率较高时主要依据测试成功率得到稳定性指标值,在测试成功率较低时主要依据真实失败率得到稳定性指标值。采用本生成方式能够提高稳定性指标值的精度。
步骤S120,获取线上测试配置数据。
线上测试配置数据是为了使线上测试用例能够在线上环境中更加稳定高效地执行所依赖的配置数据。该线上环境又称为生产环境、真实环境、正式环境等,是测试对象为用户服务时所处的环境,也是真实用户参与的环境。线上测试用例是在线上环境中执行的测试用例。
在一种可选的实施方式中,线上测试配置数据包括以下数据中的至少一种:请求地址配置数据、身份权限配置数据、数据环境配置数据、以及测试参数配置数据。其中,请求地址配置参数具体包括处理线上测试请求的服务地址,例如,请求地址配置参数可以包括:处理线上测试请求的服务所在的机房信息和/或域名信息等等;身份权限配置数据是线上测试用例对应的用户身份校验和/或用户权限分配等配置数据,例如,用户身份校验配置数据可以包括对请求发起方进行身份校验以确定请求发起方是否为测试账号,又或者,用户权限分配配置数据可以是为测试账号仅分配读数据权限,对测试账号禁用写数据权限,又或者对测试账号禁用某部分内容的写数据权限等等;数据环境配置数据包括线上环境中的缓存、数据库、数据源、数据配置(如读数据格式、数量等)的相关配置;测试参数配置数据是线上测试时的测试要求或规范等,例如测试参数配置数据包括测试性能及容量配置,在测试性能及容量配置中可以指定线上测试用例的并发执行数目;测试参数配置数据还可以包括测试超时限制参数、失败重试次数、是否进行语音翻译、定时执行参数(如定时执行周期、定时执行时间等)等线上测试环境的相关要求等。
步骤S130,利用线上测试配置数据对第一线下测试用例进行修改,以得到线上测试用例。
利用步骤S120获得的线上测试配置对各个第一线下测试用例进行相应项的修改后得到线上测试用例,由于修改后得到的线上测试用例是根据线上测试配置生成的,由此生成的线上测试用例能够在线上环境中顺利执行。其中,生成的线上测试用例可以存储于线上测试用例集合中。
在一种可选的实施方式中,具体可以通过如下方式修改:将第一线下测试用例中的请求地址修改为线上测试配置数据中的请求地址配置数据,从而将测试用例的请求地址由线下环境中的服务地址变更为线上环境中的服务地址,则修改后的线上测试用例可以由线上环境中的服务设备处理其生成的请求,保障生成的线上测试用例能够在线上环境正常执行;和/或,为第一线下测试用例对应的用户绑定线上测试配置数据中的身份权限配置数据,从而对测试用户账号进行相应权限的限制,避免测试数据对线上正常业务造成不利影响;和/或,将第一线下测试用例中的数据环境配置变更为线上测试配置数据中的数据环境配置数据,从而由第一线下测试用例生成的线上测试用例能够正常访问线上环境中的缓存、数据库等;和/或,将第一线下测试用例中的测试参数配置变更为线上测试配置数据中的测试参数配置数据,例如将第一线下测试用例中的并发执行次数、定时执行时间、失败重试次数等变更为线上测试配置数据中相应的并发执行次数、定时执行时间以及失败重试次数等等。
在一种可选的实施方式中,为了保障减少线上测试对系统资源的过多消耗,节约系统资源,本实施例方式通过步骤S110-步骤S130获得候选线上测试用例,即利用线上测试配置数据对第一线下测试用例进行修改后得到各个候选线上测试用例,进一步根据候选线上测试用例的属性信息,从候选线上测试用例中筛选出在线上环境执行的线上测试用例,一方面减少线上环境中执行的线上测试用例,另一方面保障线上测试的稳定性。
该属性信息包括业务场景信息:具体地,可以预先划分不同的业务场景,每个业务场景可以对应于不同的重要等级,例如,可以将产品支付场景确定为L0等级,将商品加购场景确定为L1等级,将商品浏览场景确定为L2等级等等,并且业务场景对应的重要等级为:L0>L1>L2。每个候选线上测试用例的配置信息中包含了该候选线上测试用例应用的业务场景的相关信息(如场景名称、场景ID等等)。在线上测试过程中,可以提供业务场景圈定入口,通过该业务场景圈定入口可以输入目标业务场景的信息(如场景名称、场景ID、场景等级等),该目标业务场景可以是历史容易发生故障的场景,也可以是本次测试涉及到的场景,等等。则在根据业务场景信息筛选线上测试用例时,具体是将候选线上测试用例中的业务场景信息与目标业务场景的信息进行匹配,若相匹配,则确定该候选线上测试用例是可以在线上环境执行的线上测试用例;若不匹配,则过滤掉该候选线上测试用例。例如,若目标业务场景信息为L0及L1,则表明线上测试是对L0及L1业务场景进行测试,则将对应业务场景为L0和/或L1的候选线上测试用例作为可以在线上环境执行的线上测试用例。
和/或,该属性信息包括接口信息:具体地,在线上测试时为了保障线上业务的安全性,避免线上测试对正常线上业务的影响,可以配置接口限制名单(比如可以将注册接口、信息绑定接口等对线上业务影响较大的接口添加至接口限制名单中)或接口白名单(如商品陈列页展示接口等)。在根据接口信息筛选线上测试用例时,可以将候选测试用例的接口信息与接口限制名单进行匹配,若该候选测试用例与该接口限制名单相匹配,则剔除该候选测试用例,若该候选测试用例与该接口限制名单的各个接口均不匹配,则将该候选测试用例作为可执行的线上测试用例;又或者,将候选测试用例的接口信息与接口白名单进行匹配,若该候选测试用例与该接口限制名单相匹配,则将该候选测试用例作为可执行的线上测试用例,若该候选测试用例与该接口限制名单的各个接口均不匹配,则剔除该候选测试用例。从而保障后续筛选出的可执行的线上测试用例与线上测试的接口黑白名单相匹配,避免生成的线上测试用例对线上正常业务的干扰。
和/或,该属性信息包括操作权限信息:该操作权限信息包括读写权限信息,比如预先配置针对某操作对应的目标读写权限,若候选测试用例对该数据的读写权限与该目标读写权限相匹配,则确定该候选线上测试用例为可执行的线上测试用例,比如,在直播测试时,预先配置直播间送礼操作仅对测试直播间关联数据可以进行写操作,若候选测试用例中包含了针对非测试直播间的直播间送礼操作,则剔除该候选测试用例。
该操作权限还可以包括批操作流量权限,即预先配置目标批操作流量权限,若候选线上测试用例的批操作流量权限与该目标批操作流量权限相匹配,则确定该候选线上测试用例为可执行的线上测试用例;否则,剔除该候选线上测试用例。例如,为了减少对线上正常业务的影响,可以设定目标批操作流量的最大值为M,若候选线上测试用例的批操作流量值大于该M,则剔除该候选线上测试用例;若候选线上测试用例不涉及批操作,或批操作流量值小于或等于该M,则确定该候选线上测试用例为可执行的线上测试用例。
在又一种可选的实施方式中,可以为线上测试用例分配不同类型的测试用户账号,即可执行的线上测试用例对应的测试用例账号的类型比例符合预设比例。例如,可以预先构建不同类型的测试用户账号,如A类型测试账号、B类型测试账号、C类型测试账号等。并为线上测试用例挂载相应比例类型的测试用例账号,如A类型测试账号对应的线上测试用例的比例占线上测试用例总量的5%等等。
进一步可选的,在上述目标业务场景信息、接口限制名单、接口白名单、目标批操作流量权限、目标读写权限等发生变更时,可以生成相应的校验信息以便通过人工等方式确定变更后的数据是否可行。
在一种可选的实施方式中,检测到针对第一线下测试用例的变更事件,获取变更事件对应的变更数据,该变更数据具体包含了第一线下测试用例中变更的数据项以及该数据项对应的变更后的内容;利用变更数据更新由第一线下测试用例生成的线上测试用例,从而实现线下线上测试用例的同步变更,保障生成的线上测试用例能够随线下测试用例的变化而变化。
生成的线上测试用例可以在线上环境中稳定执行以进行线上测试。在线上测试过程中可以监控测试对象,以确定测试对象存在的漏洞。
由此可见,本发明实施例提供的测试方法中,可以将线下测试用例转换为可以在线上执行的线上测试用例,从而实现线上测试用例的自动化生成,提高线上测试用例的生成效率以及节约人工成本。
实施例二
图2示出了本发明实施例二提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种线上测试用例的生成方法。
具体地,如图2所示,从线下自动化测试用例库中选取线下测试用例,根据该线下测试用例在线下环境的测试结果对该线下测试用例进行稳定性确认,若该线下测试用例的稳定性指标符合预设条件(比如大于预设阈值或者稳定性指标值由大到小排列时处于前N个),则将该线下测试用例作为第一线下测试用例,通过线上测试配置数据对该第一线下测试用例的机房域名调整(例如修改处理的服务机房或域名)、用户信息校验调整(例如为该用例分配用户权限等)、数据环境调整(如修改缓存、数据库信息等)、性能和容量调整(如修改并发执行数量等)、环境配置参数修改(如调整用例的超时限制、失败重试次数、定时执行信息等),修改后加入线上自动化测试用例集合,进而通过核心场景圈定(如基于业务场景信息过滤)、配置过滤(如基于接口信息、操作权限信息过滤)后得到可执行的线上测试用例,并进行稳定线上监控。
由此可见,本发明实施例提供的测试方法中,可以将线下测试用例转换为可以在线上执行的线上测试用例,从而实现线上测试用例的自动化生成,提高线上测试用例的生成效率以及节约人工成本;并且,通过相应的筛选得到可执行的线上测试用例,从而节约系统资源。
实施例三
图3示出了本发明实施例三提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种线下测试用例的生成方法。
具体地,如图3所示,该方法包括:
步骤S310,获取线上流量数据。
线上流量数据是相应时段内线上环境中的请求数据。例如,一条线上流量数据可以是在线上环境中的一条请求数据,该线上流量数据中包含了请求头、请求类型、请求用户信息、访问地址、访问接口、访问功能、数据传输数据、请求对应的响应等等。
在具体实施过程中,可以通过流量录制工具对线上环境中的请求数据进行录制,从而得到相应的线上流量数据。
步骤S320,从线上流量数据中提取第一测试特征。
线上流量数据中包含丰富的数据,从该线上流量数据中提取与测试相关的数据便是第一测试特征。
在一种可选的实施方式中,第一测试特征包括以下数据中的至少一种:终端特征、请求用户身份特征、请求功能特征、传输数据特征、请求地址特征、请求时间特征、数据传输特征以及响应特征等等。其中,终端特征为发起请求的终端的相关信息(如设备类型、使用的操作系统信息等);请求用户身份特征是指发起线上请求的用户的身份信息,该用户身份信息包括但不限于用户账号、用户等级;请求功能特征是请求访问的测试对象的功能的信息(如功能的ID或名称等);数据传输特征是上行或下行数据传输所需带宽、采用的传输方式、传输的内容等;请求地址特征是请求所访问的服务的地址信息;响应特征是针对请求的响应方式等等;请求时间特征是发起请求的时间等。此外,若一些线上流量数据为加密数据,则对加密数据解密后还原出原有的线下流量数据。
在一种可选的实施方式中,在从线上流量数据中初步提取出第一测试特征之后,可以对初步提取出的第一测试特征进行预处理,后续依据预处理后的第一测试特征生成第三线下测试用例,从而减少后续步骤的数据处理量,节约系统资源。该预处理过程包括但不限于:数据过滤、数据聚合、数据压缩、以及格式转换等等。其中,数据过滤具体是过滤掉数据异常、格式异常等异常的第一测试特征;数据聚合是指多个相近或相似的特征数据整合为一个特征数据(例如,将系统版本V1.1.1和系统版本V1.1.2整合为特征数据V1.1);数据压缩具体是针对数据量较大的第一测试特征进行压缩处理,从而减少数据存储及传输开销;数据格式转换是按照线下测试数据格式对特征数据进行格式统一化处理。
步骤S330,从线下测试用例集合中获取第二线下测试用例。
第二线下测试用例是需要与第一测试特征结合的线下测试用例,也是生成第三线下测试用例的基础。
本发明实施例对具体的第二线下测试用例的筛选方式不作限定,例如,可以提供响应的配置入口,通过该配置入口可以输入第二线下测试用例的筛选条件。例如,筛选条件可以包括场景筛选条件,即从线下测试用例集合中筛选出指定业务场景的线下测试用例作为第二线下测试用例;筛选条件还可以包括时间筛选条件,即筛选生成时间处于预设时段内的线下测试用例作为第二线下测试用例;筛选条件还可以包括稳定性筛选条件,即筛选出稳定性指标值符合预设需求的线上测试用例作为第二线下测试用例,等等。
步骤S340,根据第一测试特征以及第二线下测试用例生成第三线下测试用例。
具体地,利用第一测试特征替换第二线下测试用例中相应字段内容后得到第三线下测试用例。例如,步骤S320中存在一个当前线下测试用例未使用过的终端特征,则可以将该用户特征替换某个第二线下测试用例中的终端信息,从而生成一个新的线下测试用例,即第三线下测试用例;又或者,步骤S320包含请求时间特征,则可以利用该请求时间特征修改第二线下测试用例中的定时触发时间等,以保证生成的第三线下测试用例的时间戳的精准度;又或者,步骤S320包含请求地址特征,但由于该请求地址特征通常对应于线上环境的线上服务地址,由此可以获取与该请求地址特征具有映射关系的线下地址,例如,可以查找与该线上服务地址处于同一集群和/或同一大区的测试环境的线下服务地址作为该请求地址特征映射的线下地址,进而利用该线下地址替换第二线下测试用例中的请求地址,以生成第三线下测试用例;又或者,步骤S320包含请求用户身份特征中的用户账号,若该用户账号已过期,则调整该用户账号的有效期限,又或者将该用户账号替换为测试用户账号等等;此外,若一些特征数据对应有加密属性,则在利用特征数据对第二线下测试用例替换后对替换的字段进行加密处理后得到加密结果,并在该第二线下测试用例的相应字段记录该加密结果,以模拟出真实的线上访问情况。
生成的第三线下测试用例能够与线上实际的请求相适配,该生成的第三测试用例可以加入线下测试用例集合中,扩充线下测试用例的覆盖范围。
由此可见,本发明实施例提供的测试方法中,可以根据线上流量数据与第二线下测试用例结合来得到第三线下测试用例,从而实现线下测试用例的自动化生成,扩充线下测试用例库,提高线下测试的覆盖范围,提升线下测试用例的生成效率、测试精度以及节约人工成本。
实施例四
图4示出了本发明实施例四提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种线下测试用例的生成方法。
具体地,如图4所示,在线上环境中利用流量录制回放平台获得线上流量数据,该线上流量数据包括请求响应、功能交互、数据传输等等,通过对线上流量数据进行特征提取得到第一测试特征,将第一测试特征加入线上测试数据集中;进一步结合线下自动化测试用例需求从线下测试用例中筛选出关联测试数据(即第二线下测试用例),并通过数据清洗(例如剔除与线上环境关联的相关信息,比如将线上服务地址替换为线下服务地址,将线上时间戳信息替换为线下时间戳信息)、数据预处理(例如对过期账号进行处理、对需要加密的数据进行加密处理等)、降噪优化(例如数据过滤、数据聚合、数据压缩、格式转换等)后实现线上的第一测试特征与第二线下测试用例的融合,即生成第三线下测试用例,将该第三线下测试用例加入线下测试数据集中。此外,人工提供的特殊测试数据(包括人工编译的线下测试用例)和既有线下测试数据(通过相应自动化生成方式已生成的线下测试用例)也可以加入该线下测试数据集中,以扩充线下测试数据集,提高线下测试的覆盖率。
由此可见,本发明实施例提供的测试方法中,可以根据线上流量数据与第二线下测试用例结合来得到第三线下测试用例,实现线下测试用例的自动化生成,提升线下测试用例的生成效率及节约人工成本;而且能够和人工编译及已有的线下测试用例结合来扩充线下测试用例库,提高线下测试的覆盖范围。
实施例五
图5示出了本发明实施例五提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种基于人工测试用例生成自动化测试用例的方法。
具体地,如图5所示,该方法包括如下步骤:
步骤S510,获取人工测试用例。
人工测试用例又称手工测试用例,是人工编译生成的测试用例。在实际的实施过程中,因编译人员的编译习惯等不同会导致生成的人工测试用例存在冗余或不规范等情况,不利于对测试用例的管理与维护。本发明实施例中获取任一人工测试用例,通过后续步骤将该人工测试用例转换为相应的自动化测试用例。
步骤S520,利用第一语义识别模型提取人工测试用例中的第二测试特征。
从人工测试用例中提取出的测试特征为第二测试特征。第二测试特征具体可以通过预先训练好的第一语义识别模型提取。
具体地,预先构建第一语义识别模型,该第一语义识别模型可以基于大语义模型构建。并可以采用机器学习算法以及测试用例规范等样本数据对该第一语义识别模型进行训练,待满足相应的训练结束条件时结束训练以获得训练好的第一语义识别模型。
利用训练好的第一语义识别模型对人工测试用例进行语义识别,以从该人工测试用例中提取出第二测试特征。该第二测试特征包括但不限于:输入参数、预期输出、执行目标、执行步骤、执行时间、和/或特定要求配等。
步骤S530,利用模板转化模型对第二测试特征处理后生成自动化测试用例。
具体地,预先构建模板转化模型,该模型可以基于大语言模型构建,该模板转化模型学习了大量的自动化测试用例模板,每个自动化测试用例模板包含了执行顺序代码、接口输出格式等信息。并利用机器学习算法对模板转化模型进行模型训练以得到训练好的模板转化模块。
训练好的模板转换模块能够确定出与该人工测试用例中第二测试特征匹配的自动化测试用例模板,并可以将第二测试特征填充至该自动化测试用例模板相应字段后得到自动化测试用例。例如,人工测试用例包含了打开软件操作,则对应生成的自动化测试用例可以包括软件启动操作;人工测试用例包含了点击视频操作,则对应生成的自动化测试用例可以包括指定视频的元素定位并模拟点击操作等。另外,自动化测试用例还可以包括视频启播的断言操作等等。
在一种可选的实施方式中,为了简化模板转化模型的处理过程,利用模板转换模型的自动化测试用例对应的功能有限,例如,利用模板转换模型的自动化测试用例通常仅对应单个功能。为了满足复杂的测试需求以及便于对测试用例的维护及管理,可以将关联的多个自动化测试用例聚合为一个自动化测试用例。在具体实施时,可以确定自动化测试用例对应的功能,将具有功能关联的多个自动化测试用例聚合为一个自动化测试用例,例如,将视频播放功能的自动化测试用例与自动登录功能的自动化测试用例聚合后生成自动登录后播放视频的测试需求。
在一种可选的实施方式中,在利用模板转化模型对第二测试特征处理后生成自动化测试用例之后,进一步对生成的自动化测试用例进行复用性校验,即判断生成的自动化测试用例是否可以用于后续测试中。具体地,在第一预设时段运行自动化测试用例以及该自动化测试用例对应的人工测试用例,获取在第一预设时间段自动化测试用例的第一测试指标值,以及获取第一预设时间段自动化测试用例对应的人工测试用例的第二测试指标值;若第一测试指标值与第二测试指标值一致,则将自动化测试用例作为能够复用的自动化测试用例。可以将该自动化测试用例加入线下测试用例集合中,后续在进行线下测试时可以利用该生成的自动化测试用例进行测试。其中,测试指标值包括:各类覆盖率(如接口覆盖率、代码覆盖率、功能覆盖率)以及测试结果(测试成功率或测试失败率,在测试失败时还包括具体的失败详情数据等)。例如,在预设时段内同时运行人工测试用例A以及由该人工测试用例A生成的自动化测试用例B,并且获取在该预设时段内人工测试用例A的第二测试指标值以及自动化测试用例B的第一测试指标值。若第一测试指标值与第二测试指标值相一致,表明自动化测试用例B与人工测试用例A具有相同的测试效果,则自动化测试用例B可以取代人工测试用例A进行后续的测试。
由此可见,本发明实施例提供的测试方法中,可以通过第一语义识别模型以及模板转化模型将人工测试用例转换为自动化测试用例,从而便于对测试用例的管理及维护,降低系统冗余。
实施例六
图6示出了本发明实施例六提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种基于人工测试用例生成自动化测试用例的方法。
具体地,如图6所示,增量手工测试用例和存储手工测试用例均可以作为手工测试用例的来源;手工测试用例通过大语言模型中的特定语义理解模型后提取出第二测试特征,如输入参数、预期参数、执行步骤、执行范围、指定接口等等,该特定语义理解模型以测试用例规范等作为样本数据进行训练;提取出的第二测试特征输入大语言模型中的模板转化模型中,该模板转化模型以大量的脚本模板作为样本数据进行训练,通过模板转化模型可以输出自动化测试脚本进而得到测试代码以及自动化测试用例。进一步将自动化测试用例和手工测试用例并行执行以进行稳定优化,在自动化测试用例与手工测试用例的测试结果一致的情况下确定生成的自动化测试用例满足稳定性需求,进而将该自动化测试用例加入线下自动化测试用例库中以供后续的测试。
由此可见,本发明实施例提供的测试方法中,可以通过第一语义识别模型以及模板转化模型将人工测试用例转换为自动化测试用例,从而便于对测试用例的管理及维护,降低系统冗余。
实施例七
图7示出了本发明实施例七提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种对不同来源的自动化测试用例进行标准化处理的方法。
具体地,如图7所示,该方法包括如下步骤:
步骤S710,获取不同来源的多个自动化测试用例。
在实际的实施过程中,可以通过不同渠道生成自动化测试用例,例如不同团队生成的自动化测试用例,又或者采用不同的自动化测试用例生成工具生成的自动化测试用例,还可以采用本发明实施例五或六生成自动化测试用例,等等。该不同来源的自动化测试用例因各自渠道设置不同等,往往会存在组织模式、格式等不统一的情况,从而不利于对自动化测试用例的维护及管理。
本发明实施例获取不同渠道生成的多个自动化测试用例,通过对自动化测试用例进行标准化处理来得到组织模式、格式等统一的标准化的自动化测试用例,即生成标准自动化测试用例。
步骤S720,采用第二语义识别模型提取各个自动化测试用例的第三测试特征。
针对于每个获取到的自动化测试用例,从该自动化测试用例中提取出的测试特征便是第三测试特征,即第三测试特征是从自动化测试用例中提取出的。在提取时具体可以采用第二语义识别模型生成,该第二语义识别模型可以为大语言模型,其可以根据不同来源的自动化测试用例的用例模板作为训练样本,并采用机器学习算法进行训练获得。
在一种可选的实施方式中,第三测试特征包括以下特征中的至少一种:执行业务范围、执行步骤、输入参数、以及预计输出等等。
步骤S730,将具有相同的第三测试特征的自动化测试用例加入同一筛选集合中,并在筛选集合包含的自动化测试用例的数量大于预设数量时,从筛选集合中剔除至少一个自动化测试用例,以使得剔除后所述筛选集合包含的自动化测试用例的数量小于或等于预设数量。
本步骤利用第三测试特征进行自动化测试用例的去重处理,以降低自动化测试用例的冗余,节约系统资源。
在具体的实施过程中,将具有相同的第三测试特征的自动化测试用例加入同一筛选集合中。在一些情况下,某自动化测试用例的第三测试特征与其他自动化测试用例的第三测试特征均不相同,则将该自动化测试用例加入独立的筛选集合中,即保障每个自动化测试用例均对应于一个筛选集合,筛选集合中包含的所有自动化测试用例的第三测试特征是相同的。
若某筛选集合包含的自动化测试用例的数量大于预设数量,从该筛选集合中剔除至少一个自动化测试用例,以使得剔除后该筛选集合包含的自动化测试用例的数量小于或等于预设数量。从而使得剔除处理后各个筛选集合包含的自动化测试用例的数量控制在预设数量以内,该预设数量可以为1等等。由此实现自动化测试用例的去重。
步骤S740,对各个筛选集合中的自动化测试用例进行标准化处理,以生成相应的标准自动化测试用例。
本发明实施例对不同来源的自动化测试用例进行标准化处理,标准化处理后生成的自动化测试用例便是标准自动化测试用例。具体地,从各个筛选集合中获取自动化测试用例,以对该自动化测试用例进行标准化处理。在具体的实施过程中,利用预先定义的用例格式标准、结构组织标准、命名规则、参数标准、断言类型标准、日志准则、执行方式等对自动化测试用例的各个部分进行标准化处理。
在一种可选的实施方式中,在生成自动化测试用例之后,进一步对标准自动化测试用例进行复用性校验,即判断生成的标准自动化测试用例是否可以用于后续测试中。具体地,在第二预设时段内运行自动化测试用例以及由该自动化测试用例生成的标准自动化测试用例,获取在第二预设时间段内自动化测试用例的第三测试指标值,以及获取在第二预设时间段内自动化测试用例对应的标准自动化测试用例的第四测试指标值;若第三测试指标值与第四测试指标值一致,则将标准自动化测试用例作为能够复用的标准自动化测试用例。其中,测试指标值包括:各类覆盖率(如接口覆盖率、代码覆盖率、功能覆盖率)以及测试结果(测试成功率或测试失败率,在测试失败时还包括具体的失败详情数据等),等等。
由此可见,本发明实施例提供的测试方法中,可以对不同来源的自动化测试用例进行标准化处理,从而便于对自动化测试用例的维护及管理;而且,本发明实施例还根据自动化测试用例的第三测试特征来剔除冗余自动化测试用例,从而减少需要维护的自动化测试用例的数量,节约系统资源。
实施例八
图8示出了本发明实施例八提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种对不同来源的自动化测试用例进行标准化处理的方法。
具体地,如图8所示,不同来源的自动化测试用例(研发A团队、研发B团队、测试A团队、测试B团队)通过大语言模型进行特征提取与比对,从而提取得到自动化测试用例的第三测试特征。其中,该大语言模型根据自动化测试用例标准(如用例格式、结构组织、命名规则、参数标准、日志准则、执行方式)训练得到。提取出的第三测试特征可以包括业务范围、输入参数、预计输入、执行步骤等。进一步对自动化测试用例进行去重和冗余消除后对剩余的自动化测试用例进行标准化转化。针对无法自动标准化转化的自动化测试用例可以通过手工转化进行。经过标准化转化后得到标准自动化测试用例。进一步通过稳定优化来确定标准自动化测试用例是否为能够复用的测试用例。
由此可见,本发明实施例提供的测试方法中,可以对不同来源的自动化测试用例进行标准化处理,从而便于对自动化测试用例的维护及管理;而且,本发明实施例还根据自动化测试用例的第三测试特征的相似度来剔除冗余自动化测试用例,从而减少需要维护的自动化测试用例的数量,节约系统资源。
实施例九
图9示出了本发明实施例九提供的一种测试方法的流程示意图。其中,本实施例具体提供了一种线上测试的监控方法。
具体地,如图9所示,在线上测试过程中,可以提供相应的配置入口,通过该配置入口可以配置采样频率、告警阈值、核心场景单独告警、项目分组等等。
采样频率是控制线上测试过程中的数据采集周期,采样频率越高,则数据采集周期越短,该采样频率可以根据线上测试用例涉及的接口流量大小调整,流量越大则采用频率越高。另外,采样频率还可以根据线上测试用例涉及的具体业务相关,例如视频投稿功能会涉及审核等步骤,如果采样频率过高会对下游审核带来较多干扰,从而可以降低采样频率。
告警阈值是线上环境中配置的一种阈值,在一些监控指标超过相应阈值时会触发告警的生成。其中,该告警阈值可以根据实际的项目情况自行设置,本发明实施例对告警阈值的具体设置方式不作限定。此外,可以针对不同的场景设置不同的告警阈值,例如,在L0级别的重要场景(如充值场景等)中,可以在监测到错误信息后立即生成告警信息,而无需进行阈值判断。
生成的告警数据可以根据告警的等级采用不同的发送方式,例如可以通过邮件、微信、短信等方式发送至相应的处理端。其中,还可以配置告警数据发送的范围,例如可以仅针对某些特定项目或特定处理端进行告警数据的发送。此外,还可以获取历史告警数据,历史告警数据包括了告警类型、触发时间、解决措施等,从而便于对新的告警进行准确和及时的处理。
此外,在一些可选的实施例中,在线上测试和线下测试过程中可以生成详细的测试记录,线上测试记录(线上监控记录)中包含请求及响应数据,如请求参数、响应事件、错误码等,从而便于对异常的识别、定位及处理;线下测试记录包含了每次线下测试的执行信息,该执行信息包括测试用例的通过和失败情况,代码覆盖率、场景覆盖率等性能指标,从而便于对测试对象中漏洞的挖掘。
由此可见,本发明实施例提供的测试方法中,在线上测试时可以灵活进行告警配置,满足不同的线上监控需求。
实施例十
图10示出了本发明实施例十提供的一种测试方法的流程示意图。
具体地,如图10所示,将存量手工测试用例通过智能识别转化功能转换为自动化测试用例,并加入线下自动化测试用例库中,以及各来源自动化测试用例通过测试用例标准化功能生成标准自动化用例,并加入线下自动化测试用例库中。
线下测试用例库中的线下测试用例通过自动化测试用例线下环境自适应功能转换为线上测试用例,并加入线上自动化测试用例集合中。线上自动化测试用例集合中的线下测试用例通过核心场景圈定配置过滤等对符合要求的线上测试用例进行筛选。筛选出的线上测试用例可以在线上环境中稳定线上监控以进行线上测试。在线上监控过程中可以通过相应的监控策略触发监控报警以及告警通知。
流量录制回放平台获取线上环境的线上流量数据,通过测试数据线下环境自适应功能将线上流量数据与线下测试用例结合后得到新的线下测试用例,即得到测试数据集,并将生成的线下测试用例加入线下自动化测试用例库中。线下自动化测试用例库中的线下测试用例可以在线下环境中进行测试。
由此可见,本发明实施例提供的测试方法中,能够将线下测试用例转换为线上测试用例,扩充线上测试用例库;还可以将线上流量数据与线下测试用例结合生成新的线下测试用例,扩充线下测试用例库;还可以将手工测试用例转换为自动化测试用例,以及将多来源的自动化用例转换为标准自动化测试用例,从而便于对测试用例的维护及管理;而且还可以通过线上监控及时发掘线上存在的漏洞,便于对漏洞的定位与处理。
实施例十一
图11示出了本发明实施例十一提供的一种测试装置的结构示意图。如图11所示,测试装置1100包括:用例获取模块1110、数据获取模块1120、以及转换模块1130。
用例获取模块1110,用于从线下测试用例集合中获取第一线下测试用例;
数据获取模块1120,用于获取线上测试配置数据;
转换模块1130,用于利用所述线上测试配置数据对所述第一线下测试用例进行修改,以得到线上测试用例。
在一种可选的实施方式中,用例获取模块用于:根据所述线下测试用例集合中线下测试用例的稳定性指标值,从所述线下测试用例集合中获取第一线下测试用例。
在一种可选的实施方式中,用例获取模块用于:针对所述线下测试用例集合中的任一线下测试用例,计算该线下测试用例的测试成功率,根据所述测试成功率生成该线下测试用例的稳定性指标值;和/或,计算该线下测试用例的真实失败率,根据所述真实失败率生成该测试用例的稳定性指标值。
在一种可选的实施方式中,转换模块用于:利用所述线上测试配置数据对所述第一线下测试用例进行修改后得到候选线上测试用例;根据所述候选线上测试用例的属性信息,从所述候选线上测试用例中筛选出在线上环境执行的线上测试用例;其中,所述属性信息包括如下信息中的至少一种:业务场景信息、接口信息、以及操作权限信息。
在一种可选的实施方式中,该装置还包括:更新模块,用于检测到针对所述第一线下测试用例的变更事件,获取所述变更事件对应的变更数据;利用所述变更数据更新由所述第一线下测试用例生成的线上测试用例。
在一种可选的实施方式中,该装置还包括:线上转线下模块,用于获取线上流量数据,从所述线上流量数据中提取第一测试特征;从所述线下测试用例集合中获取第二线下测试用例;根据所述第一测试特征以及所述第二线下测试用例生成第三线下测试用例。
在一种可选的实施方式中,该装置还包括:人工转自动化模块,用于获取人工测试用例;利用第一语义识别模型提取所述人工测试用例中的第二测试特征;利用模板转化模型对所述第二测试特征处理后生成自动化测试用例。
在一种可选的实施方式中,人工转自动化模块用于:确定所述自动化测试用例对应的功能;将具有功能关联的多个自动化测试用例聚合为一个自动化测试用例。
在一种可选的实施方式中,人工转自动化模块用于:在第一预设时段运行所述自动化测试用例以及所述自动化测试用例对应的人工测试用例;获取在第一预设时间段所述自动化测试用例的第一测试指标值,以及获取在所述第一预设时间段所述自动化测试用例对应的人工测试用例的第二测试指标值;若所述第一测试指标值与所述第二测试指标值一致,则将所述自动化测试用例作为能够复用的自动化测试用例。
在一种可选的实施方式中,该装置还包括:标准化模块,用于获取不同来源的多个自动化测试用例;对所述自动化测试用例进行标准化处理,以生成相应的标准自动化测试用例。
在一种可选的实施方式中,标准化模块用于:采用第二语义识别模型提取各个自动化测试用例的第三测试特征;将具有相同的第三测试特征的自动化测试用例加入同一筛选集合中,并在筛选集合包含的自动化测试用例的数量大于预设数量时,从所述筛选集合中剔除至少一个自动化测试用例,以使得剔除后所述筛选集合包含的自动化测试用例的数量小于或等于预设数量;所述对自动化测试用例进行标准化处理,以生成相应的标准自动化测试用例进一步包括:对各个筛选集合中的自动化测试用例进行标准化处理,以生成相应的标准自动化测试用例。
在一种可选的实施方式中,标准化模块用于:在第二预设时段运行所述自动化测试用例以及由所述自动化测试用例生成的标准自动化测试用例;获取在第二预设时间段所述自动化测试用例的第三测试指标值,以及获取在所述第二预设时间段由所述自动化测试用例生成的标准自动化测试用例的第四测试指标值;若所述第三测试指标值与所述第四测试指标值一致,则将所述标准自动化测试用例作为能够复用的标准自动化测试用例。
由此可见,本发明实施例提供的测试装置中,可以将线下测试用例转换为可以在线上环境运行的线上测试用例,从而实现线上测试用例的自动化生成,提高线上测试用例的生成效率以及节约人工成本。
实施例十二
图12示出了本发明实施例提供的一种计算设备的结构示意图。本发明实施例具体实施例并不对计算设备的具体实现做限定。
如图12所示,该计算设备可以包括:处理器1202、通信接口1204、存储器1206、以及通信总线1208。其中:处理器1202、通信接口1204、以及存储器1206通过通信总线1208完成相互间的通信。通信接口1204,用于与其它设备比如客户端或其它服务器等的网元通信。处理器1202,用于执行程序1210,具体可以执行上述用于测试方法实施例中的相关步骤。
具体地,程序1210可以包括程序代码,该程序代码包括计算机操作指令。处理器1202可能是中央处理器CPU,或者是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。存储器1206,用于存放程序1210。存储器1206可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。程序1210具体可以用于使得处理器1202执行上述任一方法实施例中的方法。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的测试方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明实施例并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明实施例的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明实施例进行说明而不是对本发明实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (12)

1.一种测试方法,其特征在于,包括:
从线下测试用例集合中获取第一线下测试用例;
获取线上测试配置数据;
利用所述线上测试配置数据对所述第一线下测试用例进行修改,以得到线上测试用例。
2.根据权利要求1所述的方法,其特征在于,所述从线下测试用例集合中获取第一线下测试用例进一步包括:
根据所述线下测试用例集合中线下测试用例的稳定性指标值,从所述线下测试用例集合中获取第一线下测试用例。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述线下测试用例集合中线下测试用例的稳定性指标值,从所述线下测试用例集合中获取第一线下测试用例之前,所述方法还包括:
针对所述线下测试用例集合中的任一线下测试用例,计算该线下测试用例的测试成功率,根据所述测试成功率生成该线下测试用例的稳定性指标值;
和/或,计算该线下测试用例的真实失败率,根据所述真实失败率生成该测试用例的稳定性指标值。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述利用所述线上测试配置数据对所述第一线下测试用例进行修改,以得到线上测试用例进一步包括:利用所述线上测试配置数据对所述第一线下测试用例进行修改后得到候选线上测试用例;
所述方法还包括:根据所述候选线上测试用例的属性信息,从所述候选线上测试用例中筛选出在线上环境执行的线上测试用例;
其中,所述属性信息包括如下信息中的至少一种:业务场景信息、接口信息、以及操作权限信息。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
检测到针对所述第一线下测试用例的变更事件,获取所述变更事件对应的变更数据;
利用所述变更数据更新由所述第一线下测试用例生成的线上测试用例。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
获取线上流量数据,从所述线上流量数据中提取第一测试特征;
从所述线下测试用例集合中获取第二线下测试用例;
根据所述第一测试特征以及所述第二线下测试用例生成第三线下测试用例。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
获取人工测试用例;
利用第一语义识别模型提取所述人工测试用例中的第二测试特征;
利用模板转化模型对所述第二测试特征处理后生成自动化测试用例。
8.根据权利要求7所述的方法,其特征在于,在所述利用模板转化模型对所述第二测试特征处理后生成自动化测试用例之后,所述方法还包括:
确定所述自动化测试用例对应的功能;
将具有功能关联的多个自动化测试用例聚合为一个自动化测试用例。
9.根据权利要求7或8所述的方法,其特征在于,在所述利用模板转化模型对所述第二测试特征处理后生成自动化测试用例之后,所述方法还包括:
在第一预设时段运行所述自动化测试用例以及所述自动化测试用例对应的人工测试用例;
获取在第一预设时间段所述自动化测试用例的第一测试指标值,以及获取在所述第一预设时间段所述自动化测试用例对应的人工测试用例的第二测试指标值;
若所述第一测试指标值与所述第二测试指标值一致,则将所述自动化测试用例作为能够复用的自动化测试用例。
10.一种测试装置,其特征在于,包括:
用例获取模块,用于从线下测试用例集合中获取第一线下测试用例;
数据获取模块,用于获取线上测试配置数据;
转换模块,用于利用所述线上测试配置数据对所述第一线下测试用例进行修改,以得到线上测试用例。
11.一种计算设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-9中任一项所述的测试方法对应的操作。
12.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-9中任一项所述的测试方法对应的操作。
CN202311715400.6A 2023-12-13 2023-12-13 测试方法、装置、计算设备及存储介质 Pending CN117632763A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311715400.6A CN117632763A (zh) 2023-12-13 2023-12-13 测试方法、装置、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311715400.6A CN117632763A (zh) 2023-12-13 2023-12-13 测试方法、装置、计算设备及存储介质

Publications (1)

Publication Number Publication Date
CN117632763A true CN117632763A (zh) 2024-03-01

Family

ID=90025225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311715400.6A Pending CN117632763A (zh) 2023-12-13 2023-12-13 测试方法、装置、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN117632763A (zh)

Similar Documents

Publication Publication Date Title
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及系统
US20170109657A1 (en) Machine Learning-Based Model for Identifying Executions of a Business Process
CN107818150B (zh) 一种日志审计方法及装置
US10637714B2 (en) Proactive fault detection and diagnostics for networked node transaction events
US20170109676A1 (en) Generation of Candidate Sequences Using Links Between Nonconsecutively Performed Steps of a Business Process
US20170109668A1 (en) Model for Linking Between Nonconsecutively Performed Steps in a Business Process
CN111400186B (zh) 性能测试方法及系统
US20170109667A1 (en) Automaton-Based Identification of Executions of a Business Process
US20170109636A1 (en) Crowd-Based Model for Identifying Executions of a Business Process
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
CN111210842B (zh) 语音质检方法、装置、终端及计算机可读存储介质
CN111858251B (zh) 一种基于大数据计算技术的数据安全审计方法及系统
CN113656245B (zh) 数据的巡检方法、装置、存储介质及处理器
US20170109638A1 (en) Ensemble-Based Identification of Executions of a Business Process
US20170083815A1 (en) Current behavior evaluation with multiple process models
US20170109640A1 (en) Generation of Candidate Sequences Using Crowd-Based Seeds of Commonly-Performed Steps of a Business Process
CN114116496A (zh) 自动化测试方法、装置、设备及介质
JP4627539B2 (ja) 負荷試験システムおよび負荷試験データ作成方法、ならびにそのプログラム
CN115061924A (zh) 自动化测试案例的生成方法、生成装置
CN117667305A (zh) 基于业务场景的安全策略的部署方法、装置及电子设备
US20170109637A1 (en) Crowd-Based Model for Identifying Nonconsecutive Executions of a Business Process
US20170109670A1 (en) Crowd-Based Patterns for Identifying Executions of Business Processes
CN116303380B (zh) 一种监测业务中的数据质量校验方法、设备及介质
CN110413500B (zh) 基于大数据融合的故障分析方法及装置
CN116257404A (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