CN111930635A - 基于swagger快速自动化测试的方法及系统 - Google Patents

基于swagger快速自动化测试的方法及系统 Download PDF

Info

Publication number
CN111930635A
CN111930635A CN202010976621.9A CN202010976621A CN111930635A CN 111930635 A CN111930635 A CN 111930635A CN 202010976621 A CN202010976621 A CN 202010976621A CN 111930635 A CN111930635 A CN 111930635A
Authority
CN
China
Prior art keywords
interface
swagger
code
testing
document
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
CN202010976621.9A
Other languages
English (en)
Other versions
CN111930635B (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.)
Shenzhen Vphonor Information Technology Co ltd
Original Assignee
Shenzhen Vphonor Information 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 Shenzhen Vphonor Information Technology Co ltd filed Critical Shenzhen Vphonor Information Technology Co ltd
Priority to CN202010976621.9A priority Critical patent/CN111930635B/zh
Publication of CN111930635A publication Critical patent/CN111930635A/zh
Application granted granted Critical
Publication of CN111930635B publication Critical patent/CN111930635B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

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

Abstract

本发明提供基于swagger快速自动化测试的方法及系统,所述基于swagger快速自动化测试的方法包括以下步骤:步骤S1,根据业务逻辑编写与设计HTTP协议的REST服务接口;步骤S2,编写或自动生成前端开发对接后端接口的接口文档;步骤S3,编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;步骤S4,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化。本发明采用swagger‑editior自动生成接口测试代码,进而能够快速实现接口文档的更新,并保障了软件质量,降低对开发人员的专业度要求,提高了接口测试的速度和工作效率,方便且快捷。

Description

