CN111782546A - 一种基于机器学习的自动接口测试方法及装置 - Google Patents

一种基于机器学习的自动接口测试方法及装置 Download PDF

Info

Publication number
CN111782546A
CN111782546A CN202010717743.6A CN202010717743A CN111782546A CN 111782546 A CN111782546 A CN 111782546A CN 202010717743 A CN202010717743 A CN 202010717743A CN 111782546 A CN111782546 A CN 111782546A
Authority
CN
China
Prior art keywords
api
test
parameters
output parameters
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010717743.6A
Other languages
English (en)
Other versions
CN111782546B (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.)
Beijing Doumi Youpin Technology Development Co ltd
Original Assignee
Beijing Doumi Youpin Technology Development 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 Beijing Doumi Youpin Technology Development Co ltd filed Critical Beijing Doumi Youpin Technology Development Co ltd
Priority to CN202010717743.6A priority Critical patent/CN111782546B/zh
Publication of CN111782546A publication Critical patent/CN111782546A/zh
Application granted granted Critical
Publication of CN111782546B publication Critical patent/CN111782546B/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
    • 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
    • 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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种基于机器学习的自动接口测试方法及装置,属于软件测试技术领域。本申请所述方法包括从日志文件中获取被测系统在至少在生产环节中所产生的运行记录;获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议;根据所述输入参数、输出参数及API请求协议生成API接口测试代码;以及执行所述API接口测试代码,确定所述被测系统是否正常运行。本申请所述装置包括与上述方法各步骤分别对应的运行记录获取模块,参数获取模块,测试代码生成模块,以及测试代码执行模块。本申请能够针对接口参数自动生成测试代码,调整测试过程,大大提高了系统的测试稳定性。

Description

