◇  不知道广大前端同学有没有过这样的经历,在做新需求联调的时候,原本上一个版本已经做的好好的功能,前后端已经联调好的。这次做需求的时候,测试发现好多地方都不对了。

  ◇ 开发人员经常说的一句话就是:我啥也没动啊。这次就是,我们这个后端,一口咬死,我啥也没动,要不你问一下前端是不是动哪里了?

如果这个时候你再和他争吵下去就像极了这个图片一样,两个人都张大了嘴,来吧,我们互相伤害。

因为是在测试环境,大家都做了新需求,谁也不敢保证自己没动,所以这个时候争吵是无意义的。那么幸亏我提前准备了一招。

1、现在前端是怎么区分测试环境与线上环境的?

其实这个问题现在是一个普遍现象,之前也说过好几次了。

△ 大家都是通过npm run build /prod来区分环境的,所以如果准备测试的时候,我们很高兴的终于做完需求了,打了一个npm run build包,开始部署。

测试阶段完了,测试同学说,咱们往测试环境部署一下正式包吧,验证一下线上环境的接口。然后我们又npm run prod一下,然后部署上去。测试验证过后,喊一声没问题了,发报告吧。发完收到通知,然后我们就开始把刚才npm run prod那个包部署到线上去。

但是线上那个包,貌似验证不了测试环境吧?

△ 还有一种方式呢,就是前端不做处理,把HTML做到服务端进行渲染。服务端是可以区分测试环境的机器与线上环境的机器的,所以我们前端只要打一个包就可以,不用区分测试与线上环境。只要服务端识别到是测试机器,还是线上机器,就可以在HTML页面帮我们渲染一个区分变量,我们前端用以区分请求环境。

但是一但到了线上,貌似线上的js还是没法往测试环境发请求吧?

2、为什么要从线上往测试环境发请求?

这也是出于周全考虑的一种策略行为。试想,在开发新需求的时候,如果后端的接口名字没变,只是参数变了;或者后端的接口没变,参数没变,逻辑变了?再或者后端直接把接口名字给变了;每一种情况其实都会有一定的危险的,所以,能不上线就不上线。

比如后端把接口名字变了,我们没有反应及时,或者沟通不及时,那么这个时候的上线过程必定是要出问题的。

比如后端参数变了,那么试想,我们前端先上线,线上的接口会不会不适应的新版本的js,服务端先上线,会不会接收不到前端的新参数而不适应。就会变得像下面这张图一样,造成扭曲的情况。

虽然每次我们所做的功能都应该是向后兼容的,但多做一些测试措施总是没错的。

3、线上怎么向测试环境发请求?

△   例如测试环境的请求前缀是  test.xx.com/api    而线上环境的请求前缀是 prod.xx.com/api

△   那么我们前端一定是要有地方适配这2个前缀的。

△  比如我们的网站访问地址为: www.ooo.com 这个时候调用的一定是prod.xx.com/api的请求域名

△ 这个时候我们手动给url加个参数 例如 www.ooo.com?test=ok

△ 这个时候如果没有任何操作,其实这对我们网站是没有任何意义的,但是我们可以在js的代码里做适配

function geturlparam(key){let url = window.location.href;let params = url.split('?')[1]let getParam = new URLSearchParams(p);return getParam.get(key);
}
var testOrProd = geturlparam('test');
let urlDomain = '';
if (testOrProd === 'ok') {urlDomain = 'test.aa.com/api';
} else {urlDomain = 'prod.aa.com/api';
}module.exports = urlDomain;

通过这种线上环境向测试环境发请求的方式,是不是就可以做到另一个维度的测试了呢

-----------------------------------------------------------------------------------------

看着不过瘾?技术型爽文推荐:

后端接口时通时不通,团队全链路排查实战​​​​​​​

-------------------------------------------------------------------------------------------

