天啦噜:测试环境OK,发布到公网跑不了?!!!
2017-07-05 20:03
218 查看
上一周柠檬班的一位同学问了一个问题,截图如下:
其实不管你是新人还是测试老油条,如果在测试环境测试通过了,但是发布到线上就跑不通了。新人怕责怪怕背锅,老油条怕说自己测试工作不努力,测试能力资质一般。但是其实遇到问题,如果能够快速的定位到是什么问题,就一切都好办了!起码你不会被质疑资质平庸!
首先我们要弄懂什么是测试环境什么是公网环境(也就是生产环境)。弄不懂的请自行百度,或者是期待下一次小编的专文解说。
第二:我们先要沉着冷静,把问题给看清楚====>现在是测试环境是没有任何问题的,但是发布上去,公网上有问题。
第三:从第一点,我们知道,测试环境和公网环境是两个不同的环境,他们也许数据库结构是一样的,代码是一样的,但是运行的软件环境或者是配置是不一样的,如果明白这个道理,我们就一层一层的去分析(以小编遇到过的问题来举例子),分析如下:
A:是否100%确定测试环境是OK的?一次都没有出现过这个问题,如果是,请直接忽略这点;如果不是,那么恭喜你,那么低概率的事件居然在上线出现了,吃一堑长一智,不管bug是偶现还是大概率复现,你都应该把这个bug提交做好跟踪。
B:对比两处环境的配置是否一致,如果不一致,要检查是否公网的配置文件少了关键的配置参数值?或者是配置文件有错?这些问题都有可能会导致问题出现,一般比如说:访问的URL配置指向不对?举个栗子:小编有一次测试接口的时候,配置文件hession
URL没有配置对!!!用的是开发环境的,死活跟开发说他的代码有问题,一直检查不对,后面才知道是我自己配置错误了,还好这个是测试环境,万一是公网环境,绝对的下不得地!当然公网环境不是我们所能决定的,但是你也可以帮忙定位是否他们的配置文件少了参数或者是关键变量!
C:如果环境变量一致,那么请直接看C。检查两者的数据库表结构是否一致!有的时候开发直接把这个数据库表的结构告诉测试,测试直接在测试环境构建新的库表,那么程序可以正常运行。但是,如果:你们可爱的开发,忘记把这个新增的数据库表结构提交给发布程序的人或者是运维,那么即使服务发布了,那么你的网站某个功能或者是包或者是接口都是不能访问的!因为你一到新增的功能模块提交数据,数据无处可去,成了游魂型的数据,就会报错,小问题报错,大问题直接运行不了卡死,所以也必须要慎重!当然这也许不是你的问题,但是如果你可以定位到这个问题,那就会更加棒!
D:好的,如果以上都没有问题,那么只能去怀疑。发布到公网上的代码与你测试环境的代码是否是同一个版本?你测试通过的是1.2版本,但是运维如果去SVN上拉取的是1.1版本,然后打包发布上去,那么出现问题,访问不了,这个难道不是很正常嘛?
想要获得更多自学资料视频,收听免费公开课,请➕Q群643368558,与群内测试dalao谈笑风生~
其实不管你是新人还是测试老油条,如果在测试环境测试通过了,但是发布到线上就跑不通了。新人怕责怪怕背锅,老油条怕说自己测试工作不努力,测试能力资质一般。但是其实遇到问题,如果能够快速的定位到是什么问题,就一切都好办了!起码你不会被质疑资质平庸!
首先我们要弄懂什么是测试环境什么是公网环境(也就是生产环境)。弄不懂的请自行百度,或者是期待下一次小编的专文解说。
第二:我们先要沉着冷静,把问题给看清楚====>现在是测试环境是没有任何问题的,但是发布上去,公网上有问题。
第三:从第一点,我们知道,测试环境和公网环境是两个不同的环境,他们也许数据库结构是一样的,代码是一样的,但是运行的软件环境或者是配置是不一样的,如果明白这个道理,我们就一层一层的去分析(以小编遇到过的问题来举例子),分析如下:
A:是否100%确定测试环境是OK的?一次都没有出现过这个问题,如果是,请直接忽略这点;如果不是,那么恭喜你,那么低概率的事件居然在上线出现了,吃一堑长一智,不管bug是偶现还是大概率复现,你都应该把这个bug提交做好跟踪。
B:对比两处环境的配置是否一致,如果不一致,要检查是否公网的配置文件少了关键的配置参数值?或者是配置文件有错?这些问题都有可能会导致问题出现,一般比如说:访问的URL配置指向不对?举个栗子:小编有一次测试接口的时候,配置文件hession
URL没有配置对!!!用的是开发环境的,死活跟开发说他的代码有问题,一直检查不对,后面才知道是我自己配置错误了,还好这个是测试环境,万一是公网环境,绝对的下不得地!当然公网环境不是我们所能决定的,但是你也可以帮忙定位是否他们的配置文件少了参数或者是关键变量!
C:如果环境变量一致,那么请直接看C。检查两者的数据库表结构是否一致!有的时候开发直接把这个数据库表的结构告诉测试,测试直接在测试环境构建新的库表,那么程序可以正常运行。但是,如果:你们可爱的开发,忘记把这个新增的数据库表结构提交给发布程序的人或者是运维,那么即使服务发布了,那么你的网站某个功能或者是包或者是接口都是不能访问的!因为你一到新增的功能模块提交数据,数据无处可去,成了游魂型的数据,就会报错,小问题报错,大问题直接运行不了卡死,所以也必须要慎重!当然这也许不是你的问题,但是如果你可以定位到这个问题,那就会更加棒!
D:好的,如果以上都没有问题,那么只能去怀疑。发布到公网上的代码与你测试环境的代码是否是同一个版本?你测试通过的是1.2版本,但是运维如果去SVN上拉取的是1.1版本,然后打包发布上去,那么出现问题,访问不了,这个难道不是很正常嘛?
想要获得更多自学资料视频,收听免费公开课,请➕Q群643368558,与群内测试dalao谈笑风生~
相关文章推荐
- 愚人节?测试环境OK,发布到公网跑不了?!
- spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧!
- [找程序员代写推荐]spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧!
- IOS APP 如何在真机设备上测试及发布流程(Xcode6.1环境)
- 互联网项目发布环境:测试、回归、预发布、灰度发布、生产环境的见解
- Windows2012中Jenkins搭建.NET自动编译测试与发布环境
- QT4与VS2005 整合环境配置实战(测试OK)
- 利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境
- 互联网项目发布环境:测试、回归、预发布、灰度发布、上生产
- 37Exchange 2010升级到Exchange 2013-测试邮件流(未切换公网发布)
- ASP.Net一键自动化更新代码、编译、合并dll、压缩js、css、混淆dll、zip打包、发布到测试环境的bat批处理
- spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧!
- 手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台
- 用于在公网环境下测试的Telnet/SSH服务器
- Jenkins搭建.NET自动编译测试与发布环境
- [程序代写推荐]spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧!
- 博客园在文章中可以直接发布切图(测试OK)
- 消息订阅发布系统Apache Kafka分布式集群环境搭建和简单测试
- php利用svn hooks将程序自动发布到测试环境
- 利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境 推荐