一种基于机器学习的自动接口测试方法及装置
技术领域
本申请属于软件测试技术领域,特别涉及一种基于机器学习的自动接口测试的方法及装置。
背景技术
软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
应用程序接口(API)正逐渐成为很多软件开发的中心,不同的系统、应用通过API连接,相互传输数据。越多越多的系统从MVC架构转向微服务架构,各个微服务之间通过Rest API进行交互。对于企业来说,相比产品开发完成后再进行UI测试而言,进行API测试更容易在软件产品开发的早期阶段发现问题,API测试通常是指通过工具或者代码去调用特定的API,获得实际运行结果,然后去验证是实际运行结果是否和我们想要的预期结果相符合。
API测试还具有成本更低、易于自动化测试等优点,现有技术中,存在更多的成熟的自动化测试工具供API测试使用,比如RestBird、Postman、SmartBear等,使用这些测试工具能够大大提高测试效率。
现在的大型网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论,该API接口通常在设计阶段规定好接口的入参和出参,测试研发根据接口和代码的入参和出参编写测试代码,进行实际出参和期望出参的比对,判断接口是否正确以及系统是否正常运行,然而现在互联网企业是快速变化的,这就决定了接口也会快速变化为了验证接口的正确性,测试功能也要跟着快速变化。这就要用大量的人力资源支持,提高了系统稳定的难度。项目紧急的时候质量难以控制。特别是在接口快速迭代的过程中,研发人员更改了测试接口,往往忘记通知测试人员,由测试人员根据之前的测试接口编写的测试程序或者沿用之前的测试用例进行系统测试时,往往会出现较大的测试纰漏。
发明内容
为了解决上述技术问题至少之一,本申请提供了一种基于机器学习的自动接口测试方法及装置,特别是针对RESTful架构进行通信的API接口,能够自动生成测试代码,提高测试效率。
本申请第一方面提供了一种基于机器学习的自动接口测试方法,包括:从日志文件中获取被测系统在至少在生产环节中所产生的运行记录;获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议;根据所述输入参数、输出参数及API请求协议生成API接口测试代码;以及执行所述API接口测试代码,确定所述被测系统是否正常运行。
优选的是,所述获取被测系统的运行记录包括:通过日志系统的消息队列获取所述被测系统的运行记录。
优选的是,获取所述输入参数、输出参数及API请求协议包括:通过关键字符匹配,截取所述运行记录中的输入参数、输出参数及API请求协议。
优选的是,根据所述输入参数、输出参数及API请求协议生成API接口测试代码包括:根据所述输入参数及API请求协议生成调用被测系统的执行代码;设置用于接收所述执行代码被执行后的实际输出参数;以及将自运行记录中获取的输出参数作为预期输出参数,生成用于对所述实际输出参数与所述预期输出参数进行对比的分析代码。
优选的是,执行所述API接口测试代码之后进一步包括:生成用于反应所述被测系统的API接口准确率的测试报告。
本申请第二方面提供了一种基于机器学习的自动接口测试装置,包括:运行记录获取模块,用于从日志文件中获取被测系统在至少在生产环节中所产生的运行记录;参数获取模块,用于获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议;测试代码生成模块,用于根据所述输入参数、输出参数及API请求协议生成API接口测试代码;以及测试代码执行模块,用于执行所述API接口测试代码,确定所述被测系统是否正常运行。
优选的是,所述运行记录获取模块包括:消息队列读取单元,用于通过日志系统的消息队列获取所述被测系统的运行记录。
优选的是,所述参数获取模块包括:字符匹配单元,用于通过关键字符匹配,截取所述运行记录中的输入参数、输出参数及API请求协议。
优选的是,所述测试代码生成模块包括:执行代码生成单元,用于根据所述输入参数及API请求协议生成调用被测系统的执行代码;执行代码结果接收设置单元,用于设置用于接收所述执行代码被执行后的实际输出参数;以及结果比较单元,用于将自运行记录中获取的输出参数作为预期输出参数,生成用于对所述实际输出参数与所述预期输出参数进行对比的分析代码。
优选的是,所述自动接口测试装置还包括:测试报告生成模块,用于在执行所述API接口测试代码之后,生成用于反应所述被测系统的API接口准确率的测试报告。
本申请第三方面,一种计算机设备,包括处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序用于实现如上所述的基于机器学习的自动接口测试方法。
本申请第四方面,一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于机器学习的自动接口测试方法。
本申请在整个运行过程中没有人工编写测试代码的过程,能够针对接口参数自动调整测试过程,大大提高了系统的测试稳定性。
附图说明
图1是本申请基于机器学习的自动接口测试方法的一优选实施例的流程图。
图2是本申请图1所示实施例的时序图。
图3是本申请基于机器学习的自动接口测试装置的一优选实施例的架构图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施方式是本申请一部分实施方式,而不是全部的实施方式。下面通过参考附图描述的实施方式是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。下面结合附图对本申请的实施方式进行详细说明。
本申请提供了一种基于机器学习的自动接口测试方法及装置,特别是针对RESTful架构进行通信的API接口,能够自动生成测试代码,提高测试效率。其中,REST(Representational State Transfer)表述性状态转换,REST指的是一组架构约束条件和原则。如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。
RESTful架构的格式一般包含url格式、参数格式及返回体格式,其中url格式例如写成如下标准:
http(s)://server.com/api-name/{version}/{domain}/{rest-convention}
上述标准中,{version}代表api的版本信息;{domain}是一个可以用来定义任何技术的区域(例如:安全-允许指定的用户可以访问这个区域)或者业务上的区域(例如:同样的功能在同一个前缀之下);{rest-convention}代表这个域(domain)下,约定的rest接口集合。
参数格式主要分为GET方式和POST方式,在客户机和服务器之间进行请求-响应时,GET和POST是两种最常被用到的方法,其中,GET是从指定的资源请求数据,POST是向指定的资源提交要被处理的数据。
在RESTful架构下,GET采用两种常见格式:
URL参数(优先推荐),如:
https://api.doumi.com/v1.1?name=test&age=20;
路径参数,如:https://api.doumi.com/v1.1/userinfo/{id}。
POST采用两种常见格式为Json格式包参数提交及form表单参数提交,Json格式包参数提交示例如下:
POST https://api.doumi.com/v1.1
Content-Type:application/json;charset=utf-8
{"title":"test","sub":[1,2,3]};
form表单参数提交示例如下:
POST https://www.example.com/v1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8
title=test&des=123。
RESTful架构的返回体格式示例如下:
Figure BDA0002598831850000051
API接口的测试过程一般是指,项目设计阶段系统间规定好接口的入参和出参;测试研发根据接口和代码的入参和出参编写测试代码,进行实际出参和期望出参的比对,进行判断是否正确,例如入参采用的是GET方式下的name=test&age=20,出参采用的返回体格式(包括id、姓名、年龄、工作等);之后部署测试代码进行自动检测,并选择性的生成测试报告和预警报告。
根据背景技术描述,上述测试过程中,接口参数是有可能变化的,是采用GET还是POST也是有可能变化的,因此,期望有一种能够自动识别接口变化情况,并依此自动生成测试代码。
根据本申请第一方面,提供了一种基于机器学习的自动接口测试方法,如图1所示,主要包括:
步骤S1、从日志文件中获取被测系统在至少在生产环节中所产生的运行记录。
步骤S2、获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议。
步骤S3、根据所述输入参数、输出参数及API请求协议生成API接口测试代码。
步骤S4、执行所述API接口测试代码,确定所述被测系统是否正常运行。
本申请在步骤S1中,通过日志文件来获得包含测试用例在内的测试数据,既能确保在接口变化的情况下,获得对应接口的形式及对应的的测试用例,又能保证接口及测试用例的准确性,如图2所示,步骤S1的运行记录主要是研发过程中的运行记录,也可以是其它测试或本次测试过程中的运行记录,确保了来源的可靠性,避免了测试人员在测试接口变化的情况下进行测试接口的更改,解决了现有技术中需要人工编写代码识别接口是否正确所导致的测试效率低下的问题。
可以理解的是,在软件的日常开发过程中,日志是代码的必要组成部分,一个好的代码也必然有一个好的日志输出,本申请就是利用日志文件,通过对日志的数据挖掘,助力软件测试。
日志对于运行环境中系统的监控和问题定位是至关重要的,在系统设计、开发和实现的过程中必须时刻注意输出,对于RESTful架构,步骤S1中的运行记录主要存储在日志文件的消息队列中,本申请的一些可选实施方式中,通过日志系统的消息队列获取所述被测系统的运行记录。例如自Rabbitmq队列获取的运行记录的数据格式为:
Figure BDA0002598831850000061
Figure BDA0002598831850000071
对上述代码/数据格式的简要说明,其表征了运行记录的数据格式中,采用了GET方式进行通信,跟定了服务器的url,同时携带了包含id及名称的输入参数,请求服务器返回一组数据,这组数据即"data"结构体中所包含的用户id、电话及组id。
本申请步骤S2用于对上面的这段数据格式进行解析,获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议,可以看出,步骤S2中获得的输入参数即为结构体"query",输出参数即为结构体"data",而API请求协议即"name"所对应的url及"method"所对应的GET通信方式。
在一些可选实施方式中,获取所述输入参数、输出参数及API请求协议包括:通过关键字符匹配,截取所述运行记录中的输入参数、输出参数及API请求协议。
可以理解的是,例如可以通过正则表达式或字符匹配等获得上述对应的各个数据。
本申请采用监听器的方式来获取研发过程中的日志文件,能够实时、批量的获得多组包含测试用例在内的数据。
在一些可选实施方式中,步骤S3中,根据所述输入参数、输出参数及API请求协议生成API接口测试代码包括:
步骤S31、根据所述输入参数及API请求协议生成调用被测系统的执行代码。
步骤S32、设置用于接收所述执行代码被执行后的实际输出参数。
步骤S33、将自运行记录中获取的输出参数作为预期输出参数,生成用于对所述实际输出参数与所述预期输出参数进行对比的分析代码。
应当理解的是,根据软件及API接口测试的定义,测试过程在于检验被测系统是否满足规定的需求或弄清预期结果与实际结果之间的差别。步骤S31中根据日志文件中记录的输入参数及协议来生成测试调用方式,从而可以实现软件自动测试,步骤S32在于接收软件自动测试过程中的实际输出,步骤S33在于进行实际输出与预期输出的比较。
上述过程生成类似于下面的执行代码(为描述方便,代码注释置于代码前面):
Figure BDA0002598831850000081
步骤S31-步骤S32中,采用response来接收实际输出,即response=http.Get("https://vip.doumi.com/userinfo/v1?team_id=abc&project_id=3");
步骤S33中,进行response与expect的比较即可:
Figure BDA0002598831850000082
如图2所示,上述代码生成后,自动执行,通过response不断获取实际输出,该过程中,被测软件又会生成新的日志系统,产生新的输入输出,供本申请的测试装置进行使用,整个过程中继续循环,不停的进行机器自己学习、检查。该设计在整个运行过程中没有人工编写测试代码的过程,大大的提高了系统的稳定性。
可以理解的是,在测试过程中,自动生成的代码的输入输出并非是严格按照日志文件的输入输出所确定,从检索的本质来讲,是输入已知项,从数据库中获取未知项,因此,在根据日志获取由输入输出参数组成的测试用例中,可以自定义输入输出参数,例如日志文件中为输入AB,输出CDF,可以修改为输入AC,测试是否输出BDF,或者输入DF,测试是否输出ABC。
由于测试用例数据庞大,本申请测试用例组合算法中,优选选取与原日志文件中的输入数量相同的参数作为测试用例输入参数,其次增加输入参数数量,直至参数数量达到最大,例如,原日志文件为输入AB,输出CDF,则第一优先变换测试类为输入AC,测试是否输出BDF,其次第二优先变换测试类为输入ADF,测试是否输出BC,最后第三测试类为输入BCDF,测试是否输出A。
本申请还设置了一个参数f,用于表征需要测试的变换数量占比整个可变换测试数量的占比,由用户给定,对于某一输入输出测试用例,经组合后能够形成20个变换用例,选取其中10个变换用例进行测试,则f为50%,基于上述输入及输出变换的测试原则,本申请通过以下公式确定软件准确率:
F-expect=[A/(A+B)]*[k+(1-k)*f];
其中,A是指测试过程中返回结果是正确的测试用例数量,B是指测试过程中返回结果是不正确的测试用例数量,k为原日志文件测试用例的准确率比重,通常情况下取0.95,f为给定的组合用例占比,如上所述,一般取50%,由测试人员根据测试案例具体情况给定,例如测试用例支持多种变形,或者测试用例数量相对可控,则可以适当提高f值,若测试用例仅支持少量变形,则可以降低f值。
k+(1-k)*f的含义可以理解为将f值在百分比内以相同趋势做变换,例如k为0.95时,将f转换为95%-100%内的数据。
在一些可选实施方式中,执行所述API接口测试代码之后进一步包括:生成用于反应所述被测系统的API接口准确率的测试报告。
如图2所示,本申请通过报警来执行测试结果的处理,例如在测试过程中发现输出结果与预期结果不一致,则通知测试人员和研发人员,或者通过多次测试后,计算准确率,在准确率低于阈值时,通知测试人员和研发人员。
本申请第二方面,提供了一种与上述方法对应的基于机器学习的自动接口测试装置,如图3所示,包括:
运行记录获取模块,用于从日志文件中获取被测系统在至少在生产环节中所产生的运行记录。
参数获取模块,用于获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议。
测试代码生成模块,用于根据所述输入参数、输出参数及API请求协议生成API接口测试代码。
测试代码执行模块,用于执行所述API接口测试代码,确定所述被测系统是否正常运行。
在一些可选实施方式中,所述运行记录获取模块包括:
消息队列读取单元,用于通过日志系统的消息队列获取所述被测系统的运行记录。
在一些可选实施方式中,所述参数获取模块包括:
字符匹配单元,用于通过关键字符匹配,截取所述运行记录中的输入参数、输出参数及API请求协议。
在一些可选实施方式中,所述测试代码生成模块包括:
执行代码生成单元,用于根据所述输入参数及API请求协议生成调用被测系统的执行代码;
执行代码结果接收设置单元,用于设置用于接收所述执行代码被执行后的实际输出参数;以及
结果比较单元,用于将自运行记录中获取的输出参数作为预期输出参数,生成用于对所述实际输出参数与所述预期输出参数进行对比的分析代码。
在一些可选实施方式中,所述自动接口测试装置还包括:
测试报告生成模块,用于在执行所述API接口测试代码之后,生成用于反应所述被测系统的API接口准确率的测试报告。
本申请第三方面提供了一种计算机设备,包括处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序用于实现如上所述的基于机器学习的自动接口测试方法。
本申请第四方面提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于机器学习的自动接口测试方法。
特别地,根据本申请的实施方式,上文参考流程图描述的过程可以被实现为计算机软件程序,特别是安装在手机终端上的计算机程序,其能够与服务器进行交互。例如,本申请的实施方式包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。本申请的计算机存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施方式中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块或单元也可以设置在处理器中,这些模块或单元的名称在某种情况下并不构成对该模块或单元本身的限定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于机器学习的自动接口测试方法,其特征在于,包括:
从日志文件中获取被测系统在至少在生产环节中所产生的运行记录;
获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议;
根据所述输入参数、输出参数及API请求协议生成API接口测试代码;以及
执行所述API接口测试代码,确定所述被测系统是否正常运行。
2.如权利要求1所述的基于机器学习的自动接口测试方法,其特征在于,所述获取被测系统的运行记录包括:
通过日志系统的消息队列获取所述被测系统的运行记录。
3.如权利要求1所述的基于机器学习的自动接口测试方法,其特征在于,获取所述输入参数、输出参数及API请求协议包括:
通过关键字符匹配,截取所述运行记录中的输入参数、输出参数及API请求协议。
4.如权利要求1所述的基于机器学习的自动接口测试方法,其特征在于,根据所述输入参数、输出参数及API请求协议生成API接口测试代码包括:
根据所述输入参数及API请求协议生成调用被测系统的执行代码;
设置用于接收所述执行代码被执行后的实际输出参数;以及
将自运行记录中获取的输出参数作为预期输出参数,生成用于对所述实际输出参数与所述预期输出参数进行对比的分析代码。
5.如权利要求1所述的基于机器学习的自动接口测试方法,其特征在于,执行所述API接口测试代码之后进一步包括:
生成用于反应所述被测系统的API接口准确率的测试报告。
6.一种基于机器学习的自动接口测试装置,其特征在于,包括:
运行记录获取模块,用于从日志文件中获取被测系统在至少在生产环节中所产生的运行记录;
参数获取模块,用于获取运行记录中的API接口的输入参数、输出参数及由所述输入参数返回所述输出参数过程中的API请求协议;
测试代码生成模块,用于根据所述输入参数、输出参数及API请求协议生成API接口测试代码;以及
测试代码执行模块,用于执行所述API接口测试代码,确定所述被测系统是否正常运行。
7.如权利要求6所述的基于机器学习的自动接口测试装置,其特征在于,所述运行记录获取模块包括:
消息队列读取单元,用于通过日志系统的消息队列获取所述被测系统的运行记录。
8.如权利要求6所述的基于机器学习的自动接口测试装置,其特征在于,所述参数获取模块包括:
字符匹配单元,用于通过关键字符匹配,截取所述运行记录中的输入参数、输出参数及API请求协议。
9.如权利要求6所述的基于机器学习的自动接口测试装置,其特征在于,所述测试代码生成模块包括:
执行代码生成单元,用于根据所述输入参数及API请求协议生成调用被测系统的执行代码;
执行代码结果接收设置单元,用于设置用于接收所述执行代码被执行后的实际输出参数;以及
结果比较单元,用于将自运行记录中获取的输出参数作为预期输出参数,生成用于对所述实际输出参数与所述预期输出参数进行对比的分析代码。
10.如权利要求6所述的基于机器学习的自动接口测试装置,其特征在于,所述自动接口测试装置还包括:
测试报告生成模块,用于在执行所述API接口测试代码之后,生成用于反应所述被测系统的API接口准确率的测试报告。
CN202010717743.6A 2020-07-23 2020-07-23 一种基于机器学习的自动接口测试方法及装置 Active CN111782546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010717743.6A CN111782546B (zh) 2020-07-23 2020-07-23 一种基于机器学习的自动接口测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010717743.6A CN111782546B (zh) 2020-07-23 2020-07-23 一种基于机器学习的自动接口测试方法及装置

