测试思想-流程规范 关于预发布环境的一些看法

简介: 测试思想-流程规范 关于预发布环境的一些看法

关于预发布环境的一些看法


 

 

就在前不久,感觉有点突然的让运维搞了一套预发布环境,也不知道谁的指令,我猜测十之八九是头下的吧。因为增加了一套环境,测试猿的事情也就相应的增加了,谁让我们是底层的任务执行者呢,难免。那有人会问,既然这样,你还抱怨啥,还有何好说的?好吧,且听我慢慢道来。

 

问题出在哪里?问题是,预发布环境的部署、设计、配置。和运维经过简单的沟通得知,我们的预发布环境是一套单独的环境,用的数据库是独立的数据库,和集成测试环境、测试环境,线上正式环境没有任何关联,用的数据是我们测试猿自己造的,刚开始的时候代码拉取的是测试环境用的trunk代码,直到后面才从单独的release分支拉取,不仅如此,预发布环境的环境配置还不如测试环境,比如涉及到支付宝口碑门店管理,外卖接单等的功能也只能在测试环境测试,因为再搞个这样的环境需要有相关资源如口碑商家帐号,需要对接外卖,比较麻烦,所以没配置好。

 

再说测试,作为测试猿,需要在测试环境把功能测试一遍(按头要求,通常是“你们把相关功能全部重新过一遍”),然后呢,在预发布环境重新全部再过一遍,接着线上再过一遍。因为需求任务还是蛮多的,可想而知,这里的工作量了。按我上面的描述来看,我们搞的预发布,等同于说再搞了一套测试环境,然后人力的重复投入,在测试环境漏测的缺陷,在预发布环境一样的存在。

 

再说运维,预发布对于运维来说,还是有点好处的,类比的说,把代码从测试环境部署到预发布环境,这个过程就是上线前的一次“演练”,当把代码从预发布部署到线上环境时,按上次演练过程再来一遍,自然顺畅多了,但是“演练”的代价是建立在测试人力资源浪费的基础上。

 

心里好困惑,因为按我之前的理解,预发布本身就是线上环境,用的就是线上数据库,为何到了我公司,咋就成这样了呢。再次找运维沟通,运维给的理由是,预发布不可能用线上的,理由是:如果程序需要更改表结构,比如加表字段,那部署到预发布的时候,改了线上的数据库,岂不是也会影响线上环境的使用。

 

于是,我问了好些人,包括微信、QQ交流群,也百度了好些资料,得到的答案基本是说,预发布应该尽量接近生产环境,预发布就是正式环境,用的数据库也是线上,但是运维说的那个问题确实是个问题,问过百度的人,比如金阳光,也没得到一个具体的答案(他说他们有个分级发布系统,预发布过程本身就是发布线上的一个过程,发布完了,也就完成了)

 

因为上班比较忙,这个问题就放着没再理了,直到后来想起了,又去寻求答案,问了下一个在搜狗工作的人员,得到了一个相对满意的答案。这里就结合我自己的想法,对预发布做个常规性总结:

1、预发布环境,就是线上环境、正式生产环境,为避免因为测试环境和线上环境的差异性等带来的缺陷漏测而设立的一套环境,其配置等基本和线上一致,只是预发布环境web服务器不在线上集成服务器范围之内,为单独的一台机器;

 

2、预发布环境不能被线上用户访问

通常这里的技术实现是这样的:把预发布环境的访问域名设置成和线上环境的不一样,通过配置host来访问预发布环境;

 

3、预发布环境和线上环境公用数据库,即预发布环境使用的是线上的数据库

问题:如果新版本程序需要更改表结构等,比如加个表字段,那么,部署到预发布环境时也需要更改表字段,这个可能会影响线上环境程序代码的运行,咋解决?

 

答案:

3.1先把预发布环境使用的数据库切换为测试环境使用的数据库

3.2根据实际部署过程,如果有必要,接着,可有针对性的测试下数据库的变更是否会影响线上当前代码程序的运行(注:个人想法)

3.3把新代码部署到预发布环境,测试程序是否正常运行

3.4预发布测试完毕,如果没问题,先上线数据库,即在正式环境执行对应的数据库变更操作

3.5紧接着,把预发布环境连接的数据库切换为线上环境使用的数据库,再次进行预发布环境的测试

3.6最后,如果预发布环境测试通过,则把预发布环境的代码部署到线上生产环境。

注:

1、如果不需要更改数据库表结构等,则无需切换预发布环境环境使用的数据库,即预发布使用线上的数据库。

 

2、这里,因为预发布环境本身就是线上环境,测试完预发布,也基本代表线上环境测试完成。这样还可以避免发布到正式环境还得再测一遍的情况

 

注意:仅供参考,没有绝对,不一定适用所有公司,根据实际情况处理,如果你有想法,欢迎评论、加QQ1033553122,加QQ群:7156436,一起学习讨论

 

目录
相关文章
|
2月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
2761 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
765 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
2月前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
47 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
508 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
132 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
62 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
220 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
844 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
2月前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
73 1
|
2月前
|
监控 测试技术 数据安全/隐私保护
新产品测试流程如何?
新产品测试流程如何?【10月更文挑战第10天】
114 0