带你了解稳定性测试

744700076@qq.com SEO是什么评论3阅读模式

时下,移动互联网时代中,完成原始用户积累已经明显比过去更为容易,也更加轻松。在这个过程中,用户体验问题也成为了最具讨论价值的话题之一。对于企业而言,即便你拥有再厉害的产品,也需要有非凡的用户体验,才能长久的留住用户。

哪怕是业界唯我独大的12306网站,也需要与时俱进,不断优化用户体验,才能保住自己的江湖地位。而在后移动互联网时代,软件工程师需要和硬件工程师共同配合,才能保证服务的稳定性和可靠性。基于此,今天,我们就和大家一起探讨一下,能为企业节省巨额成本的软件稳定性的相关内容。

1、为什么要维护产品的稳定性?

如果说良好用户体验是软件用户增长的基础,那么稳定的使用体验和流畅的操作性就是用户体验的基础。只有维护好产品的稳定性和流畅性,才是留住用户的王道,也是为企业节流的潜在做法。

然而,随着我们服务的用户量日增,服务复杂程度提升,我们的系统为了实现可维护,也会在业务架构和系统架构上进行调整。这也是为什么微服务架构会盛行的原因。使用微服务架构时,的确会帮我们提升系统的可维护性,当然,也会有弊端,那就是企业维护成本骤增。

另外,不少产品运行要求:集群化部署、分散服务、稳定性运行。

事实上,无论是硬件故障、网络异常、资源异常、其他依赖异常、配置异常等,任何一种情况出现,都会打破原有的平衡导致稳定性问题的出现。这也是为什么软件稳定性被破坏的场景非常多的原因。加之,复杂的稳定性演进过程中,又有很多场景出现,这样交织的变化对分布式系统测试,也给软件测试工程师在测试软件稳定性方面,带来了巨大的挑战。

2、那么,什么是系统稳定性?

顾名思义,它是指系统要素在外界影响下表现出的某种稳定状态。

那么如何衡量系统稳定性的高低呢?通常情况下,一个常用的指标就是服务可用时长占比,占比越高,说明系统稳定性也越高。

举个栗子:如果我们拿一整年的数据来看,常见的4个9(99.99%)意味着,我们系统提供的服务,全年的不可用时长只有52分钟!

它其实是一个综合指标,为什么这么说?因为我们在服务可用的定义上会有一些差别,常见的服务可用包括:服务能正常触发、服务响应时间低、服务有效(逻辑正确)、服务无异常,等。

3、如何维护产品稳定性?

1)找出故障来源

日常情况下,系统出现故障的原因主要包括两类。一类是人为因素,另一类是自然因素。那么,人为因素可能有哪些呢?大家可以看看下面这张图片。

人为因素一般是可控的,但需要事先避免。在工作中,很多软件不稳定性都会出在认为因素这一块,因此,软件测试人员需要在测试前,对整件事情抽丝剥茧,剥离掉这些影响因素。

下面说说自然因素。

自然原因导致的故障可大可小,虽然无法避免,但由于没有第一责任人,避免了人性拷问,测试工程师可以和运维部、安全部的同学协作起来处理故障。

2)稳定性的处理逻辑

基于笔者的工作经验有限,下面给大家提供一些思考的方向和思路,大家可以结合自己工作的场景,去尝试。

● 失败后是否重试,重试了几次;

● 通过定时检测发送告警,运维介入修复,查看是否存在消息堆积、资源不足等问题;

● 定时巡检,拉起或修复;

● 结合业务量冗余情况,通过某些方式限制访问量;

● 非关键配置不强制检验,使用默认值或忽略输出错误信息;

● 异常数据容错,使用默认值;

● 预取、缓存一些内容,提升业务响应速度;

● 异常或并发、批量操作合理性;

● 资源不足可以通过比较动态方式交互提醒、做预判断;

此外,对于日志、备份数据和其他数据,测试人员要考虑到回滚,设置清理机制等,避免数据堆积和漏测。有的还需要考虑到数据持久化(重启不丢失)问题。

3)测试软件稳定性的工具

下面给大家介绍一些可以测试软件稳定性的工具。由于笔者涉猎的比较少,欢迎大家随时补充内容。

● 网络质量设置工具:iptable

● cpu跑高工具:stress、sysbench

● io跑高设置工具:fio

● 内存:memtester

● openstack环境使用的网络性能测试工具:shsker

写在最后

不知道大家在日常工作中,是否遇到过因为产品稳定性不足,导致产品在使用过程中出现崩溃的事故呢?

相关文章
weinxin
我的微信
微信扫一扫
744700076@qq.com
  • 本文由 发表于 2022年10月1日 02:30:30
  • 转载请务必保留本文链接:http://seo3g.com/seojc/seossm/789.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: