前后端分离的项目,后端要怎么测试?

一、背景

一开始接触到 前后端分离 这个概念的时候,我所了解到的是后端可以专注开发,要测试效果的话可以用像 Thymeleaf 这样的模板引擎来渲染数据,因为不用像JSP那样把前后端的代码都写在同个页面里,所以这是前后端分离的一种体现。

后来又了解到,前后端分离 可以使用像 Postman 等工具对后端的代码进行测试,这样可以完全脱离前端的代码。

我有用过Postman,一般后台是使用@RestController,两者结合起来进行测试的。

从我的角度来说,我更倾向于后者,想知道具体是怎么回事。

二、问题

假如上述提到的postman的测试就能做后端测试的话,如果要测试轮播图片这种比较动态的东西,需要怎么测呢?postman能接收到传过来的图片信息(包括url)就可以了吗?

在正常的前后端分离,后端开发的测试,也是使用@RestController吗?

我刚接触编程,对这些事情不太理解。请大神指教,谢谢!

阅读 9.1k
3 个回答

你好,每个开发人员在初学Web开发时确实会有你所疑问的问题。

你已经了解的地方就是@Controller注解和@RestConroller的不同。

前者返回视图,交由视图解析器来分析视图并返回给浏览器;后者则是返回一个JSON数据,其关键就是前端的html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。

这二者均是Web开发的历史产物。前者是前后端不分离时所用的视图返回结果,技术实现比如有SpringMVC+Thymeleaf;后者则是现在主流的前后端分离架构中所用的Api风格,比如SpringBoot + Vue。而二者不同最关键的就在于这个Rest

Rest指的就是RestFul风格的Api,即根据URL能获得JSON的返回结果,然后交由前端处理。前后端的风靡首先就建立在RestFul风格和Ajax的提出。

并且JavaScript语言使得浏览器具备了处理动态html页面的能力,从而后端负责渲染Html的责任就转移给了浏览器端。后端只需要提供一些必要数据即可。

问题的矛盾性在于,如果是不分离时,根本不方便测试(即要测试的是页面的渲染结果),不能只根据返回的数据来看;而前后端分离,测试后端接口是否有问题只需要看返回的数据结果是否满足期望值即可,降低了测试成本,反而突出了分离的好处,各种测试工具也如雨后春笋。

而页面的渲染结果测试,那是前端开发人员需要去关注的地方。也正是因为获取数据与页面页面的剥离,加速了开发与测试的工作,并且使得后端和前端的专业性也变高,能够开发出更加优秀的Web程序。

新手上路,请多包涵

我更喜欢用junit+swagger 需要测试性能时使用junit,平常api使用swagger测试,个人测试+前端交流两不误;

轮播图这种明显是前端的活,后端提供一个轮播图api接口返回图片地址就可以

后端单元测试可以用junit、Mockito、Spock等框架
接口测试可以使用Postman、IDEA自带的HttpClient

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题