接口自动化测试方法与系统与流程

文档序号:15615291发布日期:2018-10-09 21:13阅读:149来源:国知局

本发明涉及计算机程序测试技术领域,尤其涉及一种接口自动化测试方法与系统。



背景技术:

目前,对于常规测试工具来说,测试用例的管理较为分散,测试用例之间的共享度不高,导致在测试过程中可能无法获取历史请求数据,如果发现有些请求数据可以作为测试场景,那么是没有办法找到的。此外,在执行测试用例进行检测的过程中,由于测试用例保存的位置不同,无法确保执行的测试用例是最新的版本。

目前的自动化测试方法存在以下问题:

1、自动化测试用例的使用者受限于测试端,对开发端不透明;开发端无法直接使用自动化测试用例。还需要自己构建请求,无法用测试用例验证程序功能;

2、自动化测试用例管理混乱,用例可读性差;

3、开发根据自动化测试报告,不能判定产生缺陷的原因,无历史数据支持分析定位缺陷;

4、项目周期需要测试人员不断支持重现缺陷,验证缺陷。



技术实现要素:

考虑到现有技术的上述问题,发明人构思了本发明,其涉及一种有效的自动化测试系统和方法,系统管理自动化测试过程,能够提高自动化测试应用率,丰富接口测试用例,使测试人员脱离缺陷复现验证环节,将缺陷问题前置,提高项目提测通过率,可实现用例共享,可被开发人员直接调用验证提测版本是否修复问题。

根据本发明的实施例,提供了一种基于接口自动化测试系统的接口自动化测试方法,其中,所述接口自动化测试系统与开发端、测试端、被测端以可通信方式连接,所述方法包括以下步骤:步骤1、从测试端接收测试用例执行请求,其中,所述测试用例执行请求包括测试用例本身、以及用于请求所述被测端执行测试用例的信息;步骤2、从所述测试用例执行请求中解析出所述被测端执行所述测试用例的所需信息,并将其发送到所述被测端;步骤3、在所述被测端执行所述测试用例完毕后,从所述被测端接收执行结果;步骤4、记录所述测试用例及其执行结果,用于由所述测试端和/或开发端调取。

根据本发明的实施例,还提供了一种基于接口自动化测试系统的接口自动化测试方法,其中,所述接口自动化测试系统与开发端、测试端、被测端以可通信方式连接,所述方法包括以下步骤:步骤1、所述测试端构造测试用例执行请求,其包括测试用例本身、用于请求所述被测端执行测试用例的信息、以及供所述测试系统进行监听的监听配置;步骤2、测试端将所述测试用例执行请求发送到所述被测端,同时,所述测试系统以监听方式获取所述测试用例执行请求;步骤3、所述被测端执行所述测试用例,并将执行结果返回到所述测试端,同时,所述测试系统以监听方式获取所述测试用例的执行结果;步骤4、所述测试系统记录所述测试用例及其执行结果,用于由所述测试端和/或开发端调取。

根据本发明的实施例,还提供了用于执行所述方法的接口自动化测试系统,其包括前端交互组件、用例记录组件、用例执行组件、用例调用组件、以及缺陷审核组件,其中,所述前端交互组件用于向所述测试端和/或所述开发端呈现交互界面,并从所述测试端和/或所述开发端获取输入信息,所述用例记录组件用于记录测试用例及其执行结果,所述用例执行组件用于将测试用例执行请求转发给所述被测端,并从所述被测端接收执行结果,所述用例调用组件用于根据所述测试端和/或所述开发端的输入,调取特定测试用例,并通过所述用例执行组件转发给所述被测端执行,所述缺陷审核组件用于根据预设条件识别与该情况对应的缺陷,并将识别结果发送到缺陷管理系统。

根据本发明的实施例,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有用于执行所述方法的程序,所述程序在被处理器运行时,执行所述方法的步骤。

本发明的有益效果主要在于:

1、请求体构建,用例随手保存,丰富测试用例与场景。不必担心录入数据丟失不见,或者需要再次人工记录刚才发生的场景;

2、失败场景再现,数据支持开发定位问题,可直观看出验证失败的具体原因,当时服务器的返回,运行环境,根据关键信息,可追踪服务器日志;

3、自动化用例对开发透明,开发过程中可任意执行指定用例,指定环境,检测缺险是否修复,是否引入回归问题。将测试前置;

