性能测试知多少---并发用户

虫师 大人不华,君子务实。 独立博客:http://www.testpub.cn

性能测试知多少---并发用户

2012-06-25 23:49 by 虫师, 24863 阅读, 10 评论, 收藏, 编辑

  在做性能测试的时候,我们常常听到并发用户、响应时间、吞吐量专业术语,也许大家都理解,这里有一个理解的层次与深度概 念。最近有看断念《软件性能详解与案例分析》一书,看了他的讲解,原来我对这些术语的理解还是比较肤浅,其实,这里也主要受制于自己的知识面。所以,再拿 出来与大家重温一下。

ps:按照惯例先上个图,因为看纯文字的文章比较累!^_^

并发用户数

  大家都知道我们的性能测试就通过工具模拟多用户对系统进行操作,对系统造成压力,来验证系统的性能(不太标准的解释)。 好多人也简单的把性能测试当成并发测试。那么这个“多用户”和“同时”两个因素缺一不可。只多用户不同时,很难对系统构成压力;没有多个用户,同时的概念 也就自然不存在了

并发的两种情况

  一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这种操作一般指做同一类型的业务。比如,所有用户同一时刻做并发登陆,同一时刻做表单提交。

  另外一种并发是广义范围的并发,这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也可以是不同的。比如,在同一时刻有用户在登录,有用户在提交表单。

从服务器的角度来看并发

  前面的两种解释都是从用户业务的角度来解释并发的,因为我们平时所做的性能测试也是从用户端对业务层的操作来进行并发测试的。

  如果考虑整个系统运行过程中服务器所承受的压力是这样的:在该系统的运行过程中,把整个运行过程划分为离散的时间点,在每个点上,都有一个“同时向服务端发送请求的客户数”,这个就是所谓的服务器所承受的最大并发访问数。

真正意义上的并发不存在

  上面试谈了这么多并发,现在又说真正意义上的并发不存在。何解?学操作系统原理的同学都知道,CPU在一个时间点上只能干一件事儿。为什么我们可以边看电影,边打字,边语音。因为CPU很快很快,他可以处理一下电影,再处理一下打字,再处理一下语音。因为它很快,所以,它可以在多个程序之间快速瞬间的切换,给你造成的假象就是它在同时做这些事情。(现在的双核、四核的CPU另说)

  那么我们的系统在接到用户的请求后也要调用CPU来 完成某些处理,然后返回给用户。那么我们对系统有做并发测试是测什么呢?举个简单的例子。假如有一位神医,他的看病速度非常快,假设他的看病速度是不变 的;然后有一群接待人员来接待看病的客人,有成千上万的病人来看病,接待人员要想各种办法来做好接待工作,使病人更快的看到病。比如,可以事先咨询病人得 的什么病,然后将病人进行分类,比如可以扩大接待室,让更多的病人可以进到医院来看病等。

  神医就是我们的CPU, 接待人员就是我们的系统,病人就用户,我们做性能测试的目的就是了解接待人员哪个地方给医院看病造成了瓶颈。只来一个病人,医院的看病速度与服务很好。一 下子来十万个病人各种问题就出来了。接待人员的服务态度下降,多余的人员跟本进不到医院去,医院的洗手间不够用,造成病人无法上则所而离开,这些都属于系 统问题。所以,我们一般测试的目的是看医院的接待能力。

系统用户数与同时在线人数

  在实际的性能测试中,经常接触到与并发用户相关的概念还有“系统用户数”与“同时在线人数”下面通过一个实例来描述他们之间的差别。

  假设有一个网站,注册用户才能登录使用各种功能,如上传头像,阅读专家文章等。该系统有20万注册用户,这就是说有20万用户可以使用这个网站的所有功能,20万就是这个网站的“系统用户数”,网站有一个在线统计功能,从统计数据中可以看到,同时登录网站的人数的最高记录是2万,就是有2万人同时用浏览器打开着这个网站。2万就是“同时在线人数”

  那么系统的并发用户数是多少呢?2万么?NO!这2万只表示在系统最高峰时有这么多用户登录了网站,并不表示实际服务器的承受压力。因为服务器承受压力还与具体的用户访问模式相关,在这2万用户中考察某一个时间点对用户发出请求数,可以会大大缩水。那么,该系统的服务端承受的最大并发访问数是多少呢?这个取决于业务并发用户数和业务场景,一般可以通过服务器日志的分析得到。

求并发用户数公式

在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务的角度关注应该设置多少个并发数比较合理。

下面找一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每个员上登录签到系统的时长为5分钟。可以用下面的方法计算。

    C=1000/30*5=166.7

C表示平均并发用户数,那么对这个签到系统每分钟的平均在线用户数为166

当然,在性能测试上,任何公式都不是严谨的,最重要的是对系统做出有效正确的分析。

--------------------------

根据 Teaey 的提醒已经做了改正,计算结果是每分钟,而且是在线用户数,而非并发用户数。

时间: 2024-08-06 11:55:48

性能测试知多少---并发用户的相关文章