基于swagger快速自动化测试的方法及系统
技术领域
本发明涉及一种测试代码生成,尤其涉及一种基于swagger快速自动化测试的方法,并涉及采用了该基于swagger快速自动化测试的方法的系统。
背景技术
由于每次HTTP接口需要编写接口文档,有的项目使用showdoc,有的项目使用markdown,这种代码编写文件的方法效率低下,如果文件很大,接口文档存在版本化问题,如果接口变更了,需要更新接口文档;同时为了保障软件质量,需要单独编写接口测试代码,就会存在效率低下等问题,导致开发人员需要花费大量的时间在代码测试等工作上。
发明内容
本发明所要解决的技术问题是需要提供一种能够提高测试速度和效率,且方便快捷的基于swagger快速自动化测试的方法,还进一步提供采用了该基于swagger快速自动化测试的方法的系统。
对此,本发明提供一种基于swagger快速自动化测试的方法,包括以下步骤:
步骤S1,根据业务逻辑编写与设计HTTP协议的REST服务接口;
步骤S2,编写或自动生成前端开发对接后端接口的接口文档;
步骤S3,编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;
步骤S4,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化;
其中,所述步骤S1中,通过增加注解描述代码来实现HTTP协议的REST服务接口,通过控制器负责提供restful接口,将请求的统一资源定位符映射到方法,并在传输参数时,对参数进行封装,以通过封装的对象参数实现数据接收。
本发明的进一步改进在于,所述步骤S2编写前端开发对接后端接口的接口文档中,基于标记语言markdown格式、word格式接口描述或是采用在线文档分享文档showdoc实现接口文档的部署和显示,编写的接口文档包括请求参数据地址、路径、示例数据、响应内容以及错误代码。
本发明的进一步改进在于,所述步骤S3编写接口测试代码中,先设置输入数据,所述输入数据包括可接受的参数、参数的类型、可选参数和必选参数,然后根据输入参数通过等价类和边界值分析法进行设计,设计时根据业务逻辑限制其流程或状态转移,保证每种状态至少被访问了一次,最后根据文档规定的输出要求反向设计测试数据,所述测试数据包括所有的输出状态。
本发明的进一步改进在于,通过客户端编程工具包HttpClient模拟客户端的对接口发送post请求和get请求,通过持久层框架mybatis框架对mysql数据库进行操作,使用mysql数据库存储请求参数和预期结果,引入测试框架TestNG对测试用例进行分组和逻辑控制,并使用测试框架TestNG 的断言对测试用例的结果进行判断,同时生成对结果的统计分析,最终使用测试报告开源框架ExtentReports对测试框架TestNG的测试报告进行优化和展示。
本发明的进一步改进在于,所述步骤S1中,还根据当前的编程语言增加API文档设计工具swagger与参数的注解。
本发明的进一步改进在于,所述步骤S2自动生成前端开发对接后端接口的接口文档中,将业务逻辑编写代码逻辑于service层,采用HTTP GET方法实现获取数据,采用HTTPPOST方法实现增加数据,采用HTTP PUT方法实现更新数据,采用HTTP DELETE方法实现删除数据;通过标记映射的统一资源标识符URI路径,在管理者Controller的类上面标记REST方式暴露。
本发明的进一步改进在于,针对Java技术栈通过API文档设计工具swagger实现注解,具体为:通过控制器标签进行分类,分类参数为字符串数组;通过解析类属性注解对API 涉及的对象做描述用于响应实体类;通过模型类属性注解对实体类的属性进行注解;通过spring接口文档注解对方法的用途进行描述以用于展开对接口的描述;通过方法注解对接口的非对象参数集和参数信息进行描述;通过URL路径注解对路径参数进行描述;通过屏蔽接口注解实现对屏蔽数据的描述;通过轮廓注解对使用环境的启用进行描述;通过API参数注解对API的参数进行描述。
本发明的进一步改进在于,所述步骤S3自动生成接口测试代码中,引用本地的数据交换格式文件json和数据序列化格式文件yaml自动化生成接口测试基础代码,进而实现测试代码的直接调用与复用;通过前端模板引擎mustache支持自定义代码的生成模板,并基于接口测试基础代码编写复杂场景的代码,通过应用程序编程接口API 生成服务器存根和客户端软件开发工具包SDK 来简化构建过程。
本发明的进一步改进在于,所述步骤S3自动生成接口测试代码包括以下子步骤:
步骤S301,基于swagger接口声明文件逐个生成客户端调用代码;
步骤S302,基于swagger接口声明文件对不同编写语言的客户端调用代码;
步骤S303,自定义代码生成模板。
本发明还提供一种基于swagger快速自动化测试的系统,采用了如上所述的基于swagger快速自动化测试的方法,并包括:
服务接口编写模块,用于根据业务逻辑编写与设计HTTP协议的REST服务接口;
接口文档生成模块,用于编写或自动生成前端开发对接后端接口的接口文档;
接口测试代码生成模块,用于编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;
持续集成模块,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化。
与现有技术相比,本发明的有益效果在于:采用swagger-editior自动生成接口测试代码,进而在接口文档存在版本化问题的时候能够快速实现接口文档的更新,并保障了软件质量,降低对开发人员的专业度要求,提高了接口测试的速度和工作效率,方便且快捷。
附图说明
图1是本发明一种实施例的工作流程结构示意图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
如图1所示,本例提供一种基于swagger快速自动化测试的方法,包括以下步骤:
步骤S1,根据业务逻辑编写与设计HTTP协议的REST服务接口;
步骤S2,编写或自动生成前端开发对接后端接口的接口文档;
步骤S3,编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;
步骤S4,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化;
其中,所述步骤S1中,通过增加注解描述代码来实现HTTP协议的REST服务接口,通过控制器负责提供restful接口,将请求的统一资源定位符映射到方法,并在传输参数时,对参数进行封装,以通过封装的对象参数实现数据接收;所述步骤S1中,根据业务逻辑编写与设计HTTP协议的REST服务接口,并在实现HTTP协议的REST服务接口后判断其实现是否完成,若是则跳转至步骤S2,若否则持续改进并返回判断其实现是否完成。
本例所述基于swagger快速自动化测试的方法也称基于swagger-editor快速自动化测试代码的方法,其中,swagger是适合于采用前后端分离的架构项目的API文档设计工具,而Swagger Editor是Swagger中的编辑器。
需要解决服务端接口API快速自动化测试代码的生成,API自动化设计应用如下:PO模式即page object,用于实现页面元素与行为属性分开;实现数据驱动、数据依赖、可配置(多环境等)、日志记录、失败重试机制、健康尝试、可维护性以及可视化等。
本例基于swagger-editor实现API自动化测试,能够使用后端定义的API,无需编写接口路径,可以直接使用和调用;其次,API与行为属性分开,同个API多个测试用例情况下仅需填充测试数据做断言即可;另外还可以根据需求实现自定义配置;支持多种语言,通过下载语言即可使用。
本例所述步骤S1中,通过增加注解描述代码来实现HTTP协议的REST服务接口,以JAVA技术栈为示例,通过控制器@RestController 声明一个controller负责提供restful接口,通过@RequestMapping将请求的统一资源定位符url映射到方法。
本例通过用于将请求参数区数据映射到功能处理方法的参数@RequetParam 映射请求参数到方法请求参数,次过程中,可以指定required指定此参数是否必填,name参数指定别名,defaultValue指定默认值,并在传输参数时,通过Spring的一个子框架SpringMVC对参数进行封装,以通过封装的对象参数实现数据接收。
本例所述步骤S2编写前端开发对接后端接口的接口文档中,基于标记语言markdown格式、word格式接口描述或是采用在线文档分享文档showdoc实现接口文档的部署和显示,编写的接口文档包括请求参数据地址、路径、示例数据、响应内容以及错误代码,这样就能够便于前端和后端的沟通。
本例所述步骤S3编写接口测试代码中,为了确保接口功能逻辑符合业务流程,需要测试每个接口的功能及其安全性,编写代码验证码验证以获取接口文档;在编写接口测试代码过程中,和黑盒测试一样,本例从需求文档中去挖掘测试点,设计测试用例;对于接口测试,同样采用有对应的接口文档的。
也就是说,本例所述步骤S3编写接口测试代码的过程,先分析接口文档,然后提取测试点。具体为:先设置输入数据,所述输入数据包括可接受的参数(接受哪些参数)、参数的类型、可选参数和必选参数,然后根据所述输入参数通过等价类和边界值分析法进行设计,设计时根据业务逻辑限制其流程或状态转移,保证每种状态至少被访问了一次,对于一个接口不同的输入参数或组合,其流程控制或状态的转移是不同,因此,本例在设计时就根据业务逻辑限制其流程或状态转移,进而能够根据业务逻辑预先设置好其流程或状态转移,确保每种状态至少被访问了一次;最后根据文档规定的输出要求反向设计测试数据,所述测试数据包括所有的输出状态。
在实际工作过程中,当服务端改动功能或者添加新功能时,新发布程序后,采用本例能够有效避免新开发功能导致其他关联功能存在问题,通过持续集成,服务端发布触发接口测试代码运行,就能够尽早发现问题;进一步的,通过抽取部分接口测试用例,能够定时运行程序,对线上常用的业务操作进行监控,就可以及时发现问题并进行修复。
本例通过客户端编程工具包HttpClient模拟客户端的对接口发送post请求和get请求,通过持久层框架mybatis框架对mysql数据库进行操作,使用mysql数据库存储请求参数和预期结果,引入测试框架TestNG对测试用例进行分组和逻辑控制,并使用测试框架TestNG 的断言对测试用例的结果进行判断,同时生成对结果的统计分析,最终使用测试报告开源框架extentreports对测试框架TestNG的测试报告进行优化和展示。
本例所述步骤S1中,根据业务逻辑编写与设计HTTP协议的REST接口服务;对应不同编程语言,增加API文档设计工具swagger的方法与参数的注解,进而能够根据当前的编程语言增加API文档设计工具swagger与参数的注解。
本例所述步骤S2自动生成前端开发对接后端接口的接口文档,旨在便于前端与后端沟通,并通过API文档设计工具swagger自动化生成接口文档;先将业务逻辑编写代码逻辑于service层,通过控制器Controller中执行指令action方式,采用命令请求指令的HTTPGET实现获取数据,采用HTTP协议下的POST指令HTTP POST实现增加数据,采用HTTP协议下的PUT指令HTTP PUT实现更新数据,采用HTTP协议下的DELETE指令HTTP DELETE实现删除数据;通过标记映射的统一资源标识符URI路径,在管理者Controller的类上面标记REST方式暴露,以实现路劲的标记和映射。
本例针对Java技术栈,采用API文档设计工具Swagger 时的注解,通过API文档设计工具swagger实现注解,具体为:通过控制器标签进行分类,分类参数为字符串数组;即,通过@API 类的注解,可以给控制器增加描述和标签信息,用在请求的分类上,代表了这个分类是 Swagger 的资源Tags作为控制器标签,对该类进行分类,参数是个字符串数组,如果配置了多个值,会在多个分类中看到;value作为一个必须要的参数,该参数没什么意义,在UI界面上并不显示,可不用配置。
通过解析类属性注解对 API 涉及的对象做描述用于响应实体类;即通过@ApiModel 类注解,对 API 涉及的对象做描述,可用于响应实体类,说明实体作用;valueModel为展示时的名称,默认是实体类的名称;description 实体类的描述,用于实现类成员变量的注解。
通过模型类属性注解对实体类的属性进行注解;即,@ApiModelProperty 用在实体类的属性上,包括value表示属性字段描述;required表示参数是否必选;name表示重写字段名称;dataType表示重写字段类型;allowEmptyValue表示是否允许为空;allowbleValues表示该字段允许的值。当API 某个参数为枚举类型时,使用这个参数就可以清楚高速 API 使用者能允许传入的值。
通过spring接口文档注解对方法的用途进行描述以用于展开对接口的描述;即@ApiOperation 描述方法的用途,用来展开对接口的描述,其中,value表示接口简要描述;notes表示接口发布说明及其详细描述。
通过方法注解对接口的非对象参数集和参数信息进行描述;即通过@ApiImplicitParams 用于描述接口的非对象参数集,一般与 @ApiImplicitParams 组合使用;@ApiImplicitParam 描述接口的非对象参数集的信息中,value为参数意义的描述;name为参数名字;required默认false,表示参数是否必传;dataType为参数数据,只作为标志说明,并没有实际验证;Long和String表示长度和字符串类型;paramType 参数类型,表示参数放在哪里;query,默认值,Query String的方式传参,请求参数的获取通过@RequestParam实现;path表示路径参数,请求参数的获取通过@PathVariable实现;header表示请求参数的获取通过@RequestHeader实现。
通过URL路径注解对路径参数进行描述;通过屏蔽接口注解实现对屏蔽数据的描述;即通过@PathVariable 路径参数给类似 @GetMappIng("/user/{id}") 参数通过路径传入。
通过@ApiIgnore用于类或者方法上,屏蔽接口不被显示在页面上;通过轮廓注解对使用环境的启用进行描述,即通过@Profile({"dev","test"})用于配置类上,表示对什么环境启用;通过API参数注解对API的参数进行描述,即@ApiParam 不能直接用在方法上,而是用在方法的形参定义中。
启动应用,访问 localhost:8080/swagger-ui.html 可以访问到 Swagger UI,这已经是在线web接口文档,可以在线浏览与查看参数, 输出数据交换格式文件json和数据序列化格式文件yaml文件。
本例所述步骤S3自动生成接口测试代码为了确保接口功能逻辑符合业务流程,需要测试每个接口功能,安全性。在该步骤S3中,基于swagger-editor引用本地的数据交换格式文件json和数据序列化格式文件yaml自动化生成接口测试基础代码,进而实现测试代码的直接调用与复用,能够有效节省开发与测试的时间;另,通过前端模板引擎mustache支持自定义代码的生成模板,并基于接口测试基础代码编写复杂场景的代码,以提升持续交付效率;最后,通过开源的代码生成器Swagger Codegen,进而能够通过为OpenAPI(也称为Swagger)规范定义的应用程序编程接口API 生成服务器存根和客户端软件开发工具包SDK来简化构建过程。
本例所述步骤S3自动生成接口测试代码包括以下子步骤:
步骤S301,基于swagger接口声明文件逐个生成客户端调用代码;
步骤S302,基于swagger接口声明文件对不同编写语言的客户端调用代码;
步骤S303,自定义代码生成模板。
更为具体的,本例所述步骤S301中,基于swagger接口声明文件逐个生成客户端调用代码。比如。基于JavaScript 运行环境node.js、安装包管理工具npm和网页服务器http-server,打开 http://127.0.0.1:8080/#/,之后就可以看到与远程方式相同的页面;可以引用本地的数据交换格式json文件和配置yaml文件,也可以新建,编写完成后下载。
在线测试,文档编写完后,可以点击接口测试启动指令try this operation进行接口测试。通过本例能够实现强大的代码生成,编写完文档后可以下载相应的代码。
本例所述步骤S302中,基于swagger接口声明文件不同编写语言的客户端调用代码;克隆仓库并且build工程;具体的git clone https://github.com/swagger-api/swagger-codegen为克隆仓库cd swagger-codegen;mvn clean package为 build 工程;这样就会生成 swagger-codegen-cli.jar文件;下面我们来看一下swagger-codegen的工程结构。
接下来可以通过执行命令来生成sample代码了,比如通过下面这样的执行命令来生成案例代码:
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jargenerate \
-i http://petstore.swagger.io/v2/swagger.json \
-l java \
-o samples/client/petstore/java// -i 指向文档 -o 指向生成目录 -l 指向modules中的板(可以理解为语言)。
本例优选包括自定义代码生成,对应的是自定义代码生成模块,当然,在实际使用中,官方提供的代码生成模板是很可能不满足需求的,这样,就需要研发人员去写模板,模板需要使用mustache语言,则可以通过下面方式实现:
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar meta-o output/myLibrary -n myClientCodegen -p com.my.company.codegen。
本例在执行命令后会生成模板工程,即本例要修改java 中的MyclientcodegenGenerator.java 和 resource 中的 *.mustache文件,具体如何修改,可以参开下面的流程。然后等模板生成好了,就执行验证一下:。
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar io.swagger.codegen.SwaggerCodegen
说明我们的模板已经可以使用了,那么来生成个文档试试,比如:
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar \
io.swagger.codegen.SwaggerCodegen generate -l myClientCodegen\
-i http://petstore.swagger.io/v2/swagger.json \
-o myClient
以上过程如果文件指示myFile.mustache找不到,则创建一个空的 文件指示myFile.mustache文件即可。
本例还提供一种基于swagger快速自动化测试的系统,采用了如上所述的基于swagger快速自动化测试的方法,并包括:
服务接口编写模块,用于根据业务逻辑编写与设计HTTP协议的REST服务接口;
接口文档生成模块,用于编写或自动生成前端开发对接后端接口的接口文档;
接口测试代码生成模块,用于编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;
持续集成模块,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化。
综上所述,本例采用swagger-editior自动生成接口测试代码,进而在接口文档存在版本化问题的时候能够快速实现接口文档的更新,并保障了软件质量,降低对开发人员的专业度要求,提高了接口测试的速度和工作效率,方便且快捷。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种基于swagger快速自动化测试的方法,其特征在于,包括以下步骤:
步骤S1,根据业务逻辑编写与设计HTTP协议的REST服务接口;
步骤S2,编写或自动生成前端开发对接后端接口的接口文档;
步骤S3,编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;
步骤S4,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化;
其中,所述步骤S1中,通过增加注解描述代码来实现HTTP协议的REST服务接口,通过控制器负责提供restful接口,将请求的统一资源定位符映射到方法,并在传输参数时,对参数进行封装,以通过封装的对象参数实现数据接收。
2.根据权利要求1所述的基于swagger快速自动化测试的方法,其特征在于,所述步骤S2编写前端开发对接后端接口的接口文档中,基于标记语言markdown格式、word格式接口描述或是采用在线文档分享文档showdoc实现接口文档的部署和显示,编写的接口文档包括请求参数据地址、路径、示例数据、响应内容以及错误代码。
3.根据权利要求1或2所述的基于swagger快速自动化测试的方法,其特征在于,所述步骤S3编写接口测试代码中,先设置输入数据,所述输入数据包括可接受的参数、参数的类型、可选参数和必选参数,然后根据输入参数通过等价类和边界值分析法进行设计,设计时根据业务逻辑限制其流程或状态转移,保证每种状态至少被访问了一次,最后根据文档规定的输出要求反向设计测试数据,所述测试数据包括所有的输出状态。
4.根据权利要求1所述的基于swagger快速自动化测试的方法,其特征在于,通过客户端编程工具包HttpClient模拟客户端的对接口发送post请求和get请求,通过持久层框架mybatis框架对mysql数据库进行操作,使用mysql数据库存储请求参数和预期结果,引入测试框架TestNG对测试用例进行分组和逻辑控制,并使用测试框架TestNG 的断言对测试用例的结果进行判断,同时生成对结果的统计分析,最终使用测试报告开源框架extentreports对测试框架TestNG的测试报告进行优化和展示。
5.根据权利要求4所述的基于swagger快速自动化测试的方法,其特征在于,所述步骤S1中,还根据当前的编程语言增加API文档设计工具swagger与参数的注解。
6.根据权利要求4或5所述的基于swagger快速自动化测试的方法,其特征在于,所述步骤S2自动生成前端开发对接后端接口的接口文档中,将业务逻辑编写代码逻辑于service层,采用HTTP GET方法实现获取数据,采用HTTP POST方法实现增加数据,采用HTTP PUT方法实现更新数据,采用HTTP DELETE方法实现删除数据;通过标记映射的统一资源标识符URI路径,在管理者Controller的类上面标记REST方式暴露。
7.根据权利要求6所述的基于swagger快速自动化测试的方法,其特征在于,针对Java技术栈通过API文档设计工具swagger实现注解,具体为:通过控制器标签进行分类,分类参数为字符串数组;通过解析类属性注解对 API 涉及的对象做描述用于响应实体类;通过模型类属性注解对实体类的属性进行注解;通过spring接口文档注解对方法的用途进行描述以用于展开对接口的描述;通过方法注解对接口的非对象参数集和参数信息进行描述;通过URL路径注解对路径参数进行描述;通过屏蔽接口注解实现对屏蔽数据的描述;通过轮廓注解对使用环境的启用进行描述;通过API参数注解对API的参数进行描述。
8.根据权利要求4或5所述的基于swagger快速自动化测试的方法,其特征在于,所述步骤S3自动生成接口测试代码中,引用本地的数据交换格式文件json和数据序列化格式文件yaml自动化生成接口测试基础代码,进而实现测试代码的直接调用与复用;通过前端模板引擎mustache支持自定义代码的生成模板,并基于接口测试基础代码编写复杂场景的代码,通过应用程序编程接口API 生成服务器存根和客户端软件开发工具包SDK 来简化构建过程。
9.根据权利要求4或5所述的基于swagger快速自动化测试的方法,其特征在于,所述步骤S3自动生成接口测试代码包括以下子步骤:
步骤S301,基于swagger接口声明文件逐个生成客户端调用代码;
步骤S302,基于swagger接口声明文件对不同编写语言的客户端调用代码;
步骤S303,自定义代码生成模板。
10.一种基于swagger快速自动化测试的系统,其特征在于,采用了如权利要求1至9任意一项所述的基于swagger快速自动化测试的方法,并包括:
服务接口编写模块,用于根据业务逻辑编写与设计HTTP协议的REST服务接口;
接口文档生成模块,用于编写或自动生成前端开发对接后端接口的接口文档;
接口测试代码生成模块,用于编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;
持续集成模块,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化。
CN202010976621.9A 2020-09-17 2020-09-17 基于swagger快速自动化测试的方法及系统 Active CN111930635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010976621.9A CN111930635B (zh) 2020-09-17 2020-09-17 基于swagger快速自动化测试的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010976621.9A CN111930635B (zh) 2020-09-17 2020-09-17 基于swagger快速自动化测试的方法及系统

