认识服务端一、服务端测试的价值

Posted by DDW on 01-05,2023

一、什么是服务端测试

1、什么是服务端

    一般所说的服务端,是指用户在APP或PC使用互联网功能提供数据的一切基础应用程序。
微信截图_20230704122227
    在移动互联网的时代,服务端的概念相比PC互联网时代更为清晰。例如你想发一条朋友圈,已经在手机微信中编辑好“今天天气不错”,这时候服务端还没有任何的处理,知道你点下“发送”后,服务端才会在数据库上加上你这条“今天天气不错”的朋友圈,并推送到各个朋友的朋友圈中。

2、服务端测试与应用端测试的不同

那么,什么是服务端测试呢?
    众所周知,功能测试,是站在用户的角度对客户端页面进行的测试,也就是黑盒测试,仅对应用程序进行这种测试无法触及服务端层面,会有许多不可预估的风险。例如,你想抢周杰伦演唱会的门票,明明客户端已经显示抢票成功,但却未给你寄送门票,这时候,客户端的测试用例是通过了,但服务端因为某些BUG未将你的数据录入,造成客户产生购买风险。这种BUG会造成客户对应用程序的不满,久而久之,使用的人越来越少。
    进行服务端测试后,可验证后台数据是否正常,规避风险。服务端测试需要明确知道业务流程,不仅是各种接口参数的输入与输出,业务的逻辑关系最为重要。明确业务逻辑后,进行接口、中间件、性能等测试,再结合前端测试,能将应用程序的上线风险降到最低。

二、服务端测试的种类

1、直接面向服务端、APP的测试

    这种测试,是针对于服务端为WEB\APP端口提供的一些后台接口进行测试,比如用户的个人信息、交易记录的读取、修改、储存等,一般是用HTTP接口的方式提供。这种后台的测试从流程上来说就是按照产品的发布节奏来,再后端开发完成接口后,如果时间紧急测试人员直接用Postman等工具进行接口测试,如果时间不紧急,可以先梳理pytest或unittest自动化测试框架,梳理自动化框架的好处是减少了效率,对应系统迭代更新、修改了代码以后,可以很快速的重新进行测试。
    对于这种服务端后台的测试人员,除了需要掌握自动化测试、接口测试的技术以外,还要又一个很好的沟通协调能力,后台接口一般是提供iOS/Android/WEB三个端,需要和三端的测试人员协调测试进度,测试环境等事项。
遇到重构的应用程序,还可能需要进行性能测试验证其可行性。

2、对后端的中间件进行测试

    这种类似于云计算的基础服务测试,会有一个专门的测试团队来完成。接口只是供外部使用,处理数据的后端是非常复杂的,测试人员需要细致的了解这些服务端产品的技术框架以及技术实现,需要了解到模块的颗粒度,对于系统的框架图、时序图都要有很好的了解,正对这些理解去设计用例,再和开发一起讨论如何实现用例。
    如果这种基础服务用了某个开源的软件,那也要关注开源社区的进展,并把发现的BUG及解决方案推到社区内,为社区做贡献。
除了验证中间件的可靠性,还要进行以下的测试:

  • 异常测试
        比如,硬件异常、机器挂掉的时候是否能够成功启用备用机,硬盘挂掉是否会造成数据丢失,又或者操作系统挂掉,我们的数据有没有丢失、能不能尽快启动备用机对外进行服务,系统状态有无出现异常等,测试人员需要用各种工具来模拟这些情况。
  • 稳定性测试
        模拟系统在7X24的时间内运作,会不会除问题,使用接口、性能测试工具不间断的跑,模拟各种负载、干扰的情况。
  • 性能测试,
       &#160负载测试、压力测试、配置测试线上压测、容量规划等。最常规的性能测试,一般是先规定一个系统需要承受的压力,然后使用工具测试边界值,再结合实际考虑是否需要扩容等。