4、测试人员更专注自动化用例的编写与实现,后期不参与缺陷复验与再验证问题,解放人力;

5、优化软件项目开发测试流程,突破现有管理缺陷流程。

附图说明

图1为示出根据本发明的实施例的接口自动化测试系统的运行环境和功能架构的示意图;

图2为根据本发明的一实施例的接口自动化测试方法的流程示意图;

图3和4为根据本发明的另一实施例的接口自动化测试方法的流程示意图;

图5示出了根据本发明实施例的安装了应用程序的系统的运行环境。

具体实施方式

本领域的技术人员能够理解,尽管以下的说明涉及到有关本发明的实施例的很多技术细节,但这仅为用来说明本发明的原理的示例、而不意味着任何限制。本发明能够适用于不同于以下例举的技术细节之外的场合,只要它们不背离本发明的原理和精神即可。

另外,为了避免使本说明书的描述限于冗繁,在本说明书中的描述中,可能对可在现有技术资料中获得的部分技术细节进行了省略、简化、变通等处理,这对于本领域的技术人员来说是可以理解的,并且这不会影响本说明书的公开充分性。

下面,结合附图对技术方案的实施作进一步的详细描述。

1、接口自动化测试系统

图1为示出根据本发明的实施例的接口自动化测试系统的运行环境和功能架构的示意图。

需要说明的是,图1仅为系统的一般性逻辑功能的示意图,其结合了实际业务流程而绘制,其中,各个模块的划分并不严格精确,这是因为所述系统及模块不意味着硬件实现,也可涉及软件层面的概念,各个模块之间可以存在交叉调用关系,严格意义上并非独立工作,实际上也难以将各个模块与业务流程中的各个步骤一一对应。因此,本领域的技术人员完全可以理解,图1仅用来帮助理解本发明的构思概要,而非用于限制本发明及其实施例的范围,本发明的实施例的具体技术方案以说明书的文字描述为准。

如图1所示,作为工作环境,根据本发明的实施例的接口自动化测试系统(自动化测试平台)被测端和缺陷管理系统,并可被测试端(测试人员)和开发端(开发人员)访问,其中,被测端表示被测试应用程序,即,测试过程中的被测对象,可以是具体实物,也可是提供特定服务的服务器。例如,一个被测应用程序有很多模块,交由不同的测试人员测试。

其中,缺陷跟踪管理系统主要完成对缺陷报告的记录、分析和状态更新等管理,通常为独立系统,例如,可采用bugfree、jira、testlink之类的管理软件。

其中,测试用例指的是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。由测试人员对被测端进行分析而完成。

根据本发明的实施例的接口自动化测试系统主要包括前端交互组件、用例记录组件、用例执行组件、用例调用组件、缺陷审核组件。

其中,所述前端交互组件用于向测试端(测试人员所使用的终端/客户端)提供参数输入界面,例如,web页面,其中可包括用于输入测试相关参数的输入框、动态录入框、动态选择要发送的请求参数的选框,等等,如图2所示。

这样,测试人员在开始测试时,可以在客户端上打开参数输入界面,在该界面上动态选择要发送的请求参数,另外,动态录入框可实时展现所输入的请求参数,参数输入界面将测试人员的输入组装成特定格式后,作为测试输入发送给该测试系统,其通过用例执行组件进一步将测试输入转发至被测端,被测端根据测试输入运行具体程序之后,将运行结果返回到该测试系统的用例执行组件。例如,将该用例的运行结果处理成json格式并通过所述前端交互组件生成相关界面,展现在测试端的web页面上。

然后,测试人员可根据当前用例的输入、及被测应用的返回数据(运行结果),确认当前场景是不是有效的场景,如果确认为有效场景,则可确认当前用例为有效用例,并可web页面上点击“保存”,将当前用例作为有效用力保存到测试系统的用例记录组件,并将被测应用的返回数据保存到用例记录组件,这样,通过用例的保存分享机制,可增加应用测试的覆盖率。

可选地,测试系统也可自动识别有效用例,并将测试人员输入的用例自动保存到用例记录组件。

可选地,根据本发明的实施例的接口自动化测试系统还可包括用例监听组件。其中,所述用例监听组件用于监听测试端发送到被测端的测试用例、以及被测端执行测试用例的结果。

