1.非功能测试主要包括性能测试和高可用测试,性能测试分为单交易基准,负载,混合容量,稳定性测试;高可用包括可扩展性和可用性测试,如ORACLE RAC集群,服务器集群,负载均衡,一键启停,自我拉起,流量控制,AP横向/纵向可扩展性等。
2.常见性能测试优化方法:数据库合理添加索引,分库分表,垂直和水平分表,比如每张表最多1000万行数据,读写分离等。
3.JVM略讲:JAVA虚拟机,一般会分配服务器1/2的内存大小,随着压力逐渐增加,应用对内存占用逐渐增大,渐渐开始通过GC释放内存。所以稳定性测试需要关注GC数量及每次消耗时间,一般不超过10次/8小时,每次不超过1秒。
4.性能测试过程中避免不了需要使用的就是挡板,组件组装测试阶段不做连通性测试。
挡板一版会以交易码对不同交易进行区分。
5.最有印象的两次性能测试缺陷:
1) 单交易基准测试无问题,并发起来时整个应用就会挂掉(weblogic中间件),监控发现并发1分钟后IO异常增大,随后CPU消耗降低,服务进程被系统杀死,分析得知为java调用C的方法需放在初始化中每次只执行一次即可(安全认证),不适用并发场景,并发时就会频繁堆内存进行读写,使得读写异常增大,服务器保护机制就会将其杀死。
2)?ORACLE数据库RAC集群有效性测试,failover模式两台负载均衡数据库实例,shutdown immediate停掉一个实例后,交易持续报错,连接不会转移到另一台数据库实例。数据库DBA自行测试验证可以发生连接自动转移。后经应用开发检查为数据库连接串配置只连了一个实例,将连接串更新后,问题解决。
6.部分测试命令:
ps -ef|grep 进程名称或部分名称 查看进程状态
jmap -histo:live pid? 手动full gc
jstat -gc 查看gc,cpu,buffer,cache情况
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
?
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取?
?