随笔分类 -  性能测试

摘要:Real-time web features require a long-lived mostly-idle connection per user. In a traditional synchronous web server, this implies devoting one thread 阅读全文
posted @ 2016-08-24 15:31 CaliforniaDream 阅读(1934) 评论(3) 推荐(1) 编辑
摘要:之前写过一篇性能测试新手误区(五):这是性能问题么,主要讲一个有效的性能问题应该是什么样的,其中提到了定位的问题。但是那篇文章只说了WHAT,并没有说HOW,只说tester要有明确的定位,却没提如何才能定位。用流行的话说就是不接地气,有点水:)实际工作中,我也总是接到这种问题,所以还是要写一篇关于方法的文章,来说说HOW TO DO。以一个典型的WEB系统来举例,性能问题一般体现在客户端请求后的响应时间上。在性能测试过程中,即压力增大到某个程度后,响应时间指标迅速增长。但如那篇文章所说,这只能叫做一个现象,测试人员需要找到问题所在,HOW TO DO?首先要搞清楚,客户端从发出请求直到看到最 阅读全文
posted @ 2013-06-03 11:20 CaliforniaDream 阅读(4455) 评论(2) 推荐(2) 编辑
摘要:起因现状测试经理不知道性能测试人员在做什么不知道性能测试进展如何不知道性能测试是否有效不知道如何协助性能测试人员本文目的了解性能测试的进展,更好的控制整个测试流程了解性能测试的质量十问性能测试何时介入性能测试的过程是怎样的是否有必要提起性能测试性能测试有哪些类型如何分析性能需求如何衡量性能性能测试(不)能做什么如何检验性能测试的质量…Q1.性能测试何时介入开发生命周期中的性能测试单元测试代码层面的测试。写完一块代码,对代码的执行效率、内存使用、资源占用等情况进行测试,由开发人员完成。组件/服务/接口测试此层面的测试,通常是针对一个已完成的公用功能,此功能向外提供服务或者接口。既可以是代码级别的 阅读全文
posted @ 2013-04-02 08:56 CaliforniaDream 阅读(2859) 评论(1) 推荐(6) 编辑
摘要:索引帖:性能测试用户模型分析方法基础数据分析 以下图表均取自互联网,本文是在“已经获取所需数据”的前提下,讲解性能测试的一些设计思路。至于如何才能取得这些数据,将在后续的文章中说明。系统访问量分布 由系统的日访问量分布图,可知系统的访问压力集中在哪个时间段内。系统的压力是在一天中平均分布的,还是集中在某几个更小的时间段内。根据此信息,我们对测试场景的时间进行设计,如从分布图中明显看出每天的大部分访问量集中在9:00~11:00和14:00~16:00两个时段,那么就可以设计2小时内完成一半访问量的测试场景。用户的平均活跃时间 用户活跃时间,是指用户一次使用系统的时长,可用来指导测试脚... 阅读全文
posted @ 2013-02-19 16:40 CaliforniaDream 阅读(3629) 评论(4) 推荐(6) 编辑
摘要:性能测试用户模型(一):概述、术语定义、基础数据、压力度量性能测试用户模型(二):用户模型图性能测试用户模型(三):基础数据分析、场景数据性能数据采集分析系统注:用户模型图部分主要参考了Scott Barber大师的UMCL,根据自己的实际工作做了些改变。 阅读全文
posted @ 2013-02-19 01:09 CaliforniaDream 阅读(1298) 评论(0) 推荐(0) 编辑
摘要:索引帖:性能测试用户模型分析方法用户模型 用户的行为主要分为两部分来考虑,一是针对一类特定角色的用户,二是针对整个用户群体。通过一组图形来描述用户的行为、操作路径以及系统各部分的使用率,此种方法称之为用户模型(或者系统使用模型)。 用户模型表示的是系统的使用场景,更准确的说是一个特定时间段的系统使用情况。操作路径是用户模型的核心,通过用户模型,每个人都可以轻易的理解系统是如何被使用的。基本图形:数量或百分比用户类型动作类型同步点(集合点)选择或数据条件循环退出分支合并扩展图形随机顺序访问应用示例 下面以一个在线书店为例,假设我们已经得知以下信息:有4种类型的用户:新用户、已注册用户、... 阅读全文
posted @ 2013-02-18 22:11 CaliforniaDream 阅读(4297) 评论(4) 推荐(3) 编辑
摘要:索引帖:性能测试用户模型分析方法概述 在性能测试过程中,很重要的一个部分就是评估待测系统在一定压力下的性能表现。比如系统上线后,真实的性能到底如何?两年后系统的使用用户增加后,性能又如何?这些都是性能测试中,项目相关人最关心的问题。 所谓的性能表现,说的更直观一些,其实就是用户体验。用户不会在乎系统的处理能力是多少、吞吐量是多少,他们能够感受到的只是系统能否处理他们的请求、处理的速度有多快。 这里提到的一个关键词是“一定压力”,这个压力指的是系统在预期的线上场景中所承受的压力。只有准确的定义和模拟预期的压力,才有可能获取到实际场景中真实有价值的用户感受,而不是那些只存在理论意义的数据... 阅读全文
posted @ 2013-02-18 17:23 CaliforniaDream 阅读(3052) 评论(0) 推荐(2) 编辑
摘要:系列原创:性能测试新手误区测试人员喜欢在得到某个达不到预期的性能结果后,进行一下“调优”。PM有时也会布置任务,测试完成后“调一个优”。一些人貌似有了这种观念:调优才使性能测试有意义、性能测试的目的就是调优、做调优才能显出测试人员的水平……随着经验的增长和对性能更深入的认识,我越来越体会到调优是一个复杂的过程,不是动动嘴、改俩个参数这么简单,只有通过科学的方法和扎实的技能才能做好,以至于我使用这个词的频率越来越低,因为不敢轻易说出口……在你再一次调优之前,先考虑以下几个问题:为什么需要调优如果问起这个问题,得到的回答通常是“因为性能不够好”,那么接下来我会问性能不好体现在哪里?你要调什么?.. 阅读全文
posted @ 2013-02-18 10:11 CaliforniaDream 阅读(2209) 评论(3) 推荐(4) 编辑
摘要:系列原创:性能测试新手误区“数据库(或中间件)非常慢了,如何监控它的性能”“你想得到什么性能指标?”“就是……内部的性能指标”收到性能测试人员这样的问题后,通常会发生上面的对话。我的观点是,准确的说出你想要做什么,比你会不会做更重要。那么对于性能测试人员来说,”性能监控“这门必修课,该从何下手呢?监控什么如果我给你一个黑盒子,告诉你里面是一部机器,要监控它的性能。你能做到么?当然不能。因为你不知道这部机器如何运行,你不知道对它而言性能是什么。性能测试也一样,说到操作系统,大家都知道性能指标要看CPU、MEMORY、DISK IO以及NETWORK等等。但是到了数据库和中间件,如果测试人员说.. 阅读全文
posted @ 2013-01-26 22:18 CaliforniaDream 阅读(3270) 评论(5) 推荐(2) 编辑
摘要:性能测试新手误区(一):找不到测试点,不知为何而测性能测试新手误区(二):为什么我模拟的百万测试数据是无效的性能测试新手误区(三):用户数与压力性能测试新手误区(四):一切来自录制性能测试新手误区(五):这是性能问题么性能测试新手误区(六):性能监控性能测试新手误区(七):你需要调优么 阅读全文
posted @ 2013-01-26 18:05 CaliforniaDream 阅读(1653) 评论(0) 推荐(1) 编辑
摘要:之前的文章中曾出现过“并发度”这个概念,这个词不知道是不是我原创,它意在表达“并发”的可能性,是压力的一种度量。一些同学可能还没有理解这个概念的意义,下面我们看看它是怎么来…… 看过之前文章的同学应该知道,我将“并发”这个容易产生误解的词拆分成了“相对并发”和“绝对并发”。为什么这么做呢?那是因为“绝对并发”说的是同一时刻发生的事情,这通常是我们无法观测和衡量的。而“相对并发”说的是一个时间段内发生的事情,这是很容易观测到的。从某种程度上,也可以说“相对并发”是为了弥补我们无法有效评估“绝对并发”的压力而出现的。 但是有时候,性能测试工程师仍然需要回答“系统可以处理多少个并发请求”这类... 阅读全文
posted @ 2013-01-04 11:24 CaliforniaDream 阅读(8122) 评论(1) 推荐(3) 编辑
摘要:上一篇中已经实现了JAVA的下载视频代码,但仍然是单线程的,还无法进行性能测试。本篇就来通过LoadRunner来实现多线程的模拟和控制。 新建LR的JAVA Vuser脚本,这里可以直接进行JAVA编码,又可以调用LR的内部方法,如事务、思考时间、集合点等等。到了这步已经没有任何难点了,开发人员只要花1个小时了解下LR的基本使用和常用方法即可,测试人员如果不会JAVA……那还是算了吧。 Action.java内容如下: 1 import lrapi.lr; 2 import com.test.*; 3 import java.util.*; 4 import java.io.*; 5... 阅读全文
posted @ 2012-11-06 20:31 CaliforniaDream 阅读(4105) 评论(1) 推荐(3) 编辑
摘要:最近的一个项目,视频点播系统,使用apache实现的流媒体服务器。其实准确的说叫做伪流(HTTP Pseudo-Streaming),基本原理和概念自行了解吧。让我简单的描述就是仍然是HTTP下载,播放器播放本地缓存。只不过它也实现了一些和正规流媒体服务类似的功能。视频点播类系统的性能测试,说简单了主要就是模拟大量用户去看视频。服务端监控整体性能,客户端关注各自表现。这里难点主要在于如何模拟大量用户观看视频?如何判断各客户端展现?多客户端的模拟无外乎3种方法:1.全公司总动员,一起看。2.一台机器开多个播放页面(或者是一个页面上嵌入多个播放器),调用多台机器。3.抛弃客户端的解码播放过程,直接 阅读全文
posted @ 2012-10-26 03:41 CaliforniaDream 阅读(7324) 评论(3) 推荐(3) 编辑
摘要:系列原创:性能测试新手误区经常会见到新人提出这样的性能问题:“100用户时,A操作响应时间达到了XX秒,请修改”“场景运行2个小时后,系统没有响应了”面对这样的问题,开发人员一定会觉得很无助,他们甚至不知道问题是什么。即使从测试人员的角度来看,这也算不上是一个合格的问题。甚至是不是真正的问题,都要暂时打上问号。那么一个合格的性能问题应该是什么样呢?首先要证明这是一个问题开发人员面对测试提出的问题时,第一反应很容易是“我的程序没有问题,是你的使用不正确”,想必大多数测试人员都有过这种感受吧。手工功能测试尚是如此,更不用说性能测试了,因为性能测试的核心在于“模拟”二字,模拟大量用户、模拟大数据.. 阅读全文
posted @ 2012-09-28 17:16 CaliforniaDream 阅读(2862) 评论(3) 推荐(2) 编辑
摘要:系列原创:性能测试新手误区 经常会有性能测试新手问这样的问题: C/S的系统如何录制,应该选择什么协议呢? 待测系统A的一个功能,是由B系统调用的,也需要搭建B系统的测试环境并对其录制么? 我的回答是,先弄清楚你想测的是什么?对它而言,压力又是什么? 新手总是想着如何录制客户端的操作,如何模拟客户端的点击。这种想法应该是受到了主流测试工具影响,性能测试的入门基本都是从工具开始,比如使用最广的LR,其最方便好用的功能应该就是录制了。但是需要清楚的是,录制只是为性能测试提供便利的一个功能(可以傻瓜式的产生向服务器施加压力的脚本),录制本身并不是性能测试的根本或者所必需,能够产生压力的... 阅读全文
posted @ 2012-09-03 13:11 CaliforniaDream 阅读(2251) 评论(0) 推荐(1) 编辑
摘要:系列原创:性能测试新手误区同样的项目、同样的性能需求,让不同的测试人员来测,会是相同的结果么? 假设有这样一个小论坛,性能测试人员得到的需求是“支持并发50人,响应时间要在3秒以内”,性能测试人员A和B同时开始进行性能测试(各做各的)。 只考虑发帖这个操作,A设计的测试场景是50人并发发帖,得到的测试结果是平均完成时间是5秒。于是他提出了这个问题,认为系统没有达到性能期望,需要开发人员进行优化。 B设计的测试场景是,50个人在线,并且在5分钟内每人发一个帖子,也就是1分钟内有10个人发帖子,最后得到的测试结果是平均完成时间2秒。于是他的结论是系统通过性能测试,可以满足上线的压力。 ... 阅读全文
posted @ 2012-04-27 19:07 CaliforniaDream 阅读(5812) 评论(3) 推荐(7) 编辑
摘要:我也模拟了预期中的数据量,为什么说我的测试结果是无效的。性能问题定位到数据库端时,首先要确认数据是否有效。 阅读全文
posted @ 2012-03-14 13:35 CaliforniaDream 阅读(3432) 评论(0) 推荐(4) 编辑
摘要:前端性能测试技巧,HTTP请求数、请求顺序、响应头 阅读全文
posted @ 2012-02-29 10:00 CaliforniaDream 阅读(3222) 评论(4) 推荐(9) 编辑
摘要:你为何而测?思想才是根本,LR不等于性能测试。 阅读全文
posted @ 2012-02-27 14:10 CaliforniaDream 阅读(5156) 评论(7) 推荐(9) 编辑
摘要:web_url的MODE属性设置,及资源文件的请求方式 阅读全文
posted @ 2012-02-24 23:07 CaliforniaDream 阅读(3358) 评论(3) 推荐(4) 编辑