网站已成为企业、机构和个人展示形象、传播信息、拓展业务的重要平台。而内容管理系统(Content Management System,简称CMS)作为网站建设的核心力量,扮演着至关重要的角色。本文将围绕CMS测试,深入探讨其在现代网站建设中的重要性、应用场景以及未来发展趋势。
一、CMS测试的重要性
1. 提高网站建设效率
在网站建设过程中,CMS测试可以帮助开发团队发现和解决潜在问题,确保网站功能完善、性能稳定。通过测试,开发人员可以快速定位问题,提高工作效率,缩短项目周期。
2. 保障网站安全
随着网络攻击手段的不断升级,网站安全问题日益突出。CMS测试有助于发现系统漏洞,提前进行修复,降低网站遭受攻击的风险。
3. 提升用户体验
良好的用户体验是网站成功的关键。通过CMS测试,可以优化网站界面、功能,提高用户满意度,增强用户粘性。
4. 降低运营成本
通过CMS测试,可以发现并修复网站性能瓶颈,提高网站运行效率,降低运营成本。
二、CMS测试的应用场景
1. 网站开发阶段
在网站开发阶段,CMS测试可以确保系统功能完善、性能稳定,为用户提供优质的服务。
2. 网站上线前
在网站上线前,进行全面的CMS测试,可以确保网站质量,降低上线后出现问题的风险。
3. 网站运营阶段
在网站运营阶段,定期进行CMS测试,可以发现并修复潜在问题,提高网站性能,降低运营成本。
三、CMS测试的方法与技巧
1. 功能测试
功能测试是CMS测试的基础,主要验证系统功能是否符合需求。测试人员应关注以下方面:
(1)功能完整性:确保所有功能模块正常运行。
(2)功能正确性:验证功能是否符合预期。
(3)异常处理:测试系统在异常情况下的表现。
2. 性能测试
性能测试主要关注系统在压力下的表现,包括响应时间、并发用户数、资源消耗等。测试人员可采取以下方法:
(1)压力测试:模拟大量用户同时访问系统,观察系统性能。
(2)负载测试:逐步增加用户数量,观察系统性能变化。
(3)资源消耗测试:监控系统运行过程中的资源消耗情况。
3. 安全测试
安全测试主要关注系统是否存在安全漏洞,测试人员可采取以下方法:
(1)漏洞扫描:使用专业工具扫描系统漏洞。
(2)渗透测试:模拟黑客攻击,测试系统安全性。
(3)代码审计:对系统代码进行审查,发现潜在安全风险。
四、CMS测试的未来发展趋势
1. 自动化测试
随着人工智能技术的发展,自动化测试将成为未来CMS测试的重要趋势。自动化测试可以提高测试效率,降低人力成本。
2. 云测试
云计算技术的发展,使得云测试成为可能。云测试可以实现跨地域、跨平台测试,提高测试的全面性和准确性。
3. 智能化测试
借助人工智能技术,智能化测试可以实现对系统性能、安全等方面的智能分析,为开发人员提供有针对性的优化建议。
CMS测试在现代网站建设中具有举足轻重的地位。通过合理的测试方法与技巧,可以确保网站质量,提高用户体验,降低运营成本。随着技术的不断发展,CMS测试将朝着自动化、云化、智能化方向发展,为网站建设提供更加高效、便捷的服务。
最近遇到一个频繁CMS的case,日志如下:
老年代的占用非常少,初步判断:并非由达到设置的内存比例触发,有可能是System.gc()或者permGen引发的CMS
增加日志,可以清楚看见, 3个区的使用量都非常少
而gccause无法定位触发原因,只打印了CMS两个暂停阶段的信息
于是重新整理了一下background式CMS的触发点:
1、System.gc() + ExplicitGCInvokesConcurrent引起的
----确实设置了ExplicitGCInvokesConcurrent,但通过Btrace没有抓到System.gc的调用痕迹,可排除
2、JVM动态计算,并不是old gen占用率达到CMSInitiatingOccupancyFraction才进行回收
----设置了UseCMSInitiatingOccupancyOnly,可排除
3、当old gen的可用内存少于av_promo(每次次YGC时晋升到老年代对象大小的平均值)并且小于max_promotion_in_bytes(eden使用量+from使用量)时会触发
----小于max_promotion_in_bytes是有可能的,因为NewRatio=1,但少于av_promo的可能性太小,因为无法打印av_promo的值,写了一个分析gc日志计算晋升对象大小的程序,可排除
4、由permGen回收触发的
----没有设置CMSClassUnloadingEnabled,可排除
看上去好像都不满足触发CMS的条件,得从另外一个方向排查
查看concurrentMarkSweepThread的源码,关键点sleepBeforeNextCycle,意思是每个周期会调用一次shouldConcurrentCollect去判断是否需要执行CMS
而这个周期默认2秒,经检查测试环境设置的也是2秒,再看触发频率居然达到每秒2-3次!!远大于设置的2秒
因此,可以排除是由concurrentMarkSweepThread周期性触发的background式CMS,也和我们设置的 CMSInitiatingOccupancyFraction 没半点关系。
继续从源码追查,在genCollectedHeap中有一个GC的公共接口,关键点是should_do_concurrent_full_gc的判断
条件成立,会创建一个VM_GenCollectFullConcurrent的VM_operation,加到VMThread的队列中执行,可以看到System.gc()其中一种情况也是这样触发CMS进行并发回收的(另外一种情况是上述background式的CMS)
查看JVM参数,果然设置了GCLockerInvokesConcurrent (ExplicitGCInvokesConcurrent在上面已被排除)
于是屏蔽了GCLockerInvokesConcurrent进行反复测试,没有再发生过CMS了,而且触发YGC的GCLocker GCCause也涌现出来,至此,真相浮出水面
频繁触发CMS的原因找到了:设置了JVM参数 GCLockerInvokesConcurrent
这里遗留了三个疑问:
(1)是什么JNI调用触发了gclocker
(2)什么情况下gclocker触发ygc还不够,要调用genCollectionHeap中的collect方法进行回收
(3)对于屏蔽掉GCLockerInvokesConcurrent的测试,ygc的频率随着时间不断增加,平均每秒2-3次(约等于之前的ygc+cms),显然问题还是存在的,只是没有触发CMS
查看源码的时候,能看到initial和remark两个阶段会把cause回写,这也是为什么gccause只能看到CMS Initial Mark和CMS final Remark的原因吧
Phpcms设置火车头采集器发布模块时的全局变量设置怎么填?在火车头向phpcms系统中发布已经采集的数据是配置里需要设定全局变量,所谓的全集变量其实就是连接地址中的pc_hash参数值。在火车头中“使用内置浏览器登录后台”后,进入后台后你会发现在网页地址中有这个参数,把他的值**填入即可。
在iphpcms里有使用火车头向phpcms里采集内容的专题课程可供学习参考。
0 1
MFLOVEYAN
2020-11-18 超过60用户采纳过TA的回答
关注
本人钻在火车头web发布配置一整天终于琢磨出怎么用了。看了点教程,没有说道点子上。其中遇到的问题现在记得很清楚相信正在钻研的朋友也是一样。趁热跟大家分享一下。
火车头采集第一、二步不会的自己去找教程,网上多的是。 直接进入 web的发布的配置(bdyxel原创)

