测试环境和极光推送生产环境测试的差别在哪

在测试环境上无法重现的问题在生产问题如何调试、解决?
经常会遇到生产环境上有问题,但是测试环境上没有问题的情况,且无报错信息,无法再测试上重现的问题,如果说对比两个环境下的相关文件的话,感觉太麻烦了,不知道有没有大神有什么好的解决方案。
有问题竟然不知道问题出在哪里 证明程序写的不够好
--- 共有 1 条评论 ---
···大哥,我是来找解决办法的,能抓住问题重点么?还是你的思维方式不大一样?
--- 共有 2 条评论 ---
: 正式系统上多半是不具备调试环境的 , 应该还是估计一下可能出错的地方, 将日志进一步细化
日志是个办法,但有时候日志里是看不出啥的
确实会遇到这些奇葩情况,通常是由于网络环境不同导致的
外面的世界很可怕的
--- 共有 1 条评论 ---
我想我又要说程序员经常说的一句话了···完全一样的代码,这不可能啊,哈哈。但是它确实发生了·哈哈maven(8)
作为一名程序员,在开发的过程中,经常需要面对不同的运行环境(开发环境、测试环境、生产环境、内网环境、外网环境等等),在不同的环境中,相关的配置一般不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置。每次在不同环境部署程序时,都需要修改相应的配置文件,使之完成环境的配置。这么做存在一个比较大的问题:每次修改配置非常麻烦,而且配置错误会产生不可预估的影响,比如,在发布生产环境时用的开发环境的配置还好,但如果在开发环境下用生产环境的数据,将会造成生产数据的污染,导致生产环境崩溃。
目前JAVA相关的项目基本都是使用Maven来进行构建。在maven中实现多环境的构建可移植性需要使用profile,通过不同的环境激活不同的profile来达到构建的可移植性。
一、POM中profile的配置
首先是profile配置,在pom.xml中添加如下profile的配置:
这里定义了三个环境,dev(开发环境)、test(测试环境)、pro(生产环境),其中开发环境是默认激活的(activeByDefault为true),这样如果在不指定profile时默认是开发环境。
同时每个profile还定义了两个属性,其中profiles.active表示被激活的profile的配置文件的目录。
二、工程目录
针对不同的环境,我们定义不同的配置文件,而这些配置文件都做为资源文件放到maven工程的resources目录下,即src/main/resources目录下,且各个环境的配置分别放到相应的目录下,而所有环境都公用的配置,直接放到src/main/resources目录下即可。如下图所示:
如图所示,开发环境、测试环境、生产环境的配置文件分别放到src/main/resources目录下的dev、test、pro三个子目录中,剩余公共的配置文件放于resources目录下。
三、POM文件中build配置
在pom中的build节点下,配置资源文件的位置,如下所示:
&src/main/resources&
&src/main/resources/${profiles.active}&
首先第一个资源文件位置src/main/resources需要排队提各个环境的配置文件,各个环境的配置我们在第二个节点中通过前面在profile中配置的profiles.active属性来指定。即src/main/resources/${profiles.active}。这样在激活指定的profile时,会加载指定目录下的配置文件,如当前激活的是pro profile,那么这个资源目录就是src/main/resources/pro。这样就达到了不同环境加载不同配置的目的。
五、项目编译生成
所有需要的配置就完成了,通过在运行maven命令时指定不同的profile即可构建不同环境需要的war包或发布到不同的环境了 。如:
mvn clean package -Ppro即构建出生产环境需要的war包
由于默认的profile是dev,所以如果我们不指定profile,那么加载就是开发环境dev下的配置文件了。即我们在本地开发测试时,不用关心profile的问题。
在resource节点中可以增加如下节点
&src/main/resources&
在某个resource中如果设置filtering为true,将会根据输入参数动态修改相关内容。
配置文件app.config中为
url=${url}
方式一,使用profile的properties
&localhost&
maven在resources过程中会替换为localhost
方式二,使用命令参数-D
mvn clean package -Durl=localhost
同样的效果,都会copy资源文件的时候设置这个url的参数
原文地址:/lzxianren/p/maven-profile.html
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:588273次
积分:6923
积分:6923
排名:第2645名
原创:232篇
转载:65篇
评论:62条
(6)(9)(1)(11)(11)(9)(10)(6)(11)(7)(3)(6)(13)(6)(12)(8)(1)(5)(10)(7)(7)(10)(11)(8)(6)(11)(8)(2)(6)(4)(9)(3)(1)(1)(5)(5)(3)(15)(11)(9)(7)(2)一个soap的webservices接口程序的部署测试环境使用非编译安装,webserver是apache,执行没有问题但生产环境采用编译安装,webserver是nginx,执行有问题,xml报文没返回,经过比对测试环境与生产环境wsdl的不同时发现生产环境wsdl中的execute节点缺少子节点最后将生产环境使用非编译安装,并将webserver换成apache,发现生产环境wsdl中的应用管理接口节点有了子节点
Redis内存配置参数&maxmemor
最新教程周点击榜
8Redis内存配置参数
微信扫一扫1832人阅读
记录自己的技术博客,非常有效。是个人成长的历程与心得。以后我会养成记录博客的习惯;
目前在上海一家创业公司从事测试工作,值此公司的产品上线进来,我也算是见识了不少:
开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告。
测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。
生产环境:是值正式提供对外服务的,一般会关掉错误报告,打开错误日志。
三个环境也可以说是系统开发的三个阶段:开发-&测试-&上线,其中生产环境也就是通常说的真实环境。
目前产品正要上线,所以就直接到生产环境从事各种测试了。
看到一些同行说:网络环境,电信通、宽带通、长城宽带、联通、电信、铁通、教育网等网络环境下,测试环境的数据可能与线上用的有出入,线上的服务器可能和测试用的配置上有出入,还有就是两种环境下的缓存可能也有问题。
目前还没有条件,不过我会想办法做其他测试的
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:31330次
排名:千里之外
转载:17篇
评论:16条
(1)(1)(5)(2)(1)(2)(1)(4)(8)

我要回帖

更多关于 友盟推送生产环境测试 的文章

 

随机推荐