CN111026631A - 接口自动化检测方法、装置和服务器 - Google Patents
接口自动化检测方法、装置和服务器 Download PDFInfo
- Publication number
- CN111026631A CN111026631A CN201811174525.1A CN201811174525A CN111026631A CN 111026631 A CN111026631 A CN 111026631A CN 201811174525 A CN201811174525 A CN 201811174525A CN 111026631 A CN111026631 A CN 111026631A
- Authority
- CN
- China
- Prior art keywords
- test
- testing
- submodel
- parameter information
- parameter
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 81
- 238000012360 testing method Methods 0.000 claims abstract description 330
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000002159 abnormal effect Effects 0.000 claims description 47
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000007689 inspection Methods 0.000 claims description 3
- 230000005856 abnormality Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000002347 injection Methods 0.000 description 8
- 239000007924 injection Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000013522 software testing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 238000007667 floating Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000012466 permeate Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
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
技术领域
本发明涉及软件测试领域,尤其涉及一种接口自动化检测方法、装置和服务器。
背景技术
软件测试是一种对实际输出与预期输出的审核比较的过程,是保证软件质量提高开发效率的关键,软件测试在整个产品开发系统中占据很大的比重。
随着软件行业的急速发展,企业对产品质量和用户体验越发的重视,软件测试已经成为企业重点建设和投资的领域,目的就是在产品交付质量和用户体检方面得到改善。虽然企业通过软件测试等方式排查开发程序的业务问题,但是,对于研发人员开发过程中产生的很多非业务问题,不能及时有效地发现,导致软件测试过程中出现很多非业务问题,需要多次返工,严重影响了产品的研发进度,并造成人力成本的浪费。
因此,如何快速有效地发现系统或者软件中存在的非业务问题,是目前需要解决的问题。
发明内容
针对现有技术存在的不足之处,本申请提出了提供一种对接口进行自动化测试的方法和装置,其有效地解决现有技术中存在的低级代码质量问题,提高了测试效率。
第一方面,本申请实施例提供了一种接口自动化检测方法,该方法包括:
检测是否存在符合预设编码规范的测试对象,若存在,则启动对所述测试对象的自动检测;
所述自动检测包括:
依据所述编码规范,获取所述测试对象的接口信息;
根据所述接口信息获得相应的参数信息;
调用预先建立的异常检测模型对所述参数信息进行测试,得到测试报告。
第二方面,本申请实施例还提供了一种接口自动化检测装置,包括:
测试对象检测模块,用于检测是否存在符合预设编码规范的测试对象;
自动化检测模块,用于若存在,则启动对测试对象的自动化检测;
其中,自动化检测模块包含:
第一获取子模块,用于依据编码规范,获取测试对象的接口信息;
第二获取子模块,用于根据接口信息获取相应的参数信息;
检测子模块,用于调用预先建立的异常检测模型对参数信息进行测试,得到测试报告。
第三方面,本申请实施例还提供了一种服务器,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行上述程序时实现本申请实施例描述的接口自动化测试方法。
与现有技术相比,本申请技术方案旨在解决应用程序代码中低级错误不能及时有效地处理的问题,通过在服务器上预先建立的异常检测模型对客户端上传的应用程序代码进行低级错误检测。从而缩短了测试测试周期,提高了测试效率。
进一步地,通过设置异常检测模型的测试子模型,针对性地排查人为低级错误,降低了人工反复测试的成本和时间。
进一步地,通过规范化编写接口标准,提高了接口测试的集成效率。
进一步地,生成异常关键字对应的测试报告,直观反映测试结果,为用户提供了可视化信息,便于分析问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,附图仅用于示出优选实施方法的目的,而并不认为是对本发明的限制。另外还需要说明的是,为了便于描述,附图中仅示出了本发明相关的部分而非全部。
图1是本申请实施例接口自动化检测方法的方法流程示意图;
图2是本申请实施例调用异常检测模型对参数信息进行测试的方法流程示意图;
图3是本申请实施例接口自动化检测装置的结构示意图;
图4是本申请实施例接口自动化检测装置的自动化检测模块的结构示意图;
图5是本申请实施例接口自动化检测装置的检测子模块结构示意图;
图6是本申请实施例接口自动化检测装置的报告生成子模块结构示意图;
图7是本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
第一方面,本实施例提供了一种接口自动化检测方法的示例性流程图。该方法可以在服务器侧执行。
如图1所示,该方法包括:
步骤110,检测是否存在符合预设编码规范的测试对象。
接口可以大致分为两类:程序内部的接口和系统对外的接口。其中,系统对外的接口用于从网站或者服务器上获取资源或信息,以实现数据库资源共享。程序内部的接口是指系统内部的模块之间的交互组件。例如网站论坛BBS系统中,可能存在登录模块、发帖模块等等,这些模块之间交互组件为BBS系统内部提供调用途径,这种交互组件即可以称为内部接口。常见接口,例如webservice接口和httpapi接口。本申请实施例中,按照业务测试场景具体业务功能,分为登录接口,出仓接口,查询接口等等。
接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试主要基于测试对象的业务功能测试,现有的接口测试不能对接口参数的低级错误进行自动化测试。其中测试对象,例如可以是开发人员通过jenkins平台提交到存储区域git的程序代码,或者可以是经过jenkins触发检测得到完成打包的程序代码。检测测试对象是否存在,例如可以通过触发机制检测是否存在测试对象,或者实时或者定时检测是否存在测试对象,或者响应于检测请求检测是否存在测试对象等方式。其中触发机制,例如开发人员将完成的程序代码提交到存储区域git,则jenkins平台将程序代码发布到服务器时,可以触发自动检测。实时检测测试对象或者定时检测,例如按照预定时间定时到存储区域获取待检测的代码作为测试对象。还可以是开发人员在提交程序代码到存储区域git时,将测试对象发送到对应的服务器,并向服务器发送提交请求,以实现自动化测试的触发。该提交请求例如可以是HTTP请求。
现有技术中,研发人员在编写完成代码程序后,将本地的代码程序上传或提交至Gitlab。然后通过Jenkins平台的触发机制,将测试对象发送到对应的服务器,并向服务器发送提交请求,以实现自动化测试的触发。该提交请求例如可以是HTTP请求。
服务器响应于提交请求,获取或接收到测试对象,并自动地对测试对象进行分析测试。其中,测试对象例如可以是按照swagger规范编写的符合HTTP协议的接口程序代码。服务器可以自动检测完成按照swagger规范编写的程序代码。如果不是按照swagger规范编写的程序代码,也可以通过手动录入的方式获取。这些程序代码均可以作为测试对象。
步骤120,若存在,则启动对测试对象的自动检测。
在步骤120中,自动检测可以包括:
步骤1201,根据依据编码规范,获取测试对象的接口信息;
步骤1202,根据接口信息获得相应的参数信息;
步骤1203,调用预先建立的异常检测模型对参数信息进行测试,得到测试报告。
获取测试对象的接口信息。其中接口信息,例如可以是用户信息接口,出仓信息接口等。其中,用户信息接口例如可以包括姓名、年龄、出生日期、联系方式等字段,出仓信息接口,例如可以包括流水单号,物品名称,数量等字段。
接收测试对象之后,可以确定测试对象的接口信息,在确定接口信息之后,可以进一步基于接口信息获取与之关联的参数信息。
获取参数信息的方式,例如可以通过识别接口信息的请求地址;基于请求地址获取测试对象的参数信息。从接口信息提取参数信息,参数信息与接口信息相关,例如用户信息接口可以包括姓名、年龄、出生日期等,业务信息接口,例如可以包括实例名称、业务开展时间、业务结束时间等,不同的接口信息对应的参数可能不同。
利用预先建立的异常检测模型对参数信息进行逐一测试。预先建立的异常检测模型是基于测试过程中常见的四类问题设置的,例如空指针引用异常、下标越界异常、数字格式异常、传递非法参数异常等。
这四种异常情况均表示代码质量异常,不会渗入到业务逻辑层面,因此可以更好的适配更多接口。
其中,空指针引用异常通过注入空置的测试场景,测试是否产生异常结果,注入空置的形式例如可以是“”字符串,“null”字符串,或者空格表示不输入任何值。
下表越界异常通过注入下标越界值的测试场景,测试是否因下标越界引发异常。注入越界值的形式例如可以是88,888,8888,或者random随机数,例如10000~100000000。
数字格式异常通过注入异常格式的测试场景,测试是否因注入异常格式引发异常。数字格式异常可以根据不同的参数信息来区分,例如当参数信息为整数型integer,注入异常格式例如可以是英文字母组合,日期,中文字符,异常字符串,浮点数等等。具体地,例如可以是“bdp-test”,“2018/08/08”,“接口自动化测试模型测试”, “123456.78”。
传递非法参数异常通过注入异常值的测试场景,测试是否因异常值引发场景异常。异常值,例如可以是异常字符串,随机数,日期,或者非法字符等。具体地,例如可以是 “2018-07-07”,“select----!”,“!--;insert into”,random随机数,例如10000~100000000。
针对上述四种情况分别建立测试子模型用于针对性检测程序代码中存在的问题。即异常检测模型可以包括空指针引用异常测试子模型、下标越界异常测试子模型、数字格式异常测试子模型、传递非法参数异常测试子模型。
在获取参数信息后,通过上述的测试子模型对每个参数信息进行逐步测试,并根据测试的结果生成测试报告,测试报告中例如可以包括空指针引用异常(NullPointerException)、下标越界异常(IndexOutOfBoundsException)、数字格式异常(NumberFormatException)、传递非法参数异常(IllegalArgumentException)的统计结果。本申请实施例通过异常检测模型扫描测试对象,调用检测程序中所需要检测的接口字段信息;基于参数信息,输入异常检测模型下相应的测试参数,生成相应的测试用例,得到运行结果。其有效地解决了现有技术中针对非业务问题导致的测试时间浪费问题。有效地提高了测试效率。
本申请实施例中,在执行步骤110之后,若不存在,则继续等待测试对象。
进一步地,本申请实施例提供了调用预先建立的异常检测模型对参数信息进行测试,得到测试报告。图2示出了调用异常检测模型对参数信息进行测试的方法流程示意图。
本申请实施例中异常检测模型可以为是空指针引用异常测试子模型、下标越界异常测试子模型、数字格式异常测试子模型、传递非法参数异常测试子模型中的任意一种,或任意两种以上组合。
如图2所示,在步骤1203中,调用预先建立的异常检测模型对参数信息进行测试,得到测试报告还可以包括:
步骤1301,调用空指针引用异常测试子模型对参数信息进行测试,得到第一测试结果。
其中,空指针引用异常测试子模型用于向参数信息注入第一测试参数。
步骤1302,调用下标越界异常测试子模型对参数信息进行测试,得到第二测试结果。
其中,下标越界异常测试子模型用于向参数信息注入第二测试参数。
步骤1303,调用数字格式异常测试子模型对参数信息进行测试,得到第三测试结果。
其中,数字格式异常测试子模型用于向参数信息注入第三测试参数。
步骤1304,调动传递非法参数异常测试子模型对参数信息进行测试,得到第四测试结果。
其中,传递非法参数异常测试子模型用于向所述参数信息注入第四测试参数。
步骤1305,基于测试结果生成测试报告。
本申请实施例中,预先建立的四个测试子模型,例如空指针引用异常测试子模型、下标越界异常测试子模型、数字格式异常测试子模型、传递非法参数异常测试子模型。通过四个测试子模型向参数信息注入异常值来生成测试场景,即生成测试用例,并通过测试用例的运行获得与之关联的运行结果。
本申请实施例,调用每个测试子模型对参数信息(也可称为接口参数)进行检测。
如下表1为接口自动化检测过程测试信息表,表中的请求参数为获取参数信息,测试四种异常时的输入用例中的信息为测试参数,进行自动化测试后的会返回测试结果,即下表中的返回参数。测试接口地址名是测试对象请求信息中的测试地址,方法描述代表被测试对象的请求信息的功能作用,请求方式代表被测试对象的请求信息中的方式。
例如空指针引用异常检测子模型,先检测出所有测试对象的参数信息,然后依次对这些接口的所有参数注入""字符串、"null"字符串、不输入任何值进行测试。例如http://10.202.77.200/Test这个接口中包含3个参数,分别是(userName)姓名、(age)年龄、(birthday)出生日期,那么该模型就会注入""字符串,"null"字符串,不输入任何值三种参数进行提交测试。根据接口返回的内容判断此接口是否存在问题,判断依据为如果该接口返回的消息出现NullPointerException(空指针引用异常)的java原生异常,则代表此接口没有对异常进行处理,此时模型会认为这个测试是不会通过的,并且会在测试报告中输出详细信息;如果接口的返回信息中做了处理,返回的消息并无包含NullPointerException的java原生异常,则模型会认为此接口对异常做了封装处理,会认为此次测试是通过的,同时也会输出详细信息到测试报告中,此次模型测试结束。本申请实施例中,可以针对任何参数信息都进行是否对空值进行处理的判断。
对于下标越界引起的异常检测,该下标越界异常检测子模型会先检测出所有被测试对象的参数信息,拿到每个接口信息所需要的参数及信息,然后依次对这些接口的所有参数注入值如下:88,888,8888,random随机数(10000~100000000)进行提交测试,例如:http://10.202.77.200/Test这个接口中包含3个参数,分别是(userName)姓名、(age)年龄、(birthday)出生日期,那么该模型就会对数字信息(年龄为数字)的参数进行注入,根据接口返回的内容判断此接口是否存在问题,判断依据为如果该接口返回的消息出现IndexOutOfBoundsException(下标越界异常)的java原生异常,则代表此接口没有对异常进行处理,此时模型会认为这个测试时不通过的,并会在测试报告中输出详细信息;如果接口的返回信息中做了处理,返回的消息并无包含IndexOutOfBoundsException的java原生异常,则模型会认为此接口对异常做了封装处理,会认为此次测试时通过的,同时也会输出详细信息到测试报告中,此次模型测试。其中,注入异常下标例如可以是针对数组的检测。例如调用数字格式异常测试子模型对参数信息进行测试,例如可以通过向参数信息注入异常数据格式,以检测参数信息设置是否针对异常数据格式编写对应的处理代码。如果注入异常数据格式的测试场景可以正常运行,则不会报错。如果注入异常数据格式的测试场景不可以正常运行,则报错,说明该参数信息未进行异常数据格式处理。本申请实施例中异常数据格式例如可以是整数型,字符串型等。如果数据格式是整数型,则输入非整数型的内容用于检测参数信息是否异常。如果数据格式是字符串型,则输入非字符串型内容用于检测参数信息是否异常。
例如调动传递非法参数异常测试子模型对参数信息进行测试,例如可以通过向参数信息注入异常传递参数,以检测参数信息设置是否针对异常传递参数编写对应的处理代码。如果注入异常传递参数的测试场景可以正常运行,则不会报错。如果注入异常传递参数的测试场景不可以正常运行,则报错,说明该参数信息未进行注入异常传递参数。其中,异常参数传递是指实际参数将参数值传递给相应的形式参数的过程中出现错误。
具体的,例如测试对象为用户信息接口;基于用户信息接口可以获取得到参数信息,参数信息例如可以包括用户姓名,用户出生日期,用户联系方式等。
通过空指针引用异常测试子模型对用户姓名进行异常测试,以获取一类测试结果,在空指针引用异常测试子模型可以通过分别注入“”字符串,“null”字符串,或者空格表示不输入任何值来检测异常,然后对用户姓名依次进行下标越界异常测试子模型、数字格式异常测试子模型、传递非法参数异常测试子模型等测试。
本申请实施例,可以针对获取参数信息可以依次利用预先建立的四个测试子模型对参数信息逐一进行测试。
进一步地,在完成测试后,基于测试结果生成测试报告,例如可以基于异常关键字对运行结果进行断言,来生成测试报告,该步骤还可以包括:
判断测试结果中是否包含异常关键字;
若包含,提取异常关键字进行统计,输出测试报告。
本申请实施例中,异常关键字例如可以是空指针引用异常(NullPointerException)、下标越界异常(IndexOutOfBoundsException)、数字格式异常(NumberFormatException)、传递非法参数异常(IllegalArgumentException)等,在获取运行结果后,通过异常关键字的断言判断来生成测试报告。例如运行结果中是否包含NullPointerException,如果包含,则统计为异常接口,或者未通过接口测试,并累计生成测试报告,用于分析用户提交的代码质量。
测试报告中主要包含以下的参数:测试模型、测试注入值、测试返回值、参数名称、参数信息、接口请求信息、接口请求地址、测试异常次数、接口异常返回值、异常信息。
本申请实施例中,按照特定信息的异常情况依次自动进行循环测试,重复执行各测试子模型的测试步骤,得到每个测试接口的参数信息在四种异常测试子模型模型下生成的测试报告。
测试报告例如可以是将自动化测试的结果以报表形式产生的汇总结果,例如,按照测试用例纬度和测试接口数量进行统计,绘制出成功和失败的占比图。其中测试用例纬度的对比,含义为假设自动测试了10个用例,其中有2个失败8个成功,成功率为80%;测试接口数量纬度的对比,含义为有100个接口地址参与测试,测试成功90个,测试失败10个接口,成功率为90%,失败率越高,代码质量越差。
在上述实施例基础上,该方法还可以包括:
向测试对象的提供者发送测试报告。
在生成测试报告之后,本申请实施例还可以向测试对象的提供者发送测试报告,测试对象的提供者例如可以是研发人员,项目经理等。发送方式,例如可以邮件,即时通信方式等。
本申请实施例通过向测试对象的提供者发送测试报告,来提高用户的体验度,进一步提升测试平台的多元化价值。
本实施例提供了一种接口自动化检测装置。图3示出了本申请实施例提供的接口自动化检测装置。该装置可以布置在服务器侧。
如图3所示,该装置200包括:
测试对象检测模块210,用于检测是否存在符合预设编码规范的测试对象;
自动化检测模块220,用于若存在,则启动自动化检测模块230对测试对象的自动化检测;
其中,如图4所示,自动化检测模块220包含:
第一获取子模块2201,用于依据编码规范,获取测试对象的接口信息;
第二获取子模块2202,用于根据接口信息获取相应的参数信息;
检测子模块2203,用于调用预先建立的异常检测模型对参数信息进行测试,得到测试报告。
本申请实施例中,异常检测模型例如包括以下任一项或任意两项及以上的组合:
空指针引用异常测试子模型、下标越界异常测试子模型、
数字格式异常测试子模型、传递非法参数异常测试子模型。本申请实施例还提供了检测子模块2203的结构示意图。
如图5所示,其中,检测子模块2203还可以包括:
第一测试子模块2301,用于调用空指针引用异常测试子模型对参数信息进行测试,得到第一测试结果。
其中空指针引用异常测试子模型用于向参数信息注入第一测试参数。
第二测试子模块2302,用于调用下标越界异常测试子模型对参数信息进行测试,得到第二测试结果。
其中,下标越界异常测试子模型用于向参数信息注入第二测试参数。
第三测试子模块2303,用于调用数字格式异常测试子模型对参数信息进行测试,得到第三测试结果。
其中,数字格式异常测试子模型用于向参数信息注入第三测试参数。
第四测试子模块2304,用于调动传递非法参数异常测试子模型对参数信息进行测试,得到第四测试结果。
其中,传递非法参数异常测试子模型用于向参数信息注入第四测试参数。
报告生成子模块2305,用于基于测试结果生成测试报告。
进一步地,如图6所示,报告生成子模块2305还可以包括:
判断子模块2501,用于判断检测模块中的测试结果是否包含异常关键字。
统计子模块2502,用于提取异常关键字进行统计,输出测试报告。
应当理解,装置200中记载的诸单元或模块与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于装置200及其中包含的单元,在此不再赘述。装置200可以预先实现在电子设备的浏览器或其他安全应用中,也可以通过下载等方式而加载到电子设备的浏览器或其安全应用中。装置200中的相应单元可以与电子设备中的单元相互配合以实现本申请实施例的方案。
下面参考图7,其示出了适于用来实现本申请实施例的服务器的计算机系统600的结构示意图。
如图7所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考图1描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,上述计算机程序包含用于执行图1的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、获取模块以及测试模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,接收模块还可以被描述为“用于接收测试对象的模块”。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案
通过以上描述可知:本领域技术人员可以清楚地了解到本申请必须借助硬件后台方式来实现。基于此理解,本申请的技术方案本质上可以说对现有技术做出贡献的部分借助计算机的开发程序形式体现出来,包括若干指令使得一台计算机设备(个人计算,服务器,或者网络设备等)执行本申请实施例的某些部分所述方法。
Claims (10)
1.一种接口自动化检测方法,其特征在于,该方法包括:
检测是否存在符合预设编码规范的测试对象,若存在,则启动对所述测试对象的自动检测;
所述自动检测包括:
依据所述编码规范,获取所述测试对象的接口信息;
根据所述接口信息获得相应的参数信息;
调用预先建立的异常检测模型对所述参数信息进行测试,得到测试报告。
2.根据权利要求1所述的接口自动化检测方法,其特征在于,所述符合预设编码规范的测试对象是按照swagger规范编写的符合HTTP协议的程序代码。
3.根据权利要求1所述的接口自动化检测方法,其特征在于,所述异常检测模型包括以下任一项或任意两项及以上的组合:
空指针引用异常测试子模型、下标越界异常测试子模型、
数字格式异常测试子模型、传递非法参数异常测试子模型。
4.根据权利要求3所述的接口自动化检测方法,其特征在于,所述调用预先建立的异常检测模型对所述参数信息进行测试,得到测试报告,包括:
调用所述空指针引用异常测试子模型对所述参数信息进行测试,得到第一测试结果,所述空指针引用异常测试子模型用于向所述参数信息注入第一测试参数;和/或
调用所述下标越界异常测试子模型对所述参数信息进行测试,得到第二测试结果,所述下标越界异常测试子模型用于向所述参数信息注入第二测试参数;和/或
调用所述数字格式异常测试子模型对所述参数信息进行测试,得到第三测试结果,所述数字格式异常测试子模型用于向所述参数信息注入第三测试参数;和/或
调动所述传递非法参数异常测试子模型对所述参数信息进行测试,得到第四测试结果,所述传递非法参数异常测试子模型用于向所述参数信息注入第四测试参数;
基于所述测试结果生成所述测试报告。
5.根据权利要求4所述的接口自动化检测方法,其特征在于,所述基于所述测试结果生成所述测试报告,包括:
判断所述测试结果中是否包含异常关键字;
若包含,提取所述异常关键字进行统计,输出所述测试报告。
6.一种接口自动化检测装置,其特征在于,包括:
测试对象检测模块,用于检测是否存在符合预设编码规范的测试对象;
自动化检测模块,用于若存在,则启动自动化检测模块对所述测试对象的自动化检测;
其中,所述自动化检测模块包含:
第一获取子模块,用于依据所述编码规范,获取所述测试对象的接口信息;
第二获取子模块,用于根据所述接口信息获取相应的参数信息;
检测子模块,用于调用预先建立的异常检测模型对所述参数信息进行测试,得到测试报告。
7.根据权利要求6所述的接口自动化检测装置,其特征在于,所述异常检测模型包括以下任一项或任意两项及以上的组合:
空指针引用异常测试子模型、下标越界异常测试子模型、
数字格式异常测试子模型、传递非法参数异常测试子模型。
8.根据权利要求7所述的接口自动化检测装置,其特征在于,所述检测子模块包括:
第一测试子模块,用于调用所述空指针引用异常测试子模型对所述参数信息进行测试,得到第一测试结果,所述空指针引用异常测试子模型用于向所述参数信息注入第一测试参数;和/或
第二测试子模块,用于调用所述下标越界异常测试子模型对所述参数信息进行测试,得到第二测试结果,所述下标越界异常测试子模型用于向所述参数信息注入第二测试参数;和/或
第三测试子模块,用于调用所述数字格式异常测试子模型对所述参数信息进行测试,得到第三测试结果,所述数字格式异常测试子模型用于向所述参数信息注入第三测试参数;和/或
第四测试子模块,用于调动所述传递非法参数异常测试子模型对所述参数信息进行测试,得到第四测试结果,所述传递非法参数异常测试子模型用于向所述参数信息注入第四测试参数;
报告生成子模块,用于基于所述测试结果生成所述测试报告。
9.根据权利要求8所述接口自动化检测装置,其特征在于,所述报告生成子模块包括:
判断子模块,用于判断检测模块中的测试结果是否包含异常关键字;
统计子模块,用于提取所述异常关键字进行统计,输出所述测试报告。
10.一种服务器,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811174525.1A CN111026631B (zh) | 2018-10-09 | 2018-10-09 | 接口自动化检测方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811174525.1A CN111026631B (zh) | 2018-10-09 | 2018-10-09 | 接口自动化检测方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026631A true CN111026631A (zh) | 2020-04-17 |
CN111026631B CN111026631B (zh) | 2024-03-26 |
Family
ID=70191046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811174525.1A Active CN111026631B (zh) | 2018-10-09 | 2018-10-09 | 接口自动化检测方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026631B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625406A (zh) * | 2020-04-29 | 2020-09-04 | 苏州欧立通自动化科技有限公司 | 基于Mac Os平台的多功能智能测试方法 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220370A1 (en) * | 2006-01-12 | 2007-09-20 | International Business Machines Corporation | Mechanism to generate functional test cases for service oriented architecture (SOA) applications from errors encountered in development and runtime |
CN101271421A (zh) * | 2007-03-22 | 2008-09-24 | 北京邮电大学 | 一种软件故障测试系统及方法 |
CN102043682A (zh) * | 2011-01-27 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流异常处理方法和系统 |
US20110252406A1 (en) * | 2010-04-07 | 2011-10-13 | International Business Machines Corporation | Facilitating use of model transformations |
CN102487293A (zh) * | 2010-12-06 | 2012-06-06 | 中国人民解放军理工大学 | 基于网控的卫星通信网异常检测方法 |
CN103678118A (zh) * | 2013-10-18 | 2014-03-26 | 北京奇虎测腾科技有限公司 | 一种Java源代码的合规性检测方法和装置 |
CN103778061A (zh) * | 2014-01-17 | 2014-05-07 | 南京航空航天大学 | 数组越界错误的自动检测和校正方法 |
CN103955426A (zh) * | 2014-04-21 | 2014-07-30 | 中国科学院计算技术研究所 | 一种检测c代码空指针引用的方法及系统 |
CN105607990A (zh) * | 2014-11-19 | 2016-05-25 | 腾讯科技(成都)有限公司 | 一种空指针崩溃的挖掘方法及装置 |
CN105975604A (zh) * | 2016-05-12 | 2016-09-28 | 清华大学 | 一种分布迭代式数据处理程序异常检测与诊断方法 |
CN107368408A (zh) * | 2017-05-31 | 2017-11-21 | 中国船舶工业综合技术经济研究院 | 一种面向接口的软件故障注入自动化测试方法 |
CN107729228A (zh) * | 2017-08-24 | 2018-02-23 | 北京网众共创科技有限公司 | 接口测试方法、装置、存储介质和处理器 |
CN108334447A (zh) * | 2017-12-31 | 2018-07-27 | 江苏易润信息技术有限公司 | 一种测试处理计算机软件异常的系统及方法 |
CN108388514A (zh) * | 2018-02-24 | 2018-08-10 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
CN108595952A (zh) * | 2018-03-30 | 2018-09-28 | 全球能源互联网研究院有限公司 | 一种电力移动应用软件漏洞的检测方法及系统 |
US20180285740A1 (en) * | 2017-04-03 | 2018-10-04 | Royal Bank Of Canada | Systems and methods for malicious code detection |
-
2018
- 2018-10-09 CN CN201811174525.1A patent/CN111026631B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220370A1 (en) * | 2006-01-12 | 2007-09-20 | International Business Machines Corporation | Mechanism to generate functional test cases for service oriented architecture (SOA) applications from errors encountered in development and runtime |
CN101271421A (zh) * | 2007-03-22 | 2008-09-24 | 北京邮电大学 | 一种软件故障测试系统及方法 |
US20110252406A1 (en) * | 2010-04-07 | 2011-10-13 | International Business Machines Corporation | Facilitating use of model transformations |
CN102487293A (zh) * | 2010-12-06 | 2012-06-06 | 中国人民解放军理工大学 | 基于网控的卫星通信网异常检测方法 |
CN102043682A (zh) * | 2011-01-27 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流异常处理方法和系统 |
CN103678118A (zh) * | 2013-10-18 | 2014-03-26 | 北京奇虎测腾科技有限公司 | 一种Java源代码的合规性检测方法和装置 |
CN103778061A (zh) * | 2014-01-17 | 2014-05-07 | 南京航空航天大学 | 数组越界错误的自动检测和校正方法 |
CN103955426A (zh) * | 2014-04-21 | 2014-07-30 | 中国科学院计算技术研究所 | 一种检测c代码空指针引用的方法及系统 |
CN105607990A (zh) * | 2014-11-19 | 2016-05-25 | 腾讯科技(成都)有限公司 | 一种空指针崩溃的挖掘方法及装置 |
CN105975604A (zh) * | 2016-05-12 | 2016-09-28 | 清华大学 | 一种分布迭代式数据处理程序异常检测与诊断方法 |
US20180285740A1 (en) * | 2017-04-03 | 2018-10-04 | Royal Bank Of Canada | Systems and methods for malicious code detection |
CN107368408A (zh) * | 2017-05-31 | 2017-11-21 | 中国船舶工业综合技术经济研究院 | 一种面向接口的软件故障注入自动化测试方法 |
CN107729228A (zh) * | 2017-08-24 | 2018-02-23 | 北京网众共创科技有限公司 | 接口测试方法、装置、存储介质和处理器 |
CN108334447A (zh) * | 2017-12-31 | 2018-07-27 | 江苏易润信息技术有限公司 | 一种测试处理计算机软件异常的系统及方法 |
CN108388514A (zh) * | 2018-02-24 | 2018-08-10 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
CN108595952A (zh) * | 2018-03-30 | 2018-09-28 | 全球能源互联网研究院有限公司 | 一种电力移动应用软件漏洞的检测方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625406A (zh) * | 2020-04-29 | 2020-09-04 | 苏州欧立通自动化科技有限公司 | 基于Mac Os平台的多功能智能测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111026631B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122258B (zh) | 用于测试接口的状态码校验的方法及设备 | |
CN107122296B (zh) | 用于测试接口的数据断言的方法及设备 | |
US20140068567A1 (en) | Determining relevant events in source code analysis | |
CN107092535B (zh) | 用于测试接口的数据存储的方法及设备 | |
CN111143192A (zh) | 接口自动化测试方法、装置以及相关产品 | |
CN114116496A (zh) | 自动化测试方法、装置、设备及介质 | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
GB2511329A (en) | Web service black box testing | |
US20070245313A1 (en) | Failure tagging | |
CN109240923B (zh) | 接口测试脚本的生成方法及计算机可读存储介质 | |
CN114816993A (zh) | 一种全链路接口测试方法、系统、介质及电子设备 | |
CN112084102A (zh) | 接口压力测试的方法和装置 | |
CN111026631A (zh) | 接口自动化检测方法、装置和服务器 | |
CN113407449A (zh) | 一种接口测试方法以及装置 | |
CN112433933A (zh) | 一种接口自动化测试的方法及设备 | |
CN112363939A (zh) | 快速生成模糊测试网络协议模板的方法及系统、设备 | |
CN116431522A (zh) | 一种低代码对象存储网关自动化测试方法及系统 | |
CN111444101A (zh) | 自动创建产品测试缺陷的方法及装置 | |
CN113238940B (zh) | 一种接口测试结果的比对方法、装置、设备和存储介质 | |
CN115599683A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN113448835B (zh) | 一种静态资源测试方法、装置、电子设备及存储介质 | |
CN110532186B (zh) | 利用验证码进行测试的方法、装置、电子设备和存储介质 | |
CN112580334A (zh) | 一种文案处理方法、装置、服务器及存储介质 | |
CN112650679B (zh) | 一种测试校验方法、装置及计算机系统 | |
CN114116519A (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 |