(转)性能测试---并发用户理解

性能测试---并发用户 并发用户数 大家都知道我们的性能测试就通过工具模拟多用户对系统进行操作,对系统造成压力,来验证系统的性能(不太标准的解释).好多人也简单的把性能测试当成并 发测试.那么这个“多用户”和“同时”两个因素缺一不可.只多用户不同时,很难对系统构成压力:没有多个用户,同时的概念也就自然不存在了 并发的两种情况 一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这种操作一般指做同一类型的业务.比如,所有用户同一时刻做并发登陆,同一时刻做表单提交. 另外一种并发是广义范

性能测试---并发用户计算

性能测试---并发用户 并发用户数 大家都知道我们的性能测试就通过工具模拟多用户对系统进行操作,对系统造成压力,来验证系统的性能(不太标准的解释).好多人也简单的把性能测试当成并发测试.那么这个"多用户"和"同时"两个因素缺一不可.只多用户不同时,很难对系统构成压力:没有多个用户,同时的概念也就自然不存在了 并发的两种情况 一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这种操作一般指做同一类型的业务.比如,所有用户同一时刻做并发登陆,同一时刻做表单

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是"知道"或"会使用"这么

转载:性能测试解惑之并发压力

声明:非原创文章,原创链接为http://www.cnblogs.com/pohome/articles/2073283.html. l 如何考察性能 这个问题相信很多同事都了然于心了,基本都有自己的理解,我们也很少接到不懂性能的反馈,但很多人甚至包括客户,都把响应时间或者并发用户作为衡量性能的惟一依据,支持10000并发?性能好!响应时间1秒?性能好!有些时候我们也会接到客户一些要求,让我们哭笑不得,某次一客户就要求我们的产品支持10000并发,有点汗,哈哈. 实际上性能是一项工程,严格地说,

性能测试解惑之并发压力

前言:之前一直做的软件质量工作,有过一些经验和一些不太成熟的思路,尽管与现在从事产品运营不同,但无论是内涵还是联系,都是非常紧密的,无论如何,我都会继续关注产品的质量问题. 上周跟一朋友阐述性能中并发的概念,叽里咕噜一大通,完了兴致勃勃地让她总结一下,她说了一句:感觉你研究的东西太初级,并发这种概念,太简单,没什么好说的.我听了差点没晕倒,估计她也晕了,真是失败. 并发真的这么简单?性能真的如我们所理解的那样? 也许并不像我们想象的那么简单,之所以我们去探究这些基本的概念,是因为在实际的工作中,

性能测试知多少---性能测试工具原理与架构

在性能测试的学习过程中,坚持思想与工具(分开)并行,当前面世面上的性能测试书籍大多把理论与loadrunner融为一体讲解,这样做是正确的,因为有一些性能名词概念也源于工具.但是,性能测试不是loadrunner,所有的作者也是这么认为的.但他们在讲性能测试的时候讲的就是loadrunner有,只是讲的多少不同罢啦. 你是否觉得我对loadrunner有仇?我之所以将其分开来学,只是希望自己在学习性能测试的时候不要被loadrunner局限了而已.只是觉得在做性能测试时不要带loadrunner

探知 浏览器并发请求个数

起因:在工作中经常会发现浏览器请求过多,会很慢很卡,但我并不知道并发请求个数, 于是就写个例子,探知浏览器并发请求的个数. 思路:1.新建网站. 2.添加两个按钮,分别添加点击事件,请求不同接口. 3.服务端添加内容,打印当前时间的日志,并使进程sleep 10秒. 4.分别点击按钮,查看日志时间连续记录有几条,即为并发请求个数,间隔时间长的打印,即为下次排队执行的请求. html部分: 添加两个 <body> <input id="Button1" type=&qu

阿里云 -- 2万并发用户方案

要顶住2万并发用户 要购买多少台SLB,多少台ESC,多少台DRDS,多少台Redis,多少台OSS,多少个CDN包? 另外软件架构要用什么架构才能合理.充分利用上硬件资源,并且后期能够方便的. 通过拓展硬件资源. 支持更大的并发量? 说实话,我也不知道.只能大概估算一下. 假设购买下面的硬件资源: 负载均衡SLB: 用下面的ESC  配置 下面的DRDS: 下面的Redis: 静态存储OSS: CDN: 2万并发,假设每个网页大小为1M大小. 那么2万的数据量为20000*1M=20G 的流量

如何利用JMeter模拟超过 5 万的并发用户

本文将从负载测试的角度,描述了做一次流畅的5万用户并发测试需要做的事情. 你可以在本文的结尾部分看到讨论的记录. 快速的步骤概要 编写你的脚本 使用JMeter进行本地测试 BlazeMeter沙箱测试 使用一个控制台和一个引擎设置Users-per-Engine的数量 设置并测试你的集合 (1个控制台和10-14 引擎) 使用 Master / Slave 特性来达成你的最大CC目标 步骤一1 : 编写你的脚本 开始之前,请确定从JMeter的Apache社区jmeter.apache.org