CN115328784A - 一种面向敏捷接口的自动化测试方法及系统 - Google Patents

一种面向敏捷接口的自动化测试方法及系统 Download PDF

Info

Publication number
CN115328784A
CN115328784A CN202210980741.5A CN202210980741A CN115328784A CN 115328784 A CN115328784 A CN 115328784A CN 202210980741 A CN202210980741 A CN 202210980741A CN 115328784 A CN115328784 A CN 115328784A
Authority
CN
China
Prior art keywords
test
interface
case
test case
agile
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
CN202210980741.5A
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.)
Anhui University Of Technology Science Park Co ltd
Original Assignee
Anhui University Of Technology Science Park 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 Anhui University Of Technology Science Park Co ltd filed Critical Anhui University Of Technology Science Park Co ltd
Priority to CN202210980741.5A priority Critical patent/CN115328784A/zh
Publication of CN115328784A publication Critical patent/CN115328784A/zh
Pending legal-status Critical Current

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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供的面向敏捷接口的自动化测试方法及系统,涉及接口测试领域;该方法包括:在持续集成系统中配置测试计划,执行测试任务;基于上游原始数据,获取被测服务接口信息;对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例;选取测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;获取测试用例运行结果,生成测试报告并推送消息至人工审核;评估测试方法的有效性。本发明无需测试人员复杂操作,就可以辅助其快速完成测试工作,提升测试质效。

Description

