专栏首页图形化开放式生信分析系统开发图形化开放式生信分析系统开发 - 8 软件稳定性测试
原创

图形化开放式生信分析系统开发 - 8 软件稳定性测试

前面文章讲述了更多的来自用户的需求分析,如何用技术方案解决用户需求、以及最终实现的效果,解决的是软件功能与特性的问题。

软件开发接近完成的时候,包括作者在内,都会有一个疑问:软件的稳定性如何?能否经受住高负载的考验?我的业务跑在上面,出问题怎么办?本文将使用稳定性测试的方法,解决以上疑问。

如何测试软件的稳定性?

简单的说,就是用测试软件录制人的操作行为得到录制的脚本,然后长时间用大量线程模拟人的操作。监控软件运行状态,并得到统计结果。

为什么这里跳过了单元测试、功能测试?

虽然开发过程中必然经过了单元测试、功能测试,但对于生信从业人员、企业用户来讲,这些概念过于专业,这里就不做过多描述了。

测试方案如下

测试环境:

服务器端(软件部署端)

CPU:I7 6700K 4 Core 8 Threads,4.8GHz

内存:64G 3200Mhz

硬盘:Intel 760P 512G

客户端(模拟访问端)

CPU: I7 8550U

内存:16G

硬盘:三星EVO 960 250G × 2

客户端运行:测试软件 Apache JMeter 5.1.1 JConsole,连接java虚拟机,查看测试时候java虚拟机运行情况

网络环境:服务器端和客户端通过千兆有线网络连接

测试过程:

Web软件开发领域常用的压力测试工具有:Load Runner和Apache Meter,这里使用的是Apache JMeter。

  1. 配置好Apache JMeter Recorder入下图:

点击Start,运行Recorder服务,这里运行起来一个代理服务器,在客户端(模拟访问端)浏览器中代理服务器设置好JMeter的代理服务器地址。这样,客户端所有的文档行为,就会被JMeter录制下来,所得到的各种URL地址添加到线程组里。

  1. 在客户端(模拟访问端)使用配置好的代理服务器,访问软件,登录系统,把所有功能依次使用一遍。得到了一组录制好的脚本,如下图:
  1. 下一步就是模拟运行了,在Process里设置Number of Threads (users) : 10 相当于模拟10个并发用户,理论上几百个用户都没有问题,这里设置为10(多次测试后:10个并发用户是因为受测试条件限制,启动测试后客户端测试机CPU满载,千兆网络满载;服务端负载CPU 20%左右,还有很大的余量,见后图)。而且本软件性质不属于高并发类型的系统,日常使用和可以预见的场景不会有太多的并发用户,追求的反而是长时间的稳定性。

​ 点击工具栏上面绿色箭头启动测试,就会看到客户端发送大量的请求,测试就开始了。这时候打开服务端的任务管理器,就能够看到,CPU负载,网络流量升高。

  1. 经过很多次测试,最长的一次持续一天时间。可以JConsole中看到,系统平稳运行。并在压力/稳定性测试结束后,系统仍在平稳运行。
  1. 稳定性测试的结果:

可以简单的描述,用户录制的脚本平均执行了237678次(换算成日常操作次数,可能相当于几年的访问量),平均响应时间最长118ms(毫秒),异常0%。

经过这么严苛条件的稳定性测试之后,虽然也可能有个别测试盲区,但是这些数据从整体上已经足够判断一个软件的稳定性了。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 图形化开放式生信分析系统开发 - 2 样本信息处理

    一个样本信息就有二十几个个字段。如果一个一个录入,可能不是很好的体验。可以从以下几点缓解这个问题:

    SliverWorkspace
  • 图形化开放式生信分析系统开发 - 5 生信分析流程服务器端运行

    在上文图形化开放式生信分析系统开发 - 4 生信分析流程的图形化设计 讨论了生信分析pipeline的图形化,如何用图形的方式显示生信pipeline,但是pi...

    SliverWorkspace
  • 图形化开放式生信分析系统开发 - 4 生信分析流程图形化

    在上文图形化开放式生信分析系统开发 - 3 生信分析流程的进化 讨论了生信分析pipeline的进化,从手动到自动,但仍然停留在终端命令行阶段,为了让更多非生信...

    SliverWorkspace
  • YIYA语义测试方面总结探讨

    1 产品介绍 YIYA是一个语音助手,根据用户输入语音内容,进行对应的操作或返回对应的结果,比如询问天气,返回所在地的天气结果。目前使用在微桌面及TOS手表中。...

    腾讯移动品质中心TMQ
  • 移动测试避坑指南(第一篇):从流程到技术的知识概要

    京东技术
  • 测试框架原理,构建成功的基石

    使用良好的测试框架,可以提升测试的效率,使得测试覆盖率得到进一步的提升,但我们清晰的知道,开始是一个痛苦的过程,通过本文你可以得到测试框架的基本...

    苦叶子
  • 用例设计方法及其覆盖率

      在表象中添加了不正确的信息,是过失故障。未输入正确信息,是遗漏故障。遗漏故障更难发现。

    小老鼠
  • Free Java Development IDE in 2020

    Java is the best programming language in the world. Java made this position by i...

    用户4822892
  • CMS监控基础设施和应用程序

    中文摘要:欧洲核子研究中心大型强子对撞机(LHC)的紧凑μ介子螺线管(CMS)实验产生的数PB数据集所需的全球分布式计算基础设施包括几个子系统,如工作负荷管理、...

    用户7454122
  • 聚焦测试,驱动卓越 | 洞见

    在经历了“七年之痒”后,蓝鲸项目进入第八个年头,项目的一切趋于稳定。团队倡导持续改进,这时大家的感觉是已经尽力做到最好,似乎没有什么可以改进的了。为了突破这个局...

    ThoughtWorks

扫码关注云+社区

领取腾讯云代金券