美文网首页测试技术专题
测试那些事儿(四)- 并发

测试那些事儿(四)- 并发

作者: 唐T唐X | 来源:发表于2020-02-08 18:41 被阅读0次
什么是并发?

并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机运行,但任一个时刻点上只有一个程序在处理机上运行。

嗯,不是很明白。。。抛去晦涩的定义,换种方式,我们先看看什么是并发用户数量。

并发用户数量:在同一时刻与服务器进行了交互的在线用户数量。

这个定义就非常好理解了,同一时刻与服务器进行了交互的在线用户数量只要大于1,其实就构成了并发行为。而本次要讨论的内容其实还可以再加一个定义,就是同一时刻与服务器进行了交互的、且对资源产生了影响的在线用户数量

并发是开发测试过程中很容易忽视的点,不处理它而产生的问题有的时候是致命的,比如在做跟钱相关的业务时。

举个栗子:

假设我们有个数据是代表金库总额的,现在它的数值现在为0元。如果要想完成存钱的操作,系统需要先取金库总额的值到内存,对这个值进行+1,最后再回存到金库总额中。如果这时A和B两个人同时往里面存钱,每个人存1元钱,有可能出现什么问题呢?假设就是这么巧,A和B在同一时间拿到了金库总额数据,都是0,然后各自进行了+1操作,再回存。。。是不是最终的结果不对了?预期是2,实际是1。

对于并发工作,你需要某种方式来防止两个任务在同一时刻访问相同的资源(其实就是共享资源竞争)。 防止这种冲突的方法就是当资源被一个任务使用时,在其上加锁。第一个访问某项资源的任务必须锁定这项资源,使其他任务在其被解锁之前,就无法访问它了,而在其被解锁之时,另一个任务就可以锁定并使用它了。具体关于锁的内容可以参考我之前的分享:java中的实例锁(Synchronized)和类锁(Static Synchronized)

其实,锁的实现方式有很多的,大家感兴趣都可以去了解。比如乐观锁、悲观锁、分布式锁等等等等,各自有各自的特点,也有各自的特点(性能、准确性等),根据大家不同的业务去进行选择就好。

我们能够发现并发问题的方式有以下这些:

  1. 代码走查:通过分析业务,我们可以发现有哪些资源是有可能存在并发问题的,也就是同时会进行多次操作的,比如交易系统中的余额。所以,在进行代码走查的时候,就要重点看下这块数据的处理逻辑,有没有加锁的功能。
  2. 并发测试:通过设置并发用户数,编写接口测试用例,实现并发测试(比如Jmeter),来发现最终的实际数值是否和预期数值相同。这种测试可以多做几次,逐步提高并发用户数,就可以发现问题。在提高并发用户数的情况下,还可以对服务的性能达到检验的目的,得到在合理的超时时间的设定下我们可以承受住多大的并发量。
测试人需关注

对于测试来说,资源在并发条件下产生变更是不是准确的、性能是不是符合要求的,都是我们需要关注的,通过并发测试和合理的超时时间设定,能够帮助我们发现并发问题,保证系统稳定且准确。

相关文章

  • 测试那些事儿(四)- 并发

    什么是并发? 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一...

  • 聊聊并发那些事儿

    并发程序幕后的故事 这些年,我们的CPU、内存、I/O设备都在不断迭代,不断朝着更快的方向努力。但是,在这个快速发...

  • Java并发那些事儿-CAS

    CAS(Compare And Swap)比较与交换:一种无锁算法。在不使用锁(没有线程被阻塞)的情况下实现多线程...

  • Java并发那些事儿序言

    JVM执行的Java代码是被转换成由字节码组成的class文件。那么JVM是如何在字节码层面上执行线程同步的? 回...

  • Java并发那些事儿-锁

    公平锁和非公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁,线程直接进入队列中排队,队列中的第一个线程才能获得锁...

  • Java并发那些事儿-Moniter

    在多线程访问共享资源的时候,经常会带来可见性和原子性的安全问题。为了解决这类线程安全的问题,Java提供了同步机制...

  • Java并发那些事儿-Synchronized

    作为一个Java开发,在有多线程竞争同一个资源的时候,为了达到原子性。首先想到的解决方案就是使用synchroni...

  • Python Web服务器并发性能测试

    Python Web服务器并发性能测试 测试条件 测试机器:四核,4GB内存 系统环境:Ubuntu 14.04 ...

  • 测试那些事儿(十一)- 接口测试(中)

    为什么要拓展接口测试能力 上一篇文章 测试那些事儿(十)- 接口测试(上)[https://www.jianshu...

  • 测试那些事儿(九)- 列表测试

    先说说列表 在如今的大数据浪潮下,列表作为一个方便用户进行数据查阅及快速筛选的功能,几乎每个产品都会有。如下图所示...

网友评论

    本文标题:测试那些事儿(四)- 并发

    本文链接:https://www.haomeiwen.com/subject/lsjpxhtx.html