基于swagger快速自动化测试的方法及系统技术方案

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

Method and system of rapid automatic test based on swagger

【技术实现步骤摘要】
基于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层,采用HTTPGET方法实现获取数据,采用HTTPPOST方法实现增加数据,采用HTTPPUT方法实现更新数据,采用HTTPDELETE方法实现删除数据;通过标记映射的统一资源标识符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快速自动本文档来自技高网...

【技术保护点】
1.一种基于swagger快速自动化测试的方法,其特征在于,包括以下步骤:/n步骤S1,根据业务逻辑编写与设计HTTP协议的REST服务接口;/n步骤S2,编写或自动生成前端开发对接后端接口的接口文档;/n步骤S3,编写或自动生成接口测试代码,用于对接口功能逻辑是否符合业务流程进行测试;/n步骤S4,通过持续集成工具jenkins实现持续测试,进而将接口测试代码流程实现自动化;/n其中,所述步骤S1中,通过增加注解描述代码来实现HTTP协议的REST服务接口,通过控制器负责提供restful接口,将请求的统一资源定位符映射到方法,并在传输参数时,对参数进行封装,以通过封装的对象参数实现数据接收。/n

【技术特征摘要】
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自动生成前端开发对接后端接口的接口...

【专利技术属性】
技术研发人员:周洪峰刘峻源
申请(专利权)人:深圳微品致远信息科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1