坛子里有不少文章是介绍如何用 JMeter 来做接口测试(API 测试)的,受调查的测试人员中约有 40.67% 的人使用 JMeter 作为接口测试的自动化测试工具(排在商业化或者开源工具中的第一),剩下的为 Postman(28%),以及 SoapUI(17.33%)。
不过值得关注的是另外还有 44.13% 的采用了自研工具,说明可能现有的开源工具不能满足需求,更多的采用了自己研发的方式。那今天我们就来看看 JMeter 做接口测试的优点和不足,以及怎么解决这个不足。
- JMeter 接口测试的优势
1)JMeter 比较轻量级,并且开源,社区接受度高,比较容易入门。
2)JMeter 提供了 BeanShell 编程能力,可以写出比较灵活的测试脚本。
3)JMeter 的社区比较完善,提供了比较丰富的协议支持。比如除了支持常见的 HTTP 协议之外,还可以直接通过 JDBC Sampler 连接数据库,把期望的测试结果存入数据库中,直接对测试结果进行验证。在编写测试脚本过程中,可以将不同的协议调用使用同一个脚本进行组合调用,写出比较复杂的测试用例。
4)JMeter 提供了比较高级的扩展能力,允许自己定义和扩展新的协议支持,比如扩展支持阿里提供的 Dubbo 协议的 JMeter 插件等。
5)JMeter 提供了 HTML 测试报告和 Jenkins 集成的能力,比较方便地实现一些基础的持续测试。
- JMeter 接口测试的不足
JMeter 作为接口测试方案大概有以下的一些问题:
1)脚本的灵活性。虽然 JMeter 提供了一定的 BeanShell 编程能力和自定义协议的扩展能力,可以让脚本开发人员有一定的灵活性,受制于 JMeter 本身的限制,与开发人员直接使用语言进行接口测试相比,灵活性还是相对不足。
2)报告的能力。JMeter 提供了 HTML 报告,但是 JMeter 本身的测试报告主要用于性能测试,反映的更多是性能测试层面的结果。而且配置过程比较复杂,在团队成员分享报告等方面比较麻烦。
3)持续集成。利用第三方的 Jenkins 插件、Ant 和 Maven 等,能与 JMeter 进行一些基本的持续测试集成,但是对于完全自动化所需的测试环境的管理等功能支持不足,配置过程略嫌麻烦。
4)测试脚本和测试结果的管理:脚本和结果基本都是本地管理,无法做到在线管理。
- 优化的 JMeter 接口测试方案
理想的基于 JMeter 的接口测试方案能够弥补上述劣势,包括需要从团队和工具的层面补上短板。
JMeter 脚本的灵活性不足的问题可以通过团队成员的合理搭配来解决。JMeter 提供了较为完善的扩展机制,通过扩展可以支持不同的协议和函数,这些扩展处理的插件和函数能让编写测试脚本变得更加简单。JMeter 的扩展需要对 Java 比较了解,并且掌握 JMeter 的扩展机制。JMeter 的扩展开发是一次性的,在完成插件的开发之后,由脚本编写人员基于扩展的插件和函数进行脚本编写,从而快速完成接口测试。因此比较好的团队搭配为:
1)一个、或者多个了解 JMeter 扩展的测试开发人员,主要负责相关扩展功能的实现,以及报告的定义和持续集成相关的一些开发工作。
2)JMeter 测试脚本编写人员,主要负责基于 JMeter 内置和自定义扩展插件的脚本开发,如果发现有时候脚本开发过程中不方便的地方,提交开发需求由测试开发人员对 JMeter 进行扩展实现。
该方案剩下的所需的测试报告、持续测试集成、测试脚本和结果的管理需要额外的一些定制工作后才能够满足需求
下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
资料获取方式 :