一种面向敏捷接口的自动化测试方法及系统
技术领域
本发明涉及接口测试技术领域,具体涉及一种面向敏捷接口的自动化测试方法及系统。
背景技术
随着全行业数字化转型的推进,业务发展和IT基础服务支撑都进入了快车道。DevOps工具链的贯通、敏捷开发、持续交付等对测试交付能力提出了更高的要求,分布式技术、微服务使得系统间的关系呈指数级增长,拓展了测试的深度和广度,测试职能的进一步健全,使得测试部门要全面承载功能测试、性能测试、安全测试等内容,严峻的形式倒逼测试部门要加快思维转变、技术创新和方法创新,自动化测试成为了测试部门的必然选择。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,自动化测试能够将测试人员从简单、重复、枯燥的手工测试中解放出来、节省人力成本,速断回归测试时间,提高测试交付效率。而在自动化测试中,接口测试是一个投入产出比比较高的一种测试自动化形式,其提供的解决方案具有自动化性强,持续集成度高等特点。例如,若系统A依赖于系统B,当因系统A的改动而引起系统B出现问题时,通过接口自动化测试,能快速定位问题并及时修复。
例如,专利申请CN108681507A提出的实现RESTful API和web service服务自动化测试方法,其方法接口测试复杂的参数构造以及繁杂的断言内容使得测试用例的书写准备仍需要大量人工投入,多数工作集中在了从浏览器复制粘贴接口参数,或者从接口定义文档中手工录入参数;在初期,测试的自动化占比几乎为0%。又如,专利申请CN111651342A公开的基于Charles录制会话的HTTP接口自动化测试框架,该框架通过流量录制将接口数据捕获存储起来,自动化生成接口测试用例,提高测试效率,但是流量录制后仍需要进行数据包的重组和解析,还需要全量抓包解析再进行筛选,无法结合业务逻辑进行细粒度定制化的采样。又如,专利申请CN112181852A公开的接口自动化测试方法,其流程中缺少测试结果的质量评估工作,无法证明测试用例是否可信,会导致两种情况发生,一种是用例全部通过的假象,其中可能夹杂着测试用例并无有效断言、或者覆盖率不足;另一种是用例频繁失败,夸大了问题拦截率,可能由平台、用例、环境、数据等干扰问题导致测试用例状态不稳定。
因此,现有技术中缺乏一种有效的接口自动化测试方法,不仅自动化程度高、测试效率高,并且测试结果可靠。
发明内容
本发明目的在于提供一种面向敏捷接口的自动化测试方法及系统,其方法能够快速有效的生成自动化测试用例,对测试用例进行选取、结果断言、报告展示、消息推送,最后对测试质量进行评估;该方法贯穿自动化测试的整个生命周期,输入、执行、校验、分析、评估,可以尽早地发现问题并得到反馈,提高测试质量和效率,降低测试成本。
为达成上述目的,本发明提出如下技术方案:一种面向敏捷接口的自动化测试方法,包括:
在持续集成系统中配置测试计划,以便测试计划被触发后构建并执行测试任务;
基于上游原始数据,构建多渠道的数据通道,获取被测服务接口信息;
对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例并审核;
执行测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;
获取测试用例运行结果,生成测试报告并推送消息至人工审核;
评估测试方法的有效性。
进一步的,所述多渠道的数据通道包括:基于接口定义管理工具的数据通道,用于实现文档读取;基于服务器代理工具的数据通道,用于实现流量监测;基于业务系统日志的数据通道,用于实现日志处理,并且基于业务系统日志的数据通道以开放接口的形式与所述被测服务对接。
进一步的,所述自动生成测试用例的机制为:
提取结构化解析处理后数据中的接口参数和约束因子,并使用Pairwise配对组合算法生成具体的测试用例;
整理合法输入测试用例集和非法输入测试用例集,根据映射关系标记测试用例期望返回值;
根据JSON模板Mock接口响应结果,其中,JSON模板包括接口返回成员、结构、数据类型、状态码;
标记测试用例的版本和优先级,存储测试用例至数据库。
进一步的,所述执行测试用例的具体过程为:
配置测试平台执行测试用例需要的参数,根据该参数对测试用例参数化;
通过测试平台读取数据库中的测试用例,并在执行测试用例之前,对参数化的测试用例进行参数值替换;
按测试用例的优先级进行测试,标注测试用例集的版本;
提取接口测试结果中的报文内容,包括状态码、数据类型和返回值,并当测试结果发生异常时,重跑触发检查机制,重跑不通过则记录在日志系统中。
进一步的,所述测试报告的分析维度包括接口覆盖率、用例复用率、测试执行效率、缺陷发现率和用例成功率。
进一步的,采用评估算法计算测试得分AT的方式评估测试方法的有效性,测试得分AT数值越高表示测试有效性越高;具体的:
AT=IC*α1+CM*α2+TE*α3+BD*α4+CS*α5
其中,IC表示接口覆盖率,α1表示接口覆盖率的权重分值;CM表示用例复用率,α2表示用例复用率的权重分值;TE表示测试执行率,α3表示测试执行率的权重分值;BD表示缺陷发现率,α4为表示缺陷发现率的权重分值,CS表示用例成功率,α5表示用例成功率的权重分值;
并且,接口覆盖率IC、用例复用率CM、测试执行率TE、缺陷发现率BD和用例成功率CS的计算公式分别为:
Figure BDA0003800324590000041
式中,I为接口总数,I0为被测接口数;
Figure BDA0003800324590000042
式中,N0为可复用的测试用例数,N为测试用例总数;
Figure BDA0003800324590000043
式中,T1为开发工作时长,N1为开发人数,T2为测试工作时长,N2为测试人数;
Figure BDA0003800324590000044
式中,i=1,2,3,4分别表示致命、严重、一般、轻微Bug;TBi为测试发现的相应等级的Bug数量,CBi为测试未发现相应等级的Bug数量;k为Bug权重,根据Bug的等级,设定不同的权重系数;
Figure BDA0003800324590000045
式中,n为测试次数,Nj为第j次测试成功的测试用例数,N为执行测试用例数。
本发明另一技术方案在于公开一种面向敏捷接口的自动化测试系统,该系统包括:
配置执行模块,用于在持续集成系统中配置测试计划,以便测试计划被触发后构建并执行测试任务;
构建模块,用于基于上游原始数据,构建多渠道的数据通道,获取被测服务接口信息;
生成模块,用于对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例并审核;
执行模块,用于执行测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;
获取模块,用于获取测试用例运行结果,生成测试报告并推送消息至人工审核;
评估模块,用于评估测试方法的有效性。
进一步的,所述构建模块构建的数据通道包括:基于接口定义管理工具的数据通道,用于实现文档读取;基于服务器代理工具的数据通道,用于实现流量监测;基于业务系统日志的数据通道,用于实现日志处理,并且基于业务系统日志的数据通道以开放接口的形式与所述被测服务对接。
进一步的,所述执行模块执行测试用例的执行单元包括:
配置单元,用于配置测试平台执行测试用例需要的参数,根据该参数对测试用例参数化;
读取单元,用于通过测试平台读取数据库中的测试用例,并在执行测试用例之前,对参数化的测试用例进行参数值替换;
测试单元,用于按测试用例的优先级进行测试,标注测试用例集的版本;
提取单元,用于提取接口测试结果中的报文内容,包括状态码、数据类型和返回值,并当测试结果发生异常时,重跑触发检查机制,重跑不通过则记录在日志系统中。
本发明还公开一种面向敏捷接口的自动化测试装置,该装置包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器运行所述计算机程序时,实现如上述的面向敏捷接口的自动化测试方法。
由以上技术方案可知,本发明的技术方案获得了如下有益效果:
本发明公开的面向敏捷接口的自动化测试方法及系统,其方法包括:在持续集成系统中配置测试计划,执行测试任务;基于上游原始数据,构建多渠道的数据通道,获取被测服务接口信息;对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例;选取测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;获取测试用例运行结果,生成测试报告并推送消息至人工审核;评估测试方法的有效性。其中,数据通道包括基于接口定义管理工具的数据通道、基于服务器代理工具的数据通道和基于业务系统日志的数据通道,分别用于实现文档读取、流量监测和日志处理。该方法通过上述三种数据获取的方式组合,无需测试人员复杂操作,测试用例就可以自动生成,辅助方法快速完成测试用例的准备工作。
本发明测试方法公开的测试流程平台化,数据与脚本隔离,有效推动测试效率,缩短项目交付周期;另外,采用包括接口覆盖率、用例复用率、测试执行效率、缺陷发现率和用例成功率的多个分析维度的评估算法对测试方法有效性进行评估,实现用较小的代价在测试用例生命周期内准确判断测试风险,提升质效。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
附图不表示按照真实参照物比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:
图1为本发明自动化测试方法的测试流程图;
图2为本发明自动化测试用例的执行顺序图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,除非上下文清楚地指明其它情况,否则单数形式的“一个”“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的特征、整体、步骤、操作、元素和/或组件,并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
基于自动化测试具有的测试效率高、测试时间短、节省人力成本的优点,其在接口测试上应用时还具有较高投入产出比的优势,因此可作为一种有效的接口自动化测试方法,获得可靠的测试结果。本发明旨在于应用上述技术,提供一种面向敏捷接口的自动化测试方法及系统,在自动化测试的基础上,通过文档读取、流量监听、日志处理三种组合方式,无需测试人员复杂操作,自动生成测试用例,辅助快速完成测试用例的准备工作。
下面结合附图所示的具体实施例,对本发明公开的面向敏捷接口的自动化测试方法及系统作进一步具体介绍。
本发明公开的面向敏捷接口的自动化测试方法,包括如下步骤:
步骤S102,在持续集成系统中配置测试计划,以便测试计划被触发后构建并执行测试任务;本步骤实现测试发起功能,测试任务由被分配到测试任务的测试集群机运行自动化测试平台程序执行;
步骤S104,基于上游原始数据,构建多渠道的数据通道,获取被测服务接口信息;
实施时,多渠道的数据通道包括:基于接口定义管理工具的数据通道,用于实现文档读取;具体的,Swagger用作规范化的接口定义管理工具,包含了请求路径、请求参数和响应内容,自动化测试平台建立对接机制后,直接读取Swagger接口文档地址,解析文档中的请求路径,请求方式、请求参数和响应内容等变更信息,即一键导入数据。基于服务器代理工具的数据通道,用于实现流量监测;具体的,代理工具包括Fiddller、Charles等,通过代理工具记录HTTP会话,获取客户端与服务端交互过程中所调用的接口以及传递的参数,该数据通道直接录制保存上述数据到自动化测试平台,完成流量监测。基于业务系统日志的数据通道,用于实现日志处理,并且基于业务系统日志的数据通道以开放接口的形式与所述被测服务对接;具体的,日志处理过程方式为从生产环境摘取接口的日志片段,经过加工处理后,解析出接口结构和参数。
步骤S106,对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例并审核;
实施例中,自动生成测试用例的机制为:相较于现有技术直接采用人工构建测试用例的方式,本方案采用从Mysql数据库读取数据的方式,即提取结构化解析处理后数据中的接口参数和约束因子,并使用Pairwise配对组合算法生成具体的测试用例;整理合法输入测试用例集和非法输入测试用例集,根据映射关系标记测试用例期望返回值;根据JSON模板Mock接口响应结果,其中,JSON模板包括接口返回成员、结构、数据类型、状态码;标记测试用例的版本(时间)和优先级(合法用例最高),存储测试用例至数据库。
其中,实施例中的合法输入测试用例集是约束因子之内的测试用例构成的集合、非法输入测试用例集是约束因子之外的测试用例构成的集合;实施时,自动化测试平台采用现有常规的异常规则库构建两测试集合,比如:约束因子不为空,合法输入就是非空、非法输入就是空;约束因子是整数,合法输入就是整数、非法输入是0和小数。Pairwise配对组合算法生成测试用例的过程为类正交表法组合参数。
测试用例的审核为人工审核,审核内容包括:(1)测试用例版本:测试用例版本可以起到一个基准的作用,标明项目进度中的每一个阶段,使测试用例直接和需求基线、软件版本对应;(2)测试用例优先级:测试用例优先级可以指出软件测试的重点,增加重点测试用例执行的次数,指导项目新人尽快了解需求;(3)测试用例校对:对测试用例的输入数据和预期结果进行正确性校对和补充,完善测试用例内容。
步骤S108,执行测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;
本步骤具体实施时包括两个过程,执行测试用例的过程和校验测试结果的过程;其中,执行测试用例的过程为:配置测试平台执行测试用例需要的参数,根据该参数对测试用例参数化,包括在自动化测试平台中维护参数变量和参数值,通过${key}获取到参数值,替换测试用例中的参数名称,参数值支持常量、脚本运行结果、已有测试用例的返回结果;通过测试平台读取数据库中的测试用例,并在执行测试用例之前,对参数化的测试用例进行参数值替换;可选的,在执行测试用例之前,还可以执行的基础操作包括数据库连接、MQ消息等;按测试用例的优先级进行测试,标注测试用例集的版本;提取接口测试结果中的报文内容,包括状态码、数据类型和返回值,并当测试结果发生异常时,重跑触发检查机制,重跑不通过则记录在日志系统中。校验测试结果的过程包括依次递进执行的三部分,即全局验证、全文验证和节点验证;首先,全局验证,对返回报文进行解析,判断报文中有无JSON节点,并取出该值同预设值的返回值进行比对,判断返回是否正确;当接口抛出异常信息时,平台记录错误信息,也可选择将这个异常点跳过;然后,进行全文验证,对返回报文的全文进行匹配验证,判断是否符合要求;例如进行非空检查,当接口返回值出现“”,“[]”,“{}”,null时,平台记录错误信息,也可以根据自己用例的实际情况关闭;最后进行节点验证,按照配置规则对返回报文中每个节点进行正确性验证,例如root.user.name表示root根节点下的user节点下的name节点。
步骤S110,获取测试用例运行结果,生成测试报告并推送消息至人工审核;
测试报告根据测试用例运行结果生成,即返回的报文信息按不同维度进行测试结果分析,包括接口覆盖率、用例复用率、测试执行效率、缺陷发现率和用例成功率;其中,接口覆盖率反映测试用例对接口的覆盖程度,是度量测试完整性的一个重要手段,覆盖率高代表测试的范围很全面,很大程度上测试方法可以及时的发现系统缺陷;用例复用率反映测试用例设计的质量,是将测已执行过的测试用例重复使用或改进使用于不同软件或软件测试阶段,可以加快测试进度,节约测试成本;测试执行效率反映测试工作的效率,是评估测试周期的一个重要指标。根据这个维度,确定最终这个版本是否发布出去;缺陷发现率反映测试工作中缺陷的发现情况,包含四个等级,一级(致命)Bug、二级(严重)Bug、三级(一般)Bug、四级(轻微)Bug;用例成功率反映测试用例的通过率,失败率高意味着被测系统可能发生了更新,用例也需要进行相应的修改。测试人员接收推送消息后可以通过自动化测试平台或邮件系统查看所属项目的通知内容,对报告内容进行点检,确认测试结果。
步骤S112,评估测试方法的有效性,用于指导测试用例优化治理与披露接口风险。
具体的,采用评估算法计算测试得分AT的方式评估测试方法的有效性,测试得分AT数值越高表示测试有效性越高;具体的:
AT=IC*α1+CM*α2+TE*α3+BD*α4+CS*α5
其中,IC表示接口覆盖率,α1表示接口覆盖率的权重分值,α1=30;CM表示用例复用率,α2表示用例复用率的权重分值,α2=5;TE表示测试执行率,α3表示测试执行率的权重分值,α3=15;BD表示缺陷发现率,α4为表示缺陷发现率的权重分值,α4=40;CS表示用例成功率,α5表示用例成功率的权重分值,α5=10;
评估计算时,接口覆盖率IC、用例复用率CM、测试执行率TE、缺陷发现率BD和用例成功率CS的计算公式分别为:
Figure BDA0003800324590000111
式中,I为接口总数,I0为被测接口数;
Figure BDA0003800324590000112
式中N0为可复用的测试用例数,N为测试用例总数;
Figure BDA0003800324590000113
式中,T1为开发工作时长,N1为开发人数,T2为测试工作时长,N2为测试人数;
Figure BDA0003800324590000114
式中,i=1,2,3,4分别表示致命、严重、一般、轻微Bug;TBi为测试发现的相应等级的Bug数量,CBi为测试未发现相应等级的Bug数量;k为Bug权重,根据Bug的等级,设定不同的权重系数;
Figure BDA0003800324590000115
式中,n为测试次数,Nj为第j次测试成功的测试用例数,N为执行测试用例数。
图1示出了面向敏捷的接口自动化测试方法的实施例1,其测试流程如下:(1)以某公司后台管理系统为例,测试人员对其用户管理模块进行接口自动化测试;首先,在Jenkins平台配置自动化测试平台Git服务器地址,在构建触发器中勾选“Buildperiodically”配置日程信息,日程表规则用cron表达式,其配置格式为:秒分时日月周。其中,*表示任意时间,?相当于点位符,例如0 0 23**?表示每天二十三点执行一次,Jenkins便可对被测系统进行持续测试;
(2)自动化平台读取Swagger接口文档地址,解析文档中的请求路径,请求方式、请求参数和返回值,或调用录入的网络流量数据或保存的业务日志,使用Pairwise配对组合算法生成测试用例,保存在数据库中。各测试用例在数据库中存储的数据结构如下表1所示:
表1为测试用例的存储结构
Figure BDA0003800324590000121
Figure BDA0003800324590000131
(3)在自动化测试平台参数设置页面配置请求需要用到的参数,如“id=1”,在用例管理中编辑测试用例,将需要参数化的地方用${id}代替;
(4)自动化平台读取测试用例池中的测试用例,在正式执行测试用例之前,进行参数替换的操作,${id}替换为真实的id值1,每条测试用例向被测服务发出请求,检查响应结果是否符合预期设定的检验规则,如状态码是否为200,返回值是否为空,校验结束发送操作信息到日志系统。
(5)本轮测试执行结束后,平台生成测试报告,包括用例执行时间、用例状态、用例详情等,Jenkins发送测试报告通知相关人员进行审核。
(6)平台计算测试有效性,计算最终得分,分值越高,测试质量越高,反之,则低。
对于步骤(6),测试完成后,测试平台会自动去计算测试有效性,各项指标如下表2所示:
表2实施例1测试数据
Figure BDA0003800324590000132
Figure BDA0003800324590000141
则各分析维度数据计算结果如下:IC值为100%,CM值为22.81%,TE值为98.82%,BD值为93.74%,CS值为99.85%,根据评估算法AT=93.4445;计算结果表明,本测试方法的确实能够优化测试质量,提高测试效率。
图2示出了面向敏捷的接口自动化测试方法的另一实施例,其测试流程如下:平台收集数据流获取接口信息,接口参数通过Pairwise配对组合算法自动生成测试用例,测试人员添加参数配置,持续集成平台以定时任务形式运行测试平台,测试平台向被测服务发送请求,接收被测服务返回的接口数据并进行断言,请求失败触发重跑检查机制,记录日志信息,测试结束,生成测试报告。
在本发明的实施例中,还提供一种电子设备,该设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器运行所述计算机程序时实现以上实施例中的面向敏捷接口的自动化测试方法。
上述程序可以运行在处理器中,或者也可以存储在存储器中,即计算机可读介质中,计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体,如调制的数据信号和载波。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应于不同的方法步骤可以通过不同的模块来实现。
在本实施例中,就提供了这样一种系统或装置,该系统可以称为一种面向敏捷接口的自动化测试系统,所述系统包括:配置执行模块,用于在持续集成系统中配置测试计划,以便测试计划被触发后构建并执行测试任务;构建模块,用于基于上游原始数据,构建多渠道的数据通道,获取被测服务接口信息;生成模块,用于对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例并审核;执行模块,用于执行测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;获取模块,用于获取测试用例运行结果,生成测试报告并推送消息至人工审核;评估模块,用于评估测试方法的有效性。
该系统用于实现上述实施例中面向敏捷接口的自动化测试方法的步骤,已经进行说明的,在此不再赘述。
例如,构建模块构建的数据通道包括:基于接口定义管理工具的数据通道,用于实现文档读取;基于服务器代理工具的数据通道,用于实现流量监测;基于业务系统日志的数据通道,用于实现日志处理,并且基于业务系统日志的数据通道以开放接口的形式与所述被测服务对接。
又例如,执行模块执行测试用例的执行单元包括:配置单元,用于配置测试平台执行测试用例需要的参数,根据该参数对测试用例参数化;读取单元,用于通过测试平台读取数据库中的测试用例,并在执行测试用例之前,对参数化的测试用例进行参数值替换;测试单元,用于按测试用例的优先级进行测试,标注测试用例集的版本;提取单元,用于提取接口测试结果中的报文内容,包括状态码、数据类型和返回值,并当测试结果发生异常时,重跑触发检查机制,重跑不通过则记录在日志系统中。
本发明公开的面向敏捷的接口自动化测试方法及系统,一方面通过文档读取、流量监听、日志处理三种组合方式,无需测试人员复杂操作,测试用例可自动生成,辅助测试人员快速完成测试用例的准备工作;另一方面,测试流程平台化,数据与脚本隔离,推动测试效率,缩短项目交付周期;另外,采用评估算法评价测试方法的有效性,用较小的代价在测试用例生命周期内准确判断测试风险,提升质效。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