进去之后先选择你要发布的web网站类型,我这里以phpcmsV9为例,内容不用编辑了,都是编辑好的,这点真是比以前方便不少

第三步先配置网站,我用的是(在内置浏览器登录)输入登录的网址,和其他浏览器一样。之后点微型浏览器里的确定即可。
注意地址栏里的红色标识。就这个地方让我绕了大半天(bdyxel原创)


我们看到我这里 pc_hash=4PwPGS
每次登录pc_hash这个全局变量值都会改变所以登录操作只能用“使用内置浏览器登录”并获得pc_hash这个变量的值手动填写到“全局变量设置”里。
然后将值 填在第二步 (bdyxel原创)

然后 编码设置
网站根目录一定要填,不知道根目录是什么的自己去百度
获取列表 选择要发布的列表
(bdyxel原创)

测试配置
注意:标题和内容需要自己手写。 直接点修改就OK了。
然后直接点修改,值里面不是空的就点发表文章测试。测试完,在内置浏览器中浏览。可以看到了
在火车头向phpcms系统中发布已经采集的数据是配置里需要设定全局变量,所谓的全集变量其实就是连接地址中的pc_hash参数值。在火车头中“使用内置浏览器登录后台”后,进入后台后你会发现在网页地址中有这个参数,把他的值**填入即可。
在iphpcms里有使用火车头向phpcms里采集内容的专题课程可供学习参考。
进入苹果CMS10后台,点击_采集。
在采集页面,点击左侧自定义资源库,鼠标右键点击需要采集的内容。
如采集当天、采集本周、采集所有,右键选择**链接地址。**链接地址后台选择系统_定时任务,选择添加,添加一个定时任务。状态选为:启用,名称和备注:可任写,附加参数:粘贴刚刚**的链接,执行周期和执行时间的设置点击下面的全选按钮即可。找到刚才设置的任务后鼠标右键测试**链接地址。**刚才的链接进入宝塔后台界面找到计划任务,按照图片所示添加任务,注意url地址填写刚**的测试采集页面的地址,选择访问URL任务,按自己的需求填写执行周期参数后保存。
文章已关闭评论!
2025-05-09 23:05:13
2025-05-09 22:45:22
2025-05-09 22:33:25
2025-05-09 22:22:51
2025-05-09 22:01:11
2025-05-09 21:15:02
2025-05-09 21:02:22
2025-05-09 20:43:13