感悟生活,感受茶文化

发布新日志

  • 《BBS论坛性能测试方案》示例

    2010-02-22 09:35:05

    一个论坛的性能测试方案,详情见附件
  • LoadRunner自带飞机订票系统订票功能性能测试代码

    2010-02-22 09:26:42

    整理了一下飞机订票系统订票功能的性能测试代码,大家可以看看,详情见附件,欢迎跟帖讨论。

    zip包的方式,可利用work from zip file功能直接打开。

  • 《在线考试系统性能测试示例》(方案、结果报告及源程序)

    2010-02-22 09:22:17

    一个很小的asp程序,做了一个登录功能的测试,详情见附件
  • LoadRunner性能测试基本步骤

    2010-02-22 09:17:23

    以前写的一个loadrunner的使用过程,初学者可以看看。详情见附件

  • 自学LoadRunner,重在测试设计

    2010-02-22 09:11:45

    1、了解测试需求:日均20万首页访问量测试,测试指标响应时间、系统资源使用率
    2、系统的实际功能表现、系统体系结构
    功能:一个jsp页面,包括for循环及一个bmp图片;
    系统体系结构:Tomcat+JDK+JSP,无数据库;
    相关服务器配置:被测服务器硬件配置:内存2G;软件配置:OS WINXPSP3,IE6.0
    Tomcat配置:    <Connector port="8081"               maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" />
    tomcat内存(JVM):初始化内存100,最大可用内存为500,连接所耗内存2k

    为Tomcat分配更多的内存,如果是使用的catalina.sh或Catalina.bat启动的Tomcat,则可在这两个文件中添加“SET CATALINA_OPTS= -Xms300m –Xmx300m”


    将相关信息,如操作系统、软件配置(tomcat、数据库、中间件等等处于系统体系结构中的所有软件)都列举出来,然后进行数据分析,确定是否需要开展性能测试。

    另外可以与客户、工程运维、开发人员进行沟通,获取系统历史性能表现(针对系统已经上线的情况)

    掌握上述问题的详细情况,性能测试人员需要整理信息,并在测试方案中体现。

    1、分析测试需求、确定测试点

    日均20万PV,考虑到访问不是均等的,采用2/8原则(前提是没有任何历史数据提供参考,也无法从其他途径获取详细需求),20万*80%的业务量在24小时*20%的时间内完成=16万访问量需在4.8小时内完成。
    测试对象是系统的首页,所以测试点确定为系统首页,最终的测试需求为:

    在4.8小时内完成16万的首页访问业务。

    2、提取测试指标

    根据初步需求,系统要求获取响应时间与系统资源利用率
    响应时间:由于客户没有明确提出响应时间的参考标准,根据通用的测试经验值(2,5,8,10),我们采用2秒的响应时间,尽量贴切用户体验。所以,响应时间参考值为:2秒

    系统资源利用率:由于没有提出明确指标,故按照常规测试方法,我们监控CPU及内存的使用率表现即可。按照经验值,CPU、内存的利用率不超过70%(windows);


    3、建立业务模型
    a、弄清楚系统体系结构并画出系统组网图、网路拓扑图、业务流程图;
    b、分析清楚系统中的约束条件,一一列出并注上使用什么技术方法来解决
    比如:ip限制(一个ip只能做一次)可采用IP欺骗功能;数据有唯一性要求的(注册的用户名、添加的订单号等等)可使用参数化解决;数据之间是有关联性的(后面的业务操作可能需要前面业务的数据)可使用关联方法解决;想要判断业务逻辑的(判断是否登录成功)可用文本检查点+if语句进行处理;需要实现大并发量的模拟(比如100个绝对并发)使用集合点与think_time配合处理;无法使用action划分的动作(一次请求有多个响应的情况)可使用事务点解决;
    c、根据业务量流程图进行action划分,先划分好再设计脚本
    d、准备好测试数据:详细写出测试数据制造过程。

    尽量考虑全面了,不要有遗漏


    4、设计测试方案、脚本测试用例、场景用例
    a、测试方案,按照模版填写,并将建模阶段所有产出物进行细化确定。
    b、脚本用例设计:模拟用户登录系统,打开首页,待页面展示完毕即可
    约束条件:无
    测试数据:无
    操作步骤:输入url地址:http://localhost:8081/test/test.jsp
    期望结果:被访问页面(首页)在2秒内正常显示完毕,CPU使用率不超过70%,内存使用率不超过70%
    c、场景用例:
    测试目标是:4.8小时完成16万访问量,可以设计两种场景:
    1、场景开始时就加载所有(所有是多少?)并发;(可以考察系统支持绝对并发情况)
    start 所有vuser,选中第一个选项(simultaneously),持续运行阶段(duration)设置“run for 4.8个小时”,stop vuser方式选中第一个(simultaneously)立刻停止所有vuser。

     

    2、采用逐步加压,持续运行,逐步减压的测试策略(相对来说系统有所缓冲,更真实模拟业务情况。)
    可以事先在提取测试指标阶段计算出大概的并发数:
    计算并发数的方法是:
    a、确定业务量:16万(使用2/8原则后的业务量)
    b、确定时间段:4.8小时(使用2/8原则后的时间段)
    c、确定单用户单次执行所消耗的时间:利用loadrunner并设置事务点考察做一次业务所消耗的时间(0.4134秒)
    d、4.8*3600/0.4134=一个用户在4.8小时内可以模拟访问多少次=大约为41800次,现有16万业务共需多少人模拟?16万/41800大约等于4个人,也就是说大概需要4个并发来模拟。

    已经计算出并发数,开始设计第二种场景
    这里策略是:
    每隔10分钟增加1个vuser(strat处设置为每隔10分钟增加一个),当所有vuser都上去后,持续运行4.8小时(duration设置为4小时48分钟),每隔10分钟减少1个vuser(stop处设置为每隔10分钟减少一个)

    场景设计完成后与脚本用例设计思路一起放在测试方案中,提交相关人员评审,没有问题后可待机实施性能测试工作。


    脚本设计与开发

    1、脚本设计(按照脚本测试用例来)
    录制、手动编写,能够录制尽量录制,减少难度
    录制脚本流程:
    a、确定协议;b/s结构常用的协议是web(http/html),c/s结构常用socket协议,如果不知道可以问开发同事,也可以使用抓包工具自行分析,loadrunner在9.5版本后提供了协议探测功能,我们可以自己探测。
    b、确定action;已经在建模过程中确定了。只需要在loadrunner中事先添加好(create action按钮);
    c、确定浏览器、杀毒软件、防火墙的设置;卸载不相干的浏览器插件,将浏览器中的“内容”中的自动完成清除掉,杀毒软件、防火墙最好关闭掉
    d、开启应用程序;启动被测服务,对于j2ee架构的,最好先运行一下,
    e、准备好测试数据;录制脚本过程中所使用的测试数据要事先准备好;
    f、录制脚本:

    1、注释:可以不用
    2、集合点:使用(view_homepage)
    3、事务点:使用,统计打开首页的时间,添加cookie时间放在action中统计,
    4、参数化:不使用,没有需要做参数化的点;
    5、关联:不使用,没有需要使用关联的点;
    6、文本检查点:不使用;
    7、思考时间:不需要,输入url回车后无需思考时间
    8、常用编程方法:不使用,未涉及到

    优化做完后回放调试脚本,没有问题就开始其他的脚本设计,当所有脚本设计完成后,可利用配置管理工具进行脚本管理(比如cvs,vss),

    如果手写代码:需要掌握客户端与服务器端的具体响应方式及内容,然后详细分析,最好由开发人员来处理。涉及到加密的信息传输,可能需要解密的函数。

     

    场景设计与执行

    场景设计分为7个步骤,可将这些步骤列出来,一一处理:
    并发数重新确定
    为什么需要重新确定并发数,在指标提取阶段所估算出来的并发数,反推计算业务时有比较大的误差,原因是小数被进一位了。在实际测试过程中,估算出的并发数所消耗的数据量往往大于预先的估计,所以调整数据量(如果使用unique类型,block设置非常关键,设置不当可能会导致测试运行失败)

    设计场景计划
    按场景计划(场景执行策略针对所有脚本生效,无法单独定制)
    按组计划(针对单个脚本进行场景执行策略的设置)
    初始化设置:第三个选项(在每个vuser运行前初始化他,好处是节省系统资源)

    开始vuser设置(两个选项,当需要场景开始后立刻加载所遇vuser的话,就使用simultaneously,如果使用逐步增加的方式,则使用第二个选项)

    持续运行设置(两个选项,当需要vuser执行完成后就停止的话,选中第一个,如果模拟持续运行的情况,可使用第二个,当设置了持续运行时间后,run time setting的run logic中的迭代次数是不生效的。)


    stop设置
    与start类似,如果希望脚本运行完成后就可以,则选第一个选项,否则选第二个。


    设置运行时设置
    run logic需要注意的是与场景计划中的duration设置关系,如果duration中选的是第一个,那么run logic是生效的,如果是第二个,则不生效
    log设置:场景运行中设置日志启用,但仅在发生错误的时候发生日志,在脚本调试阶段,选择日志启用,一直发生日志,并选择扩展日志与参数替换。
    think time:尽量的模拟真实用户的行为习惯,启用思考时间,方法是as recorded,思考时间的修改可在代码中直接修改,也可以自定义变量去随机修改。rand函数

    miscellaneous:勾中continue on error,当发生错误的时候继续执行,原因是在测试过程中错误可能是服务器无法正确处理引起的。测试是不能立刻停止的。在脚本调试阶段,不勾,发生立刻停止并调试

    其他选项默认不做设置。


    设置集合点
    在脚本中没有设置集合点的话,则在场景中的集合点设置功能按钮是灰色不可用的。
    集合点的策略通常情况下不做改动。


    设置其他的选项(结果目录与负载生成器)
    结果目录存放场景运行结果,在结果分析中有用,可用于结果比较
    负载生成器:当测试机器的系统资源成为瓶颈的话,可以使用该方法将压力分发出去,让代理机模拟压力的产生,而controller负责收集测试数据并做分析。如需使用该功能,则需启动loadrunner agent,

    设置IP欺骗功能
    当系统对ip有限制的话,可使用该功能,通常情况不用,动态分配的ip是不能使用ip欺骗,需将ip设置静态的。

     

    设置数据监控(application manage)

    可以利用loadrunner自带的监控功能,也可以根据实际需要选择恰当的测试监控工具,主要用来相关的系统资源使用情况。

     

     

     

     

     

     

     

     

     

     


     

  • LoadRunner手动关联流程

    2009-08-01 17:22:06

    很多朋友在做手动关联的时候不知道如何下手,这里给出做手动关联的基本流程,希望能给大家一些帮助,另外我做了一个视频,大家可以看看

    http://player.youku.com/player.php/sid/XMTA5NTk5NTY0/v.swf

    1、录制两份相同的脚本


    2、保存:a、保存的路径不要太深;b、名称不能有空格;c、名称不能有中文;d、名称不能太长;


    3、打开tools-compare with scripts,进行脚本比较


    4、选择options-view-show inline differences,将真正不同差异点以红色标注出来


    5、将真正不同点拷贝出来,进行分析确定哪些是可以控制(可用参数化处理的),如果不能控制,可考虑使用关联


    6、在服务器的响应信息中找到需做关联的点,确定其左右边界。在loadrunner的generation log中查找,不能在loadrunner脚本中查找,原因脚本只反映了客户端发送给服务器端的信息,而generation log体现了服务器与客户端交互的完整信息。


    7、在脚本中确定插入关联函数的位置,使用alt+insert快捷键,调出web_reg_save_param函数,输入左右边界即可。


    8、关联完成后,点击编译按钮进行语法检查,然后再运行调试。

  • 性能测试--PV访问量测试

    2008-07-28 10:34:31

      很多朋友碰到要求测试一个网站,或者广告系统的PV,一般来说,这样的测试比较简单,但如何统计这些测试的并发数及确切的访问量,却是个难点。

        根据我的理解,PV既然是页面的访问量,那么是不是可以通过计算页面的访问量来推出PV呢?如果可以,那又该如何计算页面的访问量呢?LoadRunner提供了一个点击率的统计,其实,在实际的测试过程中,我们可以利用这个监控点做一些文章。

      假如有这样一个要求,测试某门户网站首页的PV,在晚上8:30到10点这个时间段里,要求达到200万。我们可以采用下面的步骤:

    1、录制脚本,增强后创建一个单用户场景,即并发用户数为1;

    2、不设置场景持续时间,直接运行场景,完成后看点击数是多少,假如为5,表示一个用户访问首页时,共发出了5个请求,也就是说首页访问一次,共处理5个请求;

    3、按照业内的经验值,取适量的并发数,比如300左右,(一般地,系统达到500左右并发性能还保持不错的话已经了不得了。)场景运行时间在(10-8:30)/2=45分钟,这样取其实是为了初步评估系统的性能,如果可以的话,就加大并发数,延长持续时间,直至到测试要求的1个半小时。假如45分钟内,300个并发,LoadRunner统计的点击数在100万,那么首页的访问量就是100万/5=20万,类似的方法,经过几次测试,找出支持200万的点,看并发数,当然,是在测试时间为1个半小时里,找出并发数,如果系统支持不了,也就说明性能跟不上,可以具体分析原因。

  • LoadRunner视频教学

    2008-05-20 19:59:17

    最近录制了一些LoadRunner性能测试的视频,讲述了一个性能测试的基本流程,希望对初学者有帮助,另欢迎高手拍砖,一起进步!

    下载地址:http://www.jobedu.com.cn/shipin/video.html中的软件测试相关视频教程

    PS:本人声音不够甜美,见谅!播放最好用暴风影音。

    如有问题,可在http://www.v512.com/bbs/index.php中的软件测试频道给我留言。

  • [论坛] 《软件性能测试过程详解与案例剖析》PDF电子版

    2008-03-13 16:03:58

    花了两个小时的时间,拍照,制作,终于完成,感谢段念前辈的书,制作此仅为共享学习资料,望各位不要拿去了再卖,本人坚决鄙视。

    另:如果确实喜欢该书,可购买实物,谢谢!

    软件性能测试过程详解与案例剖析.part01.rar
    (2008-03-13 15:25:59, Size: 1.91 MB, Downloads: 8)


    软件性能测试过程详解与案例剖析.part02.rar
    (2008-03-13 15:25:59, Size: 1.91 MB, Downloads: 8)

  • 发现不能使用ip欺骗功能的一个原因!

    2008-01-06 21:59:49

    最近在使用ip欺骗的时候,在设计好场景后,一运行就报错,说某某服务器连接不上。查了不少资料,ip欺骗的步骤一步都没错,也不知道哪里出了问题。后来无意关了卡巴斯基,关闭后,居然能使用了,加了在日志里输出ip检查,最终也正确了。以前使用的时候,系统装的瑞星,是可以使用ip欺骗的。所以就没考虑到杀毒软件,折腾了我一个多小时。

    大家在用ip欺骗功能的过程中,如果不成功,记得关注一下防火墙,或者杀毒软件哈。

  • 讨论:loadrunner脚本录制的问题

    2008-01-04 23:51:48

    大家好!

    在实际脚本录制过程中,碰到一个问题,就是在录制每一个action的时候,页面左下角有时候不是完毕状态,如果在此时进行action的切换或者下一个业务操作,对最终的脚本回放是否有影响?我之前一直都是等ie的状态变为“完毕”后,才进行action的切换或下一个业务操作的。

    正确的做法是什么呢?
    如果有影响,影响在哪里呢?

Open Toolbar