Claims (10)

1.一种面向敏捷接口的自动化测试方法,其特征在于,包括:
在持续集成系统中配置测试计划,以便测试计划被触发后构建并执行测试任务;
基于上游原始数据,构建多渠道的数据通道,获取被测服务接口信息;
对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例并审核;
执行测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;
获取测试用例运行结果,生成测试报告并推送消息至人工审核;
评估测试方法的有效性。
2.根据权利要求1所述的面向敏捷接口的自动化测试方法,其特征在于,所述多渠道的数据通道包括:
基于接口定义管理工具的数据通道,用于实现文档读取;
基于服务器代理工具的数据通道,用于实现流量监测;
基于业务系统日志的数据通道,用于实现日志处理,并且基于业务系统日志的数据通道以开放接口的形式与所述被测服务对接。
3.根据权利要求1所述的面向敏捷接口的自动化测试方法,其特征在于,所述自动生成测试用例的机制为:
提取结构化解析处理后数据中的接口参数和约束因子,并使用Pairwise配对组合算法生成具体的测试用例;
整理合法输入测试用例集和非法输入测试用例集,根据映射关系标记测试用例期望返回值;
根据JSON模板Mock接口响应结果,其中,JSON模板包括接口返回成员、结构、数据类型、状态码;
标记测试用例的版本和优先级,存储测试用例至数据库。
4.根据权利要求1所述的面向敏捷接口的自动化测试方法,其特征在于,所述执行测试用例的具体过程为:
配置测试平台执行测试用例需要的参数,根据该参数对测试用例参数化;
通过测试平台读取数据库中的测试用例,并在执行测试用例之前,对参数化的测试用例进行参数值替换;
按测试用例的优先级进行测试,标注测试用例集的版本;
提取接口测试结果中的报文内容,包括状态码、数据类型和返回值,并当测试结果发生异常时,重跑触发检查机制,重跑不通过则记录在日志系统中。
5.根据权利要求1所述的面向敏捷接口的自动化测试方法,其特征在于,所述测试报告的分析维度包括接口覆盖率、用例复用率、测试执行效率、缺陷发现率和用例成功率。
6.根据权利要求1所述的面向敏捷接口的自动化测试方法,其特征在于,采用评估算法计算测试得分AT的方式评估测试方法的有效性,测试得分AT数值越高表示测试有效性越高;具体的:
AT=IC*αl+CM*α2+TE*α3+BD*α4+CS*α5
其中,IC表示接口覆盖率,α1表示接口覆盖率的权重分值;CM表示用例复用率,α2表示用例复用率的权重分值;TE表示测试执行率,α3表示测试执行率的权重分值;BD表示缺陷发现率,α4为表示缺陷发现率的权重分值,CS表示用例成功率,α5表示用例成功率的权重分值;
并且,接口覆盖率IC、用例复用率CM、测试执行率TE、缺陷发现率BD和用例成功率CS的计算公式分别为:
Figure FDA0003800324580000021
式中,I为接口总数,I0为被测接口数;
Figure FDA0003800324580000022
式中,N0为可复用的测试用例数,N为测试用例总数;
Figure FDA0003800324580000031
式中,T1为开发工作时长,N1为开发人数,T2为测试工作时长,N2为测试人数;
Figure FDA0003800324580000032
式中,i=1,2,3,4分别表示致命、严重、一般、轻微Bug;TBi为测试发现的相应等级的Bug数量,CBi为测试未发现相应等级的Bug数量;k为Bug权重,根据Bug的等级,设定不同的权重系数;
Figure FDA0003800324580000033
式中,n为测试次数,Nj为第j次测试成功的测试用例数,N为执行测试用例数。
7.一种面向敏捷接口的自动化测试系统,其特征在于,包括:
配置执行模块,用于在持续集成系统中配置测试计划,以便测试计划被触发后构建并执行测试任务;
构建模块,用于基于上游原始数据,构建多渠道的数据通道,获取被测服务接口信息;
生成模块,用于对被测服务接口信息中的数据流进行结构化解析处理,自动生成测试用例并审核;
执行模块,用于执行测试用例,向被测服务发送访问请求并校验测试结果是否符合预期;
获取模块,用于获取测试用例运行结果,生成测试报告并推送消息至人工审核;
评估模块,用于评估测试方法的有效性。
8.根据权利要求7所述的面向敏捷接口的自动化测试系统,其特征在于,所述构建模块构建的数据通道包括:
基于接口定义管理工具的数据通道,用于实现文档读取;
基于服务器代理工具的数据通道,用于实现流量监测;
基于业务系统日志的数据通道,用于实现日志处理,并且基于业务系统日志的数据通道以开放接口的形式与所述被测服务对接。
9.根据权利要求7所述的面向敏捷接口的自动化测试系统,其特征在于,所述执行模块执行测试用例的执行单元包括:
配置单元,用于配置测试平台执行测试用例需要的参数,根据该参数对测试用例参数化;
读取单元,用于通过测试平台读取数据库中的测试用例,并在执行测试用例之前,对参数化的测试用例进行参数值替换;
测试单元,用于按测试用例的优先级进行测试,标注测试用例集的版本;
提取单元,用于提取接口测试结果中的报文内容,包括状态码、数据类型和返回值,并当测试结果发生异常时,重跑触发检查机制,重跑不通过则记录在日志系统中。
10.一种面向敏捷接口的自动化测试装置,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器运行所述计算机程序时,实现如权利要求1-6中任一项所述的面向敏捷接口的自动化测试方法。
CN202210980741.5A 2022-08-16 2022-08-16 一种面向敏捷接口的自动化测试方法及系统 Pending CN115328784A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210980741.5A CN115328784A (zh) 2022-08-16 2022-08-16 一种面向敏捷接口的自动化测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210980741.5A CN115328784A (zh) 2022-08-16 2022-08-16 一种面向敏捷接口的自动化测试方法及系统

