前后端联调实践总结

联调的认知和感触

认知(讨论)

  • 为什么要联调?
  • 联调都干些什么?

联调的问题

联调就是后端不好好写单元测试与集成测试,让前端发请求调用以达到测试的目的;前端不好好写Mock和测试,让后端输出数据以达到测试的目的。

更正确地认识

  • 联调是前后端一起见证靠谱的测试结果
  • 给需求方提供一个正确的需求验证环境
  • 尽早暴露前后端实现的问题

联调必备技能

DNS与HOSTS

  • DNS(Domain Name System)的认识
  • DNS提供将域名解析为IP
  • 域名只是便于记忆,真正起作用的还是IP
  • GFW作用,HOST翻墙
  • 域名解析顺序
  • 浏览器缓存>浏览器代理>HOST文件>系统DNS缓存
  • 本地DNS服务器>上级DNS>...>顶级DNS

HOST配置的姿势

更改HOST不即时生效问题

原因

  • 浏览器有HOST缓存
  • 浏览器复用了原有HOST的Socket连接

解决办法

  • 重启浏览器或者打开新的浏览器
  • 使用Charles/Fiddler等代理,避免此问题
  • 使用Chrome工具,强行重置Socket连接

代理服务配置

代理服务HTTPS抓包问题

  • 打不开页面? 需要根据Charles Help菜单中规则添加Charles根证书
  • 某些包解不开?需要在Charles代理设置里面配置具体的解包域名
  • 线上证书不安全?解包后再封的包跟原来的有些区别,需要单独打开对应页面进行信任

特定场景的调试姿势

PC/Touch页面

  • 配置前后端环境
  • 配置HOST
  • 直接使用浏览器及浏览器模拟器调试
  • 如果只是前端更改,在不影响数据的情况下,可以使用线上页面调试

App页面

真机调试

  • 手机上安装Beta包,使用数据线连上电脑
  • 允许调试或者开启Inspect
  • 通过chrome://inspect 或者Safari的开发者工具进行调试

模拟器调试

  • Xcode模拟器
  • 搞一个可以在模拟器里面跑的App
  • 将App拖入模拟器,然后打开,用Safari开发者工具调试

微信调试

如何更有效地联调

明确前后端的约定

  • 根据需求一起约定交互的内容
  • 包括但不限于如下内容
  • 接口名称、请求路径、请求方式
    • 返回字段结构、对应字段名和字段类型以及字段边界值
    • 异常情况数据约定
  • 一份逼真的样例数据
  • 前端可以根据这个数据造出各种数据

后端对约定的履行

  • 根据约定实现相应的需求
  • 使用Postman 进行接口测试
  • 使用浏览器进行接口jsonp功能测试

前端对约定的履行

  • 根据约定实现相应的需求
  • Mock数据
    • 使用FEKit Mock数据
    • 使用YKit Mock数据
    • 使用Charles/Fiddler 代理接口响应
    • 任意其他Mock,代理,转发工具获取Mock数据
  • 通过变换Mock数据,进行功能测试

真正的联调

  • 前端完成自测
  • 后端完成自测
  • 一起验证需求的实现

友情建议

  • 远离关键路径,合理调配时间——别拖后腿
  • 把握全局进度,提高整体效率——别浪费时间
  • 积极沟通交流,主动推进联调——别甩锅

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阮一峰的网络日志

HTTPS 升级指南

上一篇文章我介绍了 HTTP/2 协议 ,它只有在 HTTPS 环境才会生效。 为了升级到 HTTP/2 协议,必须先启用 HTTPS。如果你不了解 HTTPS...

2855
来自专栏WebHub

关于搭建HTTPS服务...

关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端。

1554
来自专栏腾讯移动品质中心TMQ的专栏

十分钟学会 Fiddler

Fiddler是一个http抓包改包工具,fiddle英文中有“欺骗、伪造”之意,与wireshark相比它更轻量级,上手简单,因为只能抓http和https数...

2K1
来自专栏PHP在线

关于HTTPS的七个误解

本文详细讨论了关于HTTPS的七个误解,误解内容包括HTTPS无法缓存、SSL证书很贵、HTTPS太慢等等,以下是原文,希望你可以更透彻地了解HTTPS。 来源...

3017
来自专栏康怀帅的专栏

macOS 对 gdb 进行代码签名

在 macOS 使用 GDB 调试 C 语言代码,必须对 gdb 进行代码签名,否则 GDB 不能运行! 创建证书 钥匙串访问 打开菜单:钥匙串访问-》证书助理...

2704
来自专栏技术博文

ssh证书登录

ssh有密码登录和证书登录,初学者都喜欢用密码登录,甚至是root账户登录,密码是123456。但是在实际工作中,尤其是互联网公司,基本都是证书登录的。内网的机...

4816
来自专栏Java3y

HTTP2和HTTPS来不来了解一下?

试想一下:请求一张图片,新开一个连接,请求一个CSS文件,新开一个连接,请求一个JS文件,新开一个连接。HTTP协议是基于TCP的,TCP每次都要经过三次握...

730
来自专栏上善若水

055 警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。

将签名命令上加一段话: -digestalg SHA1 -sigalg MD5withRSA 加上后就可以了

1274
来自专栏進无尽的文章

精析-苹果开发者证书的实现机制

      在iOS开发过程中,不可避免的要和证书打交道,真机调试、App上架、打包给测试去测试等都需要搞证书。在此过程中我们会遇到很多的问题,但是如果掌握了真...

912
来自专栏程序猿DD

Spring Cloud构建微服务架构:分布式配置中心(加密解密)

最近正好想发一篇关于配置中心加密的细节内容,结果发现基础的加密解密居然漏了,所以在这个入门系列中补充一下。后面再更新一下,使用配置中心的一些经验和教训。 ? 在...

3207

扫码关注云+社区