这样,例如,由测试端以代码形式(用例代码)向被测端发送测试用例,同时,将用例监听组件的配置信息嵌入用例代码,这样,用例监听组件在测试端向被测端发送测试用例的同时,也能够获取该测试用例,例如包括输入参数、检查点(即,用例的预期运行结果,可为多个)等信息,类似地,用例监听组件在被测端向测试端返回用例运行结果的同时,也能够获取该用例运行结果。

之后,用例监听组件可将监听到的测试用例及其运行结果保存到用例记录组件,以便后续可由测试人员或者开发人员再次调用。

具体地,测试端发起用例执行时,用例监听组件通过监听得到用例代码,从中解析出用例信息,包括用例执行类、方法名、发送的请求参数等,在被测端返回用例运行结果时,用例监听组件同样通过监听得到返回结果信息。

接下来,用例监听组件将监听并解析出的用例信息保存到用例记录组件中,用例记录组件将用例信息结构化存储。将与用例执行相关的信息(来自于用例监听组件的双向监听数据)记录到用例执行组件,其中,与用例执行相关的信息例如包括执行服务器、请求参数、请求返回、错误信息等,同样地,执行记录组件将与用例执行相关的信息结构化存储。

之后,可以理解,基于上述用例及其执行信息的保存,用例及其执行信息可在测试端和开发端之间共享,即,开发人员可以在测试系统中调取测试人员编写并执行的用例,以在每次更新被测应用时进行自测。

具体地,例如,开发人员可在开发端通过web浏览器登入测试系统,用例调用组件通过前端交互组件向开发端展示用例列表,其中列出了如上所述保存的各个有效用例,开发人员可在web页面上选择某个用例,并点击“执行”按钮或链接,之后用例执行组件将该用例中与执行相关的信息(包括执行参数等)转发到被测端。这样,开发人员自身无需编写测试用例、也无需每次向测试人员索要测试用例,即可在测试系统中随时调取之前已经验证有效的测试用例。

缺陷审核组件用于:每当用例执行失败时(例如,被测端(在检查点)返回错误结果时),根据预设条件自动或通过人工审核,来判定该用例执行失败事件是否由被测应用程序的缺陷导致。

其中,在自动审核的情况下,缺陷审核组件根据预设条件判定该用例执行失败事件是否由被测应用程序的缺陷导致,并将判定结果提交到缺限管理系统。

另一方面,在人工审核的情况下,缺陷审核组件通过前端交互组件将用例执行失败的细节呈献给测试端或开发端,以供测试人员或开发人员进行人工审核,审核完成后通过测试系统界面上的操作将审核定结果提交到缺限管理系统。

此外,本发明的不同实施例也可以通过软件模块或存储在一个或多个计算机可读介质上的计算机可读指令的方式实现,其中,所述计算机可读指令是当被处理器或设备组件执行时,执行本发明所述的不同的实施例。类似地,软件模块、计算机可读介质和硬件部件的任意组合都是本发明预期的。所述软件模块可以被存储在任意类型的计算机可读存储介质上,例如ram、eprom、eeprom、闪存、寄存器、硬盘、cd-rom、dvd等等。

2、接口自动化测试方法

图2为根据本发明的实施例的接口自动化测试方法的流程示意图。图3为根据本发明的另一实施例的接口自动化测试方法的流程示意图。

参照图2和3,根据本发明的实施例的接口自动化测试方法由上述接口自动化测试系统执行,其中,所述接口自动化测试系统能够向测试端和开发端呈现用于输入和读取测试用例相关信息的交互界面,能够将测试端和/或开发端输入的测试用例转发到被测端、并从被测端获取用例执行结果。此外,所述接口自动化测试系统还能够以监听方式获取测试端和被测端之间的用例执行相关的信息流。

如图2所示,所述接口自动化测试方法包括以下步骤:

步骤s100、从测试端接收测试用例执行请求,所述用例执行请求用于请求被测端执行测试用例;

步骤s200、从所述测试用例执行请求解析出所述被测端执行所述测试用例的所需信息,并将其发送到所述被测端;

步骤s300、在所述被测端执行所述测试用例完毕后,从所述被测端接收执行结果;

步骤s400、记录所述测试用例及其执行结果,之后可由所述测试端和/或开发端调取所述测试用例及其执行结果。

可选地,如图3所示,所述接口自动化测试方法包括以下步骤:

