【华为云实战开发】12.如何在云端快速开展Swagger接口测试
1 Swagger简介
1.1 概要
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 总体目标是使客户端和文件系统作为服务器以同样的速度来更新。 文件的方法/参数/模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。
Swagger 是最流行的 API 开发工具,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS)。
Swagger 可以贯穿于整个 API 生态,如 API 的设计、编写 API 文档、测试和部署。
Swagger 是一种通用的,和编程语言无关的 API 描述规范。
1.2 Swagger序列化
1.3 官方地址
https://swagger.io/
2 Swagger实操
2.1 环境
(1)操作系统:window或者ubuntu
(2)浏览器:谷歌或者火狐
(3)数据库:mysql5.6,外网可以访问的或者部署主机内部可以访问
2.2 准备
(4)创建新的数据库实例:
连接mysql后,执行以下sql
2.3 实操
(5)登录DevCloud并创建项目
浏览器打开https://www.huaweicloud.com
按照此步骤登录到软件开发服务上,如果没有华为云账号需要先去注册。
登录之后开始创建一个项目
(6)创建代码仓库
进入新建的项目后,依次点击代码→代码托管→新建仓库,创建一个代码仓库
选择模板新建,左侧搜索swagger,选择Web Server,点击搜索后选择右侧swagger-devcloud仓库,输入仓库名称后点击确定,创建完成。
(7)修改配置文件
点击刚刚创建的代码仓库
依次点击上方第三步的路径后,点击application.yml配置文件
点击编辑后,修改数据库的访问地址,修改数据库口令密码,然后在下方填写备注后点击确定。
(8)编译
在当前项目下依次点击构建&发布→编译→新建,创建一个编译任务,填写任务名称后点击下一步
选择Maven模板然后点击确定
确认代码仓库与分支,默认值即可,添加版本执行参数(虽然本文未用到但在学习流水线时会用到),然后点击第三步,Maven构建
依次确认第二,第三步
第二步手动选择:maven3.3.1-jdk1.8
第三步手动填写:mvn package -Dmaven.test.skip=true
确认后点击第四步,上传软件包到发布仓库
第二步填写:**/target/*.?ar
第三步填写:${version}
第四步填写:swagger-devcloud
确认后点击新建→开始构建
构建完成。
(9)添加授信主机(部署机)
将服务器主机授信到DevCloud里,用于部署网站。
点击“设置-通用设置-主机组管理”,将服务器以主机组的形式授信到项目当中。
新建主机组:
在主机组中添加主机:
(10)部署
回到当前项目下,创建模板部署任务
填写任务名称后点击下一步,选择模板:SpringBoot应用部署
点击“确定”后,选择部署步骤。
SpringBoot应用部署模板当中包含以下步骤:
停止SpringBoot服务(如果可能的话)、安装JDK(如果可能的话)、选择部署来源(将软件包传输到主机上)、启动SpringBoot服务
注意每个步骤的路径及主机组信息确保正确。
点击“保存”后,任务创建完毕。
点击“执行”执行部署任务。
3 Swagger应用
3.1 访问方式
Ip:8001/swagger-ui.html
3.2 常用功能
(11)下载swagger测试脚本
第一步:右键另存测试脚本
第二步:单机链接另存为,保存swagger测试脚本到本地
(12)接口测试
依次点击user-controller→GET /user
点击Try it out,下方会展现获取的用户数据
3.3 自动化测试
(13)导入测试脚本
依次点击测试→接口测试→脚本模板→导入swagger文件(三→2→(1)中导出的)
(14)编写接口测试用例
依次点击测试→接口测试→测试用例→新建,输入用例名称后点击保存并编写脚本
先点击准备进入准备阶段,然后将第二步的接口拖入到第三步的位置,然后点击第三步的接口名称
配置请求参数,第二步可默认,第三步需要填写mode信息:
{"address": "测试地址","age": "25","email": "测试邮箱@测试.com","name": "测试者","password": "123456","phone": "15141133332","sex": "男","status": "zc","type": "zc","username": "ceshi"}
然后配置请求头
第二步选择:Access-Control-Request-Headers
第三步填写:{"Accept": "application/json;charset=UTF-8"}
属性填写:${code}
比较选择:==
值填写:200
参数类型选择:String
参数名填写:name
属性填写:${body}.name
点击测试,进入测试阶段,将左侧的queryUserListUsingGET拖到右侧,然后依次点击接口名称→请求参数
第二步可默认
第三步填写:${name}
点击请求头,填写名称,值
名称选择:Access-Control-Request-Headers
值填写:{"Accept": "application/json;charset=UTF-8"}
点击检查点,设置检查值
填写属性:${body}
选择比较:contains
填写值:${name}
点击传递变量,为下一阶段传递参数
参数类型选择:String
参数名填写:user_id
属性填写:${body}[0].id
点击销毁阶段,销毁测试数据,将左侧的deleteUserUsingDELETE拖拽到右侧,然后依次点击接口名称→请求参数
步骤三可默认
步骤四填写:${user_id}
点击请求头,设置请求头数据
名称选择:Access-Control-Request-Headers
值填写:{"Accept": "application/json;charset=UTF-8"}
点击检查点,设置检查值
属性填写:${body}
比较选择:be true
传递参数默认不填,点击右上角调试按钮,开始调试脚本
右侧显示调试日志,滚动到最下方,每个检查点显示通过即表示测试通过
回到接口测试用例管理页面后,可通过点击运行按钮,来启动测试脚本
(15)自动测试
依次点击测试→接口测试→测试套件→新建测试套件
填写套件名称:用户测试套件
选择责任人
点击保存
点击编辑后,开始编辑测试用例
点击添加用例,将之前做的接口测试放进去,如有需要可以添加多个测试用例
点击执行,当下面测试用例结果展现成功后点击返回按钮,套件制作完成
依次点击编译构建→流水线→新建流水线
填写流水线名称后,给流水线设置为4个阶段,分别为:
开始→ci→cd→test
开始阶段保留一个参数,点击编辑后参照右侧
名称:version
类型:字符类型
默认值:1.0.0
勾选提交代码自动触发流水线后,即可实现自动测试了,当代码版本发生变化后自动出发流水线编译部署测试等环节。
编辑ci阶段,参照右侧
类型选择:构建
选择swagger-devcloud构建任务
版本填写:${version}
第四步选择ci阶段生成的软件包
选择之前制作的测试套件:用户测试套件,然后点击保存
点击全新执行,测试流水线是否配置成功
3.4 代码说明
(16)Maven中加入swagger依赖
(17)编写swagger配置文件
(18)编写rest风格的接口
①定义模块名称
②定义接口名称以及说明
③定义参数类型
④定义接口路径以及调用方式编码等
华为云DevCloud,5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网
【华为云实战开发】12.如何在云端快速开展Swagger接口测试相关推荐
- 【华为云实战开发】11.如何快速开展嵌入式开发项目?
1 概述 1.1 文章目的 本文主要想为研发嵌入式项目的企业或个人提供上云指导,通过本文中的示例项目 "智能显示器",为开发者提供包括项目管理,代码托管,编译构建,部署等操作指导, ...
- 【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?
1 概述 1.1 文章目的 本文通过一个实例介绍如何使用软件开发服务DevCloud完成一个C#Web项目的开发. 1.2 项目详情 1. 项目名称:超级冷笑话网站 2. 项目简介:一个Web网站,包 ...
- 【华为云实战开发】14.如何使用Node爬虫利器Puppteer进行自动化测试
文:华为云DevCloud 乐少 1.背景 1.1 前端自动化测试较少 前端浏览器众多导致页面兼容性问题比较多,另外界面变化比较快,一个月内可能页面改版两三次,这样导致对前端自动化测试较少,大家也不是 ...
- 【华为云实战开发】13.如何在云端快速搭建python网站
1 概述 1.1 文章目的 本文主要想为研发Python项目的企业或个人提供上云指导,通过本文中的示例项目 "AI物体检测",为开发者提供包括项目管理,代码托管,代码检查,编译构建 ...
- 【华为云实战开发】10.经典的C++项目怎么在云端开发?
1 概述 1.1 文章目的 本文主要想为研发C++项目的企业或个人提供上云指导,通过本文中的示例项目 "音频解析器",为开发者提供包括项目管理,代码托管,代码检查,编译构建,测试管 ...
- 【华为云实战开发】9.如何进行PHP项目的快速搭建并实现CICD?
1 概述 1.1 文章目的 本文主要想为研发PHP项目的企业或个人提供上云指导,通过本文中的示例项目 "workerman-todpole",为开发者提供包括项目管理,代码托管,代 ...
- 【华为云实战开发】6.Cocos游戏项目如何在云端开发
1 概述 1.1 文章目的 本文帮助想要或者正在将Cocos项目迁移到华为软件开发服务DevCloud中的用户,把本地Cocos在Android平台下的项目迁移到云上. 1.2 项目详情 1. 项目名 ...
- 【华为云实战开发】16.DevOps交付模式下的软件测试
文:华为云DevCloud 兵东 众所周知,近10年IT领域有两个关键的风向转变,传统IT向云计算转变,传统瀑布和迭代开发模式向敏捷开发模式转变.这两个转变促成了DevOps产品交付模式的出现.互联 ...
- 【华为云实战开发】2.Docker镜像部署怎么玩才酷炫?
1 文章目的 本文主要帮助想要或者正在使用容器部署服务的用户,如何将他们的应用部署通过DevCloud部署在华为云上. 2 概述 2.1 Docker Docker是一个开源的引擎,可以轻松的为任何应 ...
最新文章
- 【教程】简易CDQ分治教程学习笔记
- hbase.client.keyvalue.maxsize的默认值
- 终极对决!Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣?
- java 登录牵手_Java: HttpURLConnection 模拟登录方法 (带cookie 的Post/Get)_20160908_七侠镇莫尛貝...
- numpy.cov()和numpy.var()的用法
- rs232读取智能电表_【技术文章】蜂窝物联网PoC为智能电表连接指引路向
- 关于java.net.URLEncoder.encode编码问题
- 【壹刊】Azure AD B2C(一)初识
- CoreOS rpm-ostree简介
- 服务器虚拟化nas存储服务器搭建,采用NAS架构优化VMware服务器虚拟化环境的存储管理.pdf...
- 使用Oracle 10g的Logminer挖掘日志
- Linux下mysql数据恢复
- 【环境搭建】 Ubuntu16.04上安装Anjuta
- AWS Direct connect,VPC Peering,VPC endpoint
- 63.QT-重写QStackedWidget模仿iphone的home界面,实现左右滑动
- 公众平台 php,微信公众平台PHP开发
- PR AE PS安装资源包
- 明天老外要上课,先准备一下词汇:)
- 【深入理解RabbitMQ】RabbitMQ exclusive和mandatory的理解
- FineBI连接本地Mysql数据库
热门文章
- 2能不用cuda_洗洁精不用花钱买,自己在家2毛钱能做一大瓶,效果比买的还好!...
- c++代码表白_微信表情翻译成文字代码,微信表情翻译我喜欢你[多图]-软件资讯...
- 子查询返回多个字段_ElasticSearch搜索之QueryFiltering、多/单字符串的多字段查询...
- centos7下安装nginx的方法
- ADB工具 获取ROOT权限及复制文件方法
- Silverlight Code Samples
- oopc——7.面向接口编程
- Leetcode——连续子数组的最大和(剑指offer 42)
- C语言课后习题(34)
- datax 不识别字段过滤_静电式空气过滤器有什么特点 静电式空气过滤器特点介绍【详解】...