针对 Restful 协议下的接口测试平台设计
应用背景
目前市场上很多 Web 应用转向了 RESTful 的架构,往往暴露给用户的往往就是一组 REST API,这样的好处就是,研发人员可以根据需要调用不同的 API,整合出自己的应用出来。
这样每组 API 就会形成一个信息中心,各个信息中心结合在一起,就形成了一个互联互通的信息架构。所以针对此种轻量级的流行架构,接口服务的场景测试必不可少,目前主流的 postman 或者 jmeter 之类的工具虽然也可以胜任,但是对于整体设计来说总是欠缺一些什么。
像阿里巴巴之类的大厂一直在推举自己自定义去做一些质量平台,有针对性的去设计适合自己产品的测试方案,这里存在一个开源的接口服务框架,可以支持 restful 协议,并可以支持 xml、json 之类的数据格式的传输、验证、断言等。
REST Assured 是一套由 Java 实现的 REST API 测试框架,它是一个轻量级的 REST API 客户端,可以直接编写代码向服务器端发起 HTTP 请求,并验证返回结果;它的语法非常简洁,是一种专为测试 REST API 而设计的 DSL。
官网地址: https://rest-assured.io/
官方文档: https://rest-assured.io/#docs
Github 项目地址: https://github.com/rest-assured/rest-assured
简单的实践
如果在 IDE 配置一个简单些的接口测试环境,那我们首先可以将 REST Assured 配置到 Maven 中:
配置好后,我们来看一个典型的测试案例:
在 src/test/java 下创建一个包,起名叫 OurTest,在该包下创建一个 GioApiTests 类
接下来我们来看一下代码:
下面我们来解释一下:
首先就是 given( )就是 REST Assured 的一个典型的方法,所有的请求的内容( header、body 等)都是在这里描述。get 和 post 我就不用多说了,发送请求的方式,then ( ) 是请求后需要做哪些,statusCode 是用来判断返回值是不是 200。
这样讲下来我们很容易理解,基本就是基于一系列简单的发送、绑定、验证的过程。
当然,我们在设计自动化 API 平台的时候,我们还是需要有平台化的理念在里面,对于不熟悉代码开发的测试团队,我们需要将输入项以页面的形式呈现,而有一定开发功底的团队,我们则可以像上面一样,基于代码和 rest-assured 的语法去进行一系列的开发工作。
进阶的实践
1、REST Assured 有一种要求就是需要我们最好进行静态导入:
这样可以提高使用中的一些效率。
2、REST Assured 将自动尝试基于 HTTP 方法确定哪个参数类型(即查询或表单参数)
在 GET 的情况下,查询参数将被自动使用,在 POST 的情况下将使用表单参数。在某些情况下,重要的是在 PUT 或 POST 中分离表单和查询参数:
一些参数也可以在 url 上进行设置:
3、关于 cookies 的使用
通常模式下,您可以通过以下方法指定 Cookie:
也可以像这样给 cookie 指定多个值:
这将创建两个 cookie:
cookieName = value1 和 cookieName = value2。
还可以使用以下方式指定详细的 Cookie:
或同时指定 多个 cookie:
4、还像点样子的断言
状态码的断言:
完全匹配的断言:
表单的验证:
表单的代码:
断言:
经验总结
基于目前市面的主流质量平台的框架,本人推荐 VUE+Springboot+Mybatis+Mysql 的基本框架,API 接口测试以及其所设计的场景架构,推荐 REST Assured 的二次封装的方法(形成 REST Assured API),与基于 VUE 的前端框架相配合,前端收集报文参数,转化成 Json 格式传输给 REST Assured API ,首先预判 URL 是否可用,再转化接受解析报文,返回 Response 再解析断言结果,单线程之间的变量与参数储存在缓存中,关闭即可消失,但是在场景中,建议存储在本地文件或者 appolo 这种配置文件存储介质中。
希望大家多多发散,多多总结,结合产品特性,灵活设计质量平台的定制化功能。
招聘信息
GrowingIO 技术团队是一个活力四射、对技术充满激情的团队,多个岗位持续招聘中!诚招 大数据工程师 / Java 工程师 / 数据挖掘工程师 等。欢迎有兴趣的同学投递简历至:jianli@growingio.com(邮件标题请注明具体岗位名称)。更多职位及信息可进入招聘官网查看!
关于 GrowingIO
GrowingIO 是国内领先的一站式数据增长引擎整体方案服务商,创立于 2015 年,以数据智能分析能力为核心,通过构建客户数据平台,打造增长营销闭环,帮助企业提升数据驱动能力,赋能商业决策、实现业务增长。
点击「https://accounts.growingio.com/signup」获取 GrowingIO 15 天免费试用!
版权声明: 本文为 InfoQ 作者【GrowingIO技术专栏】的原创文章。
原文链接:【http://xie.infoq.cn/article/187012505013144bba58a2998】。文章转载请联系作者。
评论