步骤s150、测试端构造测试用例,其包括被测端执行所述测试用例所需的信息、以及供测试系统进行监听的监听配置;

步骤s250、测试端将所述测试用例发送到所述被测端,同时,所述测试系统监听到所述测试用例;

步骤s350、所述被测端执行所述测试用例,并将所述测试用例的执行结果返回到所述测试端,同时,所述测试系统监听到所述测试用例的执行结果;

步骤s400、所述测试系统记录所述测试用例及其执行结果,之后可由所述测试端和/或开发端调取所述测试用例及其执行结果。

例如,在步骤s150中,以代码形式(用例代码)构造测试用例,以向被测端发送例,同时,将用例监听组件的配置信息嵌入用例代码,这样,用例监听组件在测试端向被测端发送测试用例的同时,也能够获取该测试用例,例如包括输入参数、检查点(即,用例的预期运行结果,可为多个)等信息,类似地,用例监听组件在被测端向测试端返回用例运行结果的同时,也能够获取该用例运行结果。

根据本发明的实施例,所述接口自动化测试方法还包括以下步骤:

步骤s500、在所述测试用例的执行结果为失败的情况下,测试系统根据预设条件识别与该情况对应的缺陷,并将识别结果发送到缺陷管理系统。

或者,步骤s500可由以下步骤s550替代:在所述测试用例的执行结果为失败的情况下,向所述测试端和/或所述开发端呈现所述测试用例及其执行结果,由所述测试端和/或所述开发端识别与该情况对应的缺陷,并将识别结果通过所述测试系统发送到缺陷管理系统。

如图4所示,根据本发明的实施例,所述接口自动化测试方法还包括以下步骤:

步骤s600、所述测试系统在被所述开发端访问时,向开发端呈现已存储的测试用例的列表;

步骤s700、所述开发端从所述列表中选择测试用例,并通过所述测试系统转发给所述被测端执行,得到所述测试用例的当前执行结果;

步骤s800、所述测试系统记录所述测试用例的当前执行结果。

之后,如果执行结果为通过,意味着缺陷/问题已克服,开发端可以完成自测,发包提测,即,提交测试端进行正式测试。否则,意味着缺陷/问题未得到解决,开发端继续修改、调试程序,之后可进行新一轮的自测、测试。

这样,所述测试系统记录有被测端(例如,应用程序、网页)每次执行特定测试用例的执行结果,即,可以时间线为基础,记录各个测试用例各自的多个执行结果,由此,可实现测试的跟踪追溯功能。

3、根据本发明的实施例的安装了应用程序的系统

参照图5,其示出了根据本发明实施例的安装了应用程序的系统的运行环境。

在本实施例中,所述的安装应用程序的系统安装并运行于电子装置中。所述电子装置可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该电子装置可包括但不限于存储器、处理器及显示器。该图仅示出了具有上述组件的电子装置,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器在一些实施例中可以是所述电子装置的内部存储单元,例如该电子装置的硬盘或内存。所述存储器在另一些实施例中也可以是所述电子装置的外部存储设备,例如所述电子装置上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器还可以既包括所述电子装置的内部存储单元也包括外部存储设备。所述存储器用于存储安装于所述电子装置的应用软件及各类数据,例如所述安装应用程序的系统的程序代码等。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器在一些实施例中可以是中央处理单元(centralprocessingunit,cpu)、微处理器或其他数据处理芯片,用于运行所述存储器中存储的程序代码或处理数据,例如执行所述安装应用程序的系统等。

所述显示器在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器用于显示在所述电子装置中处理的信息以及用于显示可视化的客户界面,例如应用菜单界面、应用图标界面等。所述电子装置的部件通过系统总线相互通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解,上述实施方式中的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明本申请各个实施例所述的方法。

也就是说,根据本发明的实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有用于执行根据本发明的实施例的方法的程序,所述程序被处理器执行时,执行所述方法的步骤。

由上,将理解,为了说明的目的,这里已描述了本发明的具体实施例,但是,可作出各个修改,而不会背离本发明的范围。本领域的技术人员将理解,流程图步骤中所绘出或这里描述的操作和例程可以多种方式变化。更具体地,可重新安排步骤的次序,可并行执行步骤,可省略步骤,可包括其它步骤,可作出例程的各种组合或省略。因而,本发明仅由所附权利要求限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1