Publications (2)

Publication Number Publication Date
CN111782546A true CN111782546A (zh) 2020-10-16
CN111782546B CN111782546B (zh) 2021-10-01

Family

ID=72763947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010717743.6A Active CN111782546B (zh) 2020-07-23 2020-07-23 一种基于机器学习的自动接口测试方法及装置

Country Status (1)

Country Link
CN (1) CN111782546B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328486A (zh) * 2020-11-06 2021-02-05 深圳壹账通智能科技有限公司 接口自动化测试方法、装置、计算机设备及存储介质
CN112631694A (zh) * 2020-12-11 2021-04-09 远光软件股份有限公司 一种api接口封装调用方法及系统
CN113010413A (zh) * 2021-02-20 2021-06-22 烽火通信科技股份有限公司 一种接口自动化测试方法和装置
CN114253867A (zh) * 2022-03-02 2022-03-29 北京仁科互动网络技术有限公司 基于神经网络模型的自动化测试方法、装置及系统
CN115776456A (zh) * 2022-11-28 2023-03-10 重庆长安汽车股份有限公司 通信协议测试方法、装置、测试设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103313289A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 Wap系统自动化测试系统和方法
CN105681126A (zh) * 2015-12-30 2016-06-15 合一网络技术(北京)有限公司 一种基于协议接口的自动化测试方法及系统
CN108762742A (zh) * 2018-05-18 2018-11-06 深圳壹账通智能科技有限公司 数据流向及业务流向的分析方法、装置、设备及介质
CN109271313A (zh) * 2018-08-13 2019-01-25 中国平安财产保险股份有限公司 代码测试方法、装置及计算机可读存储介质
US20190129773A1 (en) * 2017-10-27 2019-05-02 Internaitonal Business Machines Corporation Web api recommendations based on usage in cloud-provided runtimes
CN109783367A (zh) * 2018-12-15 2019-05-21 中国平安人寿保险股份有限公司 接口测试方法、装置、计算机装置及存储介质
CN109828900A (zh) * 2018-12-14 2019-05-31 深圳壹账通智能科技有限公司 测试脚本自动生成方法、装置、电子设备及存储介质
CN109960653A (zh) * 2019-02-18 2019-07-02 天津五八到家科技有限公司 回归测试方法、装置、设备和存储介质
CN110287069A (zh) * 2019-05-21 2019-09-27 平安银行股份有限公司 Esb接口自动化测试方法、服务器及计算机可读存储介质
CN110309064A (zh) * 2019-05-30 2019-10-08 重庆金融资产交易所有限责任公司 基于日志记录的单元测试方法、装置、设备及存储介质
CN111190808A (zh) * 2018-11-14 2020-05-22 北京京东尚科信息技术有限公司 自动化测试方法、系统、装置和计算机可读存储介质
CN111209181A (zh) * 2018-11-21 2020-05-29 北京京东尚科信息技术有限公司 回归测试方法、系统、装置以及计算机存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103313289A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 Wap系统自动化测试系统和方法
CN105681126A (zh) * 2015-12-30 2016-06-15 合一网络技术(北京)有限公司 一种基于协议接口的自动化测试方法及系统
US20190129773A1 (en) * 2017-10-27 2019-05-02 Internaitonal Business Machines Corporation Web api recommendations based on usage in cloud-provided runtimes
CN108762742A (zh) * 2018-05-18 2018-11-06 深圳壹账通智能科技有限公司 数据流向及业务流向的分析方法、装置、设备及介质
CN109271313A (zh) * 2018-08-13 2019-01-25 中国平安财产保险股份有限公司 代码测试方法、装置及计算机可读存储介质
CN111190808A (zh) * 2018-11-14 2020-05-22 北京京东尚科信息技术有限公司 自动化测试方法、系统、装置和计算机可读存储介质
CN111209181A (zh) * 2018-11-21 2020-05-29 北京京东尚科信息技术有限公司 回归测试方法、系统、装置以及计算机存储介质
CN109828900A (zh) * 2018-12-14 2019-05-31 深圳壹账通智能科技有限公司 测试脚本自动生成方法、装置、电子设备及存储介质
CN109783367A (zh) * 2018-12-15 2019-05-21 中国平安人寿保险股份有限公司 接口测试方法、装置、计算机装置及存储介质
CN109960653A (zh) * 2019-02-18 2019-07-02 天津五八到家科技有限公司 回归测试方法、装置、设备和存储介质
CN110287069A (zh) * 2019-05-21 2019-09-27 平安银行股份有限公司 Esb接口自动化测试方法、服务器及计算机可读存储介质
CN110309064A (zh) * 2019-05-30 2019-10-08 重庆金融资产交易所有限责任公司 基于日志记录的单元测试方法、装置、设备及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328486A (zh) * 2020-11-06 2021-02-05 深圳壹账通智能科技有限公司 接口自动化测试方法、装置、计算机设备及存储介质
CN112631694A (zh) * 2020-12-11 2021-04-09 远光软件股份有限公司 一种api接口封装调用方法及系统
CN112631694B (zh) * 2020-12-11 2023-08-11 远光软件股份有限公司 一种api接口封装调用方法及系统
CN113010413A (zh) * 2021-02-20 2021-06-22 烽火通信科技股份有限公司 一种接口自动化测试方法和装置
CN114253867A (zh) * 2022-03-02 2022-03-29 北京仁科互动网络技术有限公司 基于神经网络模型的自动化测试方法、装置及系统
CN115776456A (zh) * 2022-11-28 2023-03-10 重庆长安汽车股份有限公司 通信协议测试方法、装置、测试设备及存储介质