Publications (2)

Publication Number Publication Date
CN111930635A true CN111930635A (zh) 2020-11-13
CN111930635B CN111930635B (zh) 2021-06-29

Family

ID=73333671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010976621.9A Active CN111930635B (zh) 2020-09-17 2020-09-17 基于swagger快速自动化测试的方法及系统

Country Status (1)

Country Link
CN (1) CN111930635B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363953A (zh) * 2020-12-09 2021-02-12 中材邦业(杭州)智能技术有限公司 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
CN112380145A (zh) * 2021-01-15 2021-02-19 树根互联技术有限公司 Sdk生成方法、装置、设备及可读存储介质
CN112380142A (zh) * 2020-12-11 2021-02-19 上海中通吉网络技术有限公司 接口文档管理方法、装置和测试设备
CN112416321A (zh) * 2020-11-18 2021-02-26 青岛海尔科技有限公司 应用生成方法、装置和存储介质及电子装置
CN113377679A (zh) * 2021-07-13 2021-09-10 北京乐学帮网络技术有限公司 代码确定方法、装置、电子设备和存储介质
CN113391996A (zh) * 2021-05-27 2021-09-14 东南大学 一种基于工作流程的软件接口组合执行测试方法
CN113515263A (zh) * 2021-04-26 2021-10-19 中国汽车技术研究中心有限公司 工业app机理模型部署方法、装置、设备和可读存储介质
CN113778897A (zh) * 2021-09-26 2021-12-10 网易有道信息技术(江苏)有限公司 接口的自动测试方法、装置、设备及存储介质
CN114116522A (zh) * 2022-01-27 2022-03-01 四川野马科技有限公司 一种基于swagger进行接口自动测试的方法
CN114327416A (zh) * 2022-03-17 2022-04-12 云账户技术(天津)有限公司 应用于开发分支的接口同步方法、装置及电子设备
CN114416599A (zh) * 2022-03-28 2022-04-29 中建电子商务有限责任公司 一种基于Dubbo服务接口生成泛化调用进行接口测试的方法
CN115297039A (zh) * 2022-10-08 2022-11-04 天津华来科技股份有限公司 Http协议参数化测试架构方法、电子设备、存储介质
CN115686463A (zh) * 2022-12-30 2023-02-03 科讯嘉联信息技术有限公司 基于Python和Excel的接口自动化框架控制系统
CN116578497A (zh) * 2023-07-11 2023-08-11 苏州浪潮智能科技有限公司 一种接口自动化测试方法、系统、计算机设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107957948A (zh) * 2017-12-07 2018-04-24 郑州云海信息技术有限公司 一种用户界面自动化测试装置及方法
CN108733569A (zh) * 2018-05-25 2018-11-02 北京五八信息技术有限公司 一种接口自动化测试方法、装置、存储介质及设备
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN109344063A (zh) * 2018-09-26 2019-02-15 深圳竹云科技有限公司 一种api接口的自动化测试方法
CN109446072A (zh) * 2018-09-27 2019-03-08 深圳壹账通智能科技有限公司 测试脚本的生成方法和装置
CN109857661A (zh) * 2019-01-25 2019-06-07 深圳微品致远信息科技有限公司 一种基于大数据分析的智能生成测试用例的方法及系统
CN110196733A (zh) * 2019-06-06 2019-09-03 深圳市伊欧乐科技有限公司 一种预设api文档生成方法、装置、设备和存储介质
US20190294527A1 (en) * 2018-03-23 2019-09-26 Lendingclub Corporation Unified ui/ux and api testing of web applications
CN110941950A (zh) * 2019-11-26 2020-03-31 北京明略软件系统有限公司 接口文档的生成方法、装置、服务器及存储介质
CN111382084A (zh) * 2020-05-08 2020-07-07 北京金山云网络技术有限公司 测试方法、装置和电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107957948A (zh) * 2017-12-07 2018-04-24 郑州云海信息技术有限公司 一种用户界面自动化测试装置及方法
US20190294527A1 (en) * 2018-03-23 2019-09-26 Lendingclub Corporation Unified ui/ux and api testing of web applications
CN108733569A (zh) * 2018-05-25 2018-11-02 北京五八信息技术有限公司 一种接口自动化测试方法、装置、存储介质及设备
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN109344063A (zh) * 2018-09-26 2019-02-15 深圳竹云科技有限公司 一种api接口的自动化测试方法
CN109446072A (zh) * 2018-09-27 2019-03-08 深圳壹账通智能科技有限公司 测试脚本的生成方法和装置
CN109857661A (zh) * 2019-01-25 2019-06-07 深圳微品致远信息科技有限公司 一种基于大数据分析的智能生成测试用例的方法及系统
CN110196733A (zh) * 2019-06-06 2019-09-03 深圳市伊欧乐科技有限公司 一种预设api文档生成方法、装置、设备和存储介质
CN110941950A (zh) * 2019-11-26 2020-03-31 北京明略软件系统有限公司 接口文档的生成方法、装置、服务器及存储介质
CN111382084A (zh) * 2020-05-08 2020-07-07 北京金山云网络技术有限公司 测试方法、装置和电子设备

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416321B (zh) * 2020-11-18 2023-06-16 青岛海尔科技有限公司 应用生成方法、装置和存储介质及电子装置
CN112416321A (zh) * 2020-11-18 2021-02-26 青岛海尔科技有限公司 应用生成方法、装置和存储介质及电子装置
CN112363953A (zh) * 2020-12-09 2021-02-12 中材邦业(杭州)智能技术有限公司 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
CN112363953B (zh) * 2020-12-09 2023-12-05 中材邦业(杭州)智能技术有限公司 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
CN112380142A (zh) * 2020-12-11 2021-02-19 上海中通吉网络技术有限公司 接口文档管理方法、装置和测试设备
CN112380145A (zh) * 2021-01-15 2021-02-19 树根互联技术有限公司 Sdk生成方法、装置、设备及可读存储介质
CN113515263A (zh) * 2021-04-26 2021-10-19 中国汽车技术研究中心有限公司 工业app机理模型部署方法、装置、设备和可读存储介质
CN113391996A (zh) * 2021-05-27 2021-09-14 东南大学 一种基于工作流程的软件接口组合执行测试方法
CN113377679A (zh) * 2021-07-13 2021-09-10 北京乐学帮网络技术有限公司 代码确定方法、装置、电子设备和存储介质
CN113778897A (zh) * 2021-09-26 2021-12-10 网易有道信息技术(江苏)有限公司 接口的自动测试方法、装置、设备及存储介质
CN113778897B (zh) * 2021-09-26 2024-03-29 网易有道信息技术(江苏)有限公司 接口的自动测试方法、装置、设备及存储介质
CN114116522A (zh) * 2022-01-27 2022-03-01 四川野马科技有限公司 一种基于swagger进行接口自动测试的方法
CN114327416A (zh) * 2022-03-17 2022-04-12 云账户技术(天津)有限公司 应用于开发分支的接口同步方法、装置及电子设备
CN114416599A (zh) * 2022-03-28 2022-04-29 中建电子商务有限责任公司 一种基于Dubbo服务接口生成泛化调用进行接口测试的方法
CN115297039B (zh) * 2022-10-08 2023-01-10 天津华来科技股份有限公司 Http协议参数化测试架构方法、电子设备、存储介质
CN115297039A (zh) * 2022-10-08 2022-11-04 天津华来科技股份有限公司 Http协议参数化测试架构方法、电子设备、存储介质
CN115686463A (zh) * 2022-12-30 2023-02-03 科讯嘉联信息技术有限公司 基于Python和Excel的接口自动化框架控制系统
CN116578497A (zh) * 2023-07-11 2023-08-11 苏州浪潮智能科技有限公司 一种接口自动化测试方法、系统、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111930635B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN111930635B (zh) 基于swagger快速自动化测试的方法及系统
US11741293B2 (en) Systems and methods of a script generation engine
CN109918607B (zh) 页面搭建方法及装置、介质和计算设备
US9218269B2 (en) Testing multiple target platforms
US8006224B2 (en) System and method for unified visualization of two-tiered applications
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
US20230236809A1 (en) Ios application program construction method and apparatus, electronic device, and storage medium
US8839107B2 (en) Context based script generation
US20060236307A1 (en) System and method for transformation of wireless application definition to simplified form
US8032232B2 (en) Natively retaining project documentation in a controller
US7926024B2 (en) Method and apparatus for managing complex processes
US20120089931A1 (en) Lightweight operation automation based on gui
CN112363953B (zh) 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
US20210117313A1 (en) Language agnostic automation scripting tool
US20150317405A1 (en) Web Page Variation
CN111913889A (zh) 一种测试系统搭建方法及测试系统
CN115794106A (zh) 一种轨道交通二进制协议数据配置式解析的方法及系统
CN116719735A (zh) 一种测试用例生成方法及装置
CN115470152B (zh) 测试代码生成方法、测试代码生成装置以及存储介质
CN111221610B (zh) 一种页面元素采集方法和装置
CN114218105A (zh) 一种基于配置即应用模式的ui自动化回归测试系统
Bluemke et al. Tool for automatic testing of web services
CN103135986B (zh) 一种操作采集方法及系统
CN114205276B (zh) 用于产品管理系统的性能测试方法及装置、电子设备
CN116126723A (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