Publications (1)

Publication Number Publication Date
CN115328784A true CN115328784A (zh) 2022-11-11

Family

ID=83923868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210980741.5A Pending CN115328784A (zh) 2022-08-16 2022-08-16 一种面向敏捷接口的自动化测试方法及系统

Country Status (1)

Country Link
CN (1) CN115328784A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629295A (zh) * 2022-11-30 2023-01-20 苏州萨沙迈半导体有限公司 芯片自动化测试系统、方法及存储介质
CN115827480A (zh) * 2022-12-20 2023-03-21 中船重工奥蓝托无锡软件技术有限公司 用于船舶性能预报app的自动化测试方法、装置及系统
CN116028376A (zh) * 2023-03-27 2023-04-28 云筑信息科技(成都)有限公司 基于流量录制快速生成接口自动化用例的方法
CN117056929A (zh) * 2023-10-11 2023-11-14 中国兵器装备集团兵器装备研究所 鸿蒙系统上测试自动化和安全检测优化方法、装置和介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629295A (zh) * 2022-11-30 2023-01-20 苏州萨沙迈半导体有限公司 芯片自动化测试系统、方法及存储介质
CN115629295B (zh) * 2022-11-30 2023-04-14 苏州萨沙迈半导体有限公司 芯片自动化测试系统、方法及存储介质
CN115827480A (zh) * 2022-12-20 2023-03-21 中船重工奥蓝托无锡软件技术有限公司 用于船舶性能预报app的自动化测试方法、装置及系统
CN116028376A (zh) * 2023-03-27 2023-04-28 云筑信息科技(成都)有限公司 基于流量录制快速生成接口自动化用例的方法
CN116028376B (zh) * 2023-03-27 2023-08-29 云筑信息科技(成都)有限公司 基于流量录制快速生成接口自动化用例的方法
CN117056929A (zh) * 2023-10-11 2023-11-14 中国兵器装备集团兵器装备研究所 鸿蒙系统上测试自动化和安全检测优化方法、装置和介质
CN117056929B (zh) * 2023-10-11 2023-12-26 中国兵器装备集团兵器装备研究所 鸿蒙系统上测试自动化和安全检测优化方法、装置和介质

