接口测试的必要性:发现前台测试发现不了的问题、检查系统的异常处理能力、检查系统的安全性和稳定性。
常用的接口测试工具:Postman、Jmeter、SoupUI
//
一、Postman
HTTP的接口测试工具有很多,可以进行http请求的方式也有很多,但是可以直接拿来就用,而且功能还支持的不错的,还是postman比较好上手。
优点:
1、支持用例管理
2、支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能
3、支持批量运行
4、支持用例导出、导入
5、支持云端保存用例【付费用户】
可以说postman满足了HTTP接口测试的大部分功能,只有少部分的功能不被支持,比如:请求流程的控制;前面说了这么多,接下来我们就看看postman的安装与使用吧。
//
二、Jmeter
Jmeter是一款性能测试工具,被测试人员广泛用于做接口测试。支持脚本录制、多平台部署、pipeline集成等,提供丰富的组件及第三方插件库。
优点:
1、JMeter比较轻量级,并且开源,社区接受度高,比较容易入门。
2、JMeter提供了BeanShell编程能力,可以写出比较灵活的测试脚本。
3、JMeter的社区比较完善,提供了比较丰富的协议支持。比如除了支持常见的HTTP协议之外,还可以直接通过JDBC Sampler连接数据库,把期望的测试结果存入数据库中,直接对测试结果进行验证。在编写测试脚本过程中,可以将不同的协议调用使用同一个脚本进行组合调用,写出比较复杂的测试用例。
4、JMeter提供了比较高级的扩展能力,允许自己定义和扩展新的协议支持,比如扩展支持阿里提供的Dubbo协议的JMeter插件等。
5、JMeter提供了HTML测试报告和Jenkins集成的能力,比较方便地实现一些基础的持续测试。
//
三、SoupUI
soapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse、intellij等开发工具中使用。把一个或多个测试套件(TestSuite)组织成项目,每个测试套件包含一个或多个测试用例(TestCase),每个测试用例包含一个或多个测试步骤,包括发送请求、接受响应、分析结果、改变测试执行流程等。
优点:
(1)SOAPUI工具适合QA和测试人员,而不需要开发人员使用编程来实现测试用例。它能够基于WSDL自动产生测试消息。(WSDL全称:Web Services Description Language,是为描述Web服务发布的XML格式)
(2)SOAPUI能够直接引用外部的属性文件来简化测试步骤,通过建立断言SOAPUI可以进行XML模式效验和错误效验。
(3)SOAPUI可以用于压力测试,容易管理服务端点。
(4)SOAPUI提供方便的接口能够集成JBoss、Ant、XMLBean、ApacheTCPMon等多种工具。
(5)SOAPUI可以完成多种WebService的测试场景。
//
三种接口测试工具的比较分析
1.支持的接口类型与测试类型
2.配置不同接口类型
SoapUI可以创建Soap Project或者Rest Project(但Project中添加什么类型的Step则不受影响),可添加wsdl、wadl资源,并能在TestCase里添加Rest或Soap的Step。
Jmeter可以在线程组里添加HTTP、TCP或WebSocket的Sampler。
Postman仅支持Rest接口。
-
自定义变量以及变量的作用域
-
数据源、生成器,进行参数化
-
流程控制
SoapUI:由Conditioinal Goto控制流程,以及Groovy脚本
Jmeter:由Switch控制器、If控制器、随机控制器等一系列控制器实现流程控制,以及Beanshell脚本
Postman:通过JavaScript脚本控制
- 结果解析、展示
- 断言
SoapUI:每个Request可添加Assertion
Jmeter:TestPlan、Threads Group、Sampler均可添加断言
Postman:请求的Tests中可添加断言
- 脚本扩展能力
SoapUI:Groovy脚本
Jmeter:Bean shell(Java)
Postman:JavaScript