后端总说他啥也没动,我从线上调了一下测试接口,你再说一句动没动相关推荐

  1. window突然没声音.无法启动window audio.无法播放测试音调

    在PowerShell(管理员)里按顺序执行输入下面两个代码 net localgroup Administrators /add networkservice net localgroup Admi ...

  2. vue项目在vscode中编译eslint报错没显示红色波浪线提示

    vue项目在vscode中编译eslint报错没显示红色波浪线提示. 如下图所示: 下图是预期效果: 不符合Eslint校验规则的代码位置都能展示出来,这样一目了然.能帮助我们迅速找到报错的位置. 然 ...

  3. 当人说君子动口不动手时怎么回怼_论文和效益:君子为什么动口不动手?

    来源:武际可科学网博客 作者:武际可 北京大学力学系 "君子动口不动手",这话是说当君子与人产生矛盾时,是要讲道理而不能老拳相对.现在,我们要把它用来看看学界的君子们,如果把写论文 ...

  4. HTML5期末大作业:动漫网站设计——电影从你的全世界路过(4页) 网页设计作业 / 动漫网页设计作业,网页设计作业 / 动漫网页设计成品,网页设计作业 / 动漫网页设计成品模板下载

    HTML5期末大作业:动漫网站设计--电影从你的全世界路过(4页) 网页设计作业 / 动漫网页设计作业,网页设计作业 / 动漫网页设计成品,网页设计作业 / 动漫网页设计成品模板下载 常见网页设计作业 ...

  5. lol排位服务器维护赢了没加分,LOL:四个不被承认的事实,打野没义务必帮线上,段位并非代表一切...

    原标题:LOL:四个不被承认的事实,打野没义务必帮线上,段位并非代表一切 如今英雄联盟这款游戏已经陪伴了我们8年的时间了,而这款游戏也被玩家们开发出了多种玩法,其中打野位置在最早的时候是没有被开发出来 ...

  6. jasper翻译_吴尊儿子用英语和沙溢交流,沙溢一句都没懂,Jasper的神翻译亮了

    原标题:吴尊儿子用英语和沙溢交流,沙溢一句都没懂,Jasper的神翻译亮了 要说娱乐圈里最厉害的一个明星,那么沙溢应该排得上位置.42岁的他,在许多人的眼里就是一位"中年油腻大叔" ...

  7. 万万没想到,刷1000道题目,还不如搞懂这几个机械动图!

    ▲ 点击查看 著名教育家蒙台梭利曾说:"孩子成长中最重要.最基本的就是注意力集中". 而乔布斯也曾说:"专注和简单一直是我的秘诀之一. 观察一下你家的孩子,会不会经常出现 ...

  8. 软件测试30K*16(总包50W+)入职offer,一位字节跳动女测试开发的自述

    小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己 ...

  9. 东风本田crv2020新款混动说明书_谈谈近30万的2019款本田CRV油电混动版,用车感想在这里...

    随着社会的不断进步发展,如今车已经越来越普遍.有辆车已经不再是什么稀奇事,如今社会有家庭的人有辆车也是很普遍了.买车也都是要买自己喜欢的那一款,今天为大家来谈谈本田2019款CVR油电混版车.当初买车 ...

最新文章

  1. ZTE物联网之智能电表简介
  2. Leetcode 剑指 Offer 40. 最小的k个数 (每日一题 20210825)
  3. post发送byte数组_KAFKA消息发送
  4. 计算机达人成长之路 目录
  5. 进入顶层社会的顺序是什么?
  6. 使用Python+tkinter编写电脑桌面放大镜程序
  7. WCF 4 高级编程 - 读书笔记
  8. linux空间满了有什么问题,Linux 空间满问题分析 [ Keep Coding ]
  9. 只修改日期不修改时间(巧用convert函数)
  10. 增加批量修改成本价格,配合后台管理增加成本价和毛利润统计
  11. EasyUI 1.5.1 美化主题大包 Insdep Theme 1.0.3 已发布,开源下载
  12. 使用Python写登录京东商城购物,加入购物车的脚本
  13. 颜色的16进制表达方式
  14. android 行政区域,Android高德之旅(14)行政区划搜索
  15. ContextCapture系列教程(三):大疆精灵4RTK版无人机POS数据提取、处理(处理后勉强达到免相控要求)
  16. CSP 201809 第二题 买菜
  17. 盐城北大青鸟东台基地学员生日会 | 美好的时光里,你我同在
  18. 敏捷式Mybatis
  19. 虚幻引擎5 C++编程学习
  20. Lua--pairs和ipairs遍历区别

热门文章

  1. 苹果 A10 处理器真的媲美桌面级CPU了么?
  2. 中国酸奶市场趋势报告、技术动态创新及市场预测
  3. redis 的雪崩和穿透
  4. SteamVR2.0开篇——环境搭建及内容功能简介
  5. 自动化测试 ——自动卸载软件
  6. 计算机组成原理实验一实验报告,计算机组成原理实验报告一
  7. pwd命令是什么的缩写_Linux pwd命令详解
  8. 离线屏幕共享,局域网实现
  9. vue 虚拟dom和diff算法详解
  10. 居家好物┃超好用的擦窗神器保护腰椎尾椎久坐不累的美臀坐垫