标题: 【转】使用 Jmeter 做 Web 接口测试 [打印本页] 作者: lsekfe 时间: 2016-5-9 13:39 标题: 【转】使用 Jmeter 做 Web 接口测试 接口测试概述定义
API testing is a type of software testing that involves testing application programming interfaces (APIs) directly and as part of integration testing to determine if they meet expectations for functionality, reliability, performance, and security. Since APIs lack a GUI, API testing is performed at the message layer.[2] API testing is now considered critical for automating testing because APIs now serve as the primary interface to application logic and because GUI tests are difficult to maintain with the short release cycles and frequent changes commonly used with Agile software development and DevOps).
WIKI定义:接口测试作为集成测试的一部分,通过直接控制API来判断系统的功能性,可靠性,性能与安全性。API测试是没有界面的,执行在通讯层。API 测试在自动化测试中有着重要的地位,因为API一般是应用逻辑的主要接口,而GUI测试在敏捷开发和DevOps的快速迭代和频繁变更中很难维护。 分类接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试大体分为两类:模块接口测试和web接口测试。 模块接口测试模块接口测试是单元测试的基础。它主要测试模块的调用与返回。经常需要编写一些桩模块与驱动模块。
主要测试要点如下:
检查接口返回的数据是否与预期结果一致。
检查接口的容错性,假如传递数据的类型错误时是否可以处理。
接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。
接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。
接口的安全性 WEB接口测试web接口测试又可分为两类:服务器接口测试和外部接口测试。
服务器接口测试:是测试浏览器与服务器的接口。用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试。
外部接口测试:这个很典型的例子就是第三方支付,比如在我们应用中在充流量时,交话费时,都会调用第三方支付接口。
主要测试要点如下:
请求是否正确,默认请求成功是200,如果请求错误也能返回404、500等。
检查返回数据的正确性与格式;json是一种非常常见的格式。
接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。
接口的性能,这直接影响用户的使用体验。 接口测试工具SOAPUI
JMeter
Grinder
Suds Python
在工作中主要应用SOAPUI与JMeter。SOAPUI对接口安全测试有比较好的支持。本文还是主要介绍JMeter的使用,关注的是功能测试,对于它的强项性能测试,在以后的文章中描述。 测试用例设计与原则因为在实际工作中测试的接口都是基于HTTP协议的,所以下面的测试用例及原则也是针对此类接口。 测试用例正面测试用例: