自动化API测试工具与方案

自动化API测试工具与方案

在微服务架构系统中,REST API是服务之间调用的标准方法。

因此对API进行测试对开发测试微服务非常重要。

本文介绍了几种常见的API测试工具以及它们的使用场景。

curl

Linux的curl 命令行工具可以用来发起HTTP请求来测试API。

在Server端调试时,curl 像一把锋利的匕首,简单实用。

不足:对于比较复杂的API测试,比如复杂的HTTP header和body,curl 显得力不从心。

Swagger

Swagger可以用来对API做手工测试和自动生成API文档。

比如在前后端分离的系统开发中,后端开发完成后,只要给前端Swagger的地址,前端就可以知道怎么来调用后端的API。

在面向API开发时,Swagger 像一把宝剑,刺砍劈挑,非常顺手。

不足:Swagger不能用来做API的自动化测试;另外对于比较复杂的API测试,比如复杂的HTTP header和body,Swagger 还是难以应付。

Postman

Postman可以用来对API做手工测试和自动测试。

无论是多么简单的HTTP请求,还是多么复杂的HTTP请求,无论是单个HTTP请求,还是HTTP请求集合,Postman都能应付自如。

无论是手工测试,还是自动测试(需要Newman支持),Postman都能顺心应手。

在API测试中,Postman就是一把AK47自动突击步枪,你可以单发射击,也可以来一个三连射,也可以调成自动模式扣上扳机把弹夹里所有的子弹全部倾泻一空。

不足:Postman不适合用来做API的文档。

Spring MockMVC

如果你的微服务是用Spring来开发的,你需要用到Spring MockMVC来向Controller层发起HTTP请求。

好处是,你可以在一个测试方法中调用多个API测试到你的业务逻辑,比如在一个方法中先调用增加记录的API增加一条记录,再接着调用查询记录的API查询刚才的记录有没有新增成功。

另外,还可以对Controller层所依赖的Service层进行Mock,这是其他独立的API测试工具不具备的功能。

我喜欢把Spring MockMVC比喻成流星锤一类的奇门武器,使用得当,威力强大,不过使用场合很受限制。

不足:仅限于用Spring开发的程序和小范围测试。

JMeter

前面介绍的API 测试的工具都是针对功能测试,对基于API的性能测试,你需要用到JMeter。

JMeter就像是加特林机枪,可以很容易把狂暴的子弹流倾泻在要测试的API上。如果一把机枪不够,你可以很容易用JMeter变出更多的机枪,直到把要测试的API轰的七八烂。

不足:拜托,不要指望一把机枪的射击精度。

小结

上面介绍了各种API测试工具以及它们的使用场景。

下面再进行小结:

  1. 在面向API开发的沟通时使用Swagger作为API文档
  2. 在Spring的单元测试和集成测试中用Spring MockMVC
  3. 在API手工测试时使用Swagger或Postman
  4. 在基于API的自动化功能测试时使用Jenkins + Newman + Postman
  5. 在对API做手工性能测试时用JMeter
  6. 自动化性能测试用Jenkins + Maven + JMeter

猜你喜欢

转载自blog.csdn.net/nklinsirui/article/details/82155881