Also Published As

Publication number Publication date
CN111782546B (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
CN111782546B (zh) 一种基于机器学习的自动接口测试方法及装置
CN108415832B (zh) 接口自动化测试方法、装置、设备及存储介质
CN110941563A (zh) 自动化脚本测试方法及装置
CN110515827A (zh) 自动化测试方法、装置、计算机设备及存储介质
EP4050867A2 (en) Method and apparatus of synchronizing data, electronic device and storage medium
CN111831536A (zh) 一种自动化测试方法和装置
CN114328250A (zh) 软件系统自动自检方法、介质和装置
CN113760730A (zh) 一种自动化测试的方法和装置
CN112445860B (zh) 一种处理分布式事务的方法和装置
US10803861B2 (en) Method and apparatus for identifying information
CN112910855B (zh) 一种样例报文处理方法及装置
CN110806967A (zh) 一种单元测试方法和装置
CN113704079A (zh) 基于Protobuf的接口测试方法和装置
CN110333897A (zh) 一种接口配置方法、装置、介质和电子设备
CN111178014A (zh) 一种处理业务流程的方法和装置
CN111158661A (zh) 系统接口对接方法、装置、介质及电子设备
CN113268417B (zh) 一种任务执行方法和装置
CN112749204A (zh) 一种读取数据的方法和装置
CN113688152B (zh) 一种系统功能自校验方法和装置
CN113342633B (zh) 一种性能测试方法和装置
CN117827630A (zh) 一种测试脚本的生成方法和装置
CN117130990A (zh) 一种数据处理方法和装置
CN118035217A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN116627478A (zh) 一种文件数据处理方法、装置、电子设备及可读存储介质
CN114237645A (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