Similar Documents

Publication Publication Date Title
CN115328784A (zh) 一种面向敏捷接口的自动化测试方法及系统
Hovorushchenko Methodology of evaluating the sufficiency of information for software quality assessment according to ISO 25010
CN109002391B (zh) 自动检测嵌入式软件接口测试数据的方法
US8819492B2 (en) System and method for testing and analyses of the computer applications
CN103631713B (zh) Erp软件自动化测试系统及方法
CN112488652B (zh) 工单审核方法、系统、终端和存储介质
Rodriguez-Perez et al. Watch out for extrinsic bugs! a case study of their impact in just-in-time bug prediction models on the openstack project
Li et al. Classification of software defect detected by black-box testing: An empirical study
CN113010413B (zh) 一种接口自动化测试方法和装置
Söylemez et al. Challenges of software process and product quality improvement: catalyzing defect root-cause investigation by process enactment data analysis
Yang et al. Vuldigger: A just-in-time and cost-aware tool for digging vulnerability-contributing changes
US9734042B1 (en) System, method, and computer program for automated parameterized software testing
CN112433948A (zh) 一种基于网络数据分析的仿真测试系统及方法
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
Amusuo et al. Reflections on software failure analysis
Nugroho et al. The impact of UML modeling on defect density and defect resolution time in a proprietary system
CN118210730A (zh) 一种产品代码检测方法、设备及介质
Grbac et al. A quantitative analysis of the unit verification perspective on fault distributions in complex software systems: an operational replication
Thooriqoh et al. Selenium Framework for Web Automation Testing: A Systematic Literature Review
Singhal et al. A critical review of various testing techniques in aspect-oriented software systems
CN116069628A (zh) 一种智能处置的软件自动化回归测试方法、系统及设备
Lübke et al. Effectiveness of combinatorial test design with executable business processes
CN115203025A (zh) 一种测试缺陷分析方法及装置
Jaber et al. A proposed code inspection model using program slicing technique
CN114791886B (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