喜欢研究学习技术,喜欢和志同道合的人交流。 从事测试6年,专职性能3年经验,擅长性能测试,测试框架开发。 励志格言:只要想学习,永远都不会太晚;只要想进步,永远都会有空间。

性能测试学习笔记三----场景设计

上一篇 / 下一篇  2015-01-09 10:47:01 / 个人分类:loadrunner性能测试

1、场景(场景分类)

1.1、手工场景

        手工场景就是自行设置用户的变化,主要通过设计用的添加减少过程,来模拟真实的用户请求模型,完成负载的生成。一般性能测试,都选用手工场景。

        手工场景可以为同一个组中的不同用户分配不同的脚本,负载生成器。

1.2、目标场景

        面向目标场景,即首先的定义需要测试达到的目标,然后loadrunner会自动根据这一目标创建场景。

2、场景设计策略

2.1、快增长

        使用场合:比如说秒杀功能。

问题1loadrunner场景中的加载方式:simultaneously,即同时加载。和Initialize中的

一次性初始化所有的vuser用户的选项,两者有什么区别吗?

2.2、慢增长

        使用场合:单个场景,比如打开某个页面,接口,登录等操作。

2.3、用户数执行完场景停止场景

        用户停止场景即用户执行完场景完后,退出当前的场景的操作。

问题2:一般情况来说,用户停止场景的方式,是与用户加载的方式一样适合还是一次性全部退出场景适合呢?

问题3:用户场景的执行时间:可以不可以这样理解,用户场景的整体执行时间等于:

     用户加载时间+用户执行时间+用户退出场景的时间?

3、场景适用场合

3.1、单场景

例如:打开某个页面操作,用户登录等。

3.2、混合场景

混合场景,即多个业务组成的场景。比如BBS论坛发帖,有用户登录,发帖,回帖的业务,这些业务可以组成一个混合的场景,在运行场景时,可以指定多少vuser去执行某一个单个业务的操作。

 

问题4:在混合场景中,针对了某个单业务进行了检查点的设置,例如BBS论坛的发帖检查点,当虚拟用户数变多时,其整个发帖的事物响应时间明显变慢,是不是增加了检查点后,在多虚拟用户执行场景时,会影响到其事务的响应时间呢?或者说检查点不适合在混合场景中多次添加?

4、压力机

4.1、压力机定义

压力机顾名思义就是增加压力的机器,即负载机,在性能测试过程中,可以指定多个加压机对其进行加压。

 

4.2、添加负载机步骤

1、保证联合的机器上装了LR agent,并启用了。(状态栏会有一个小卫星)

2、本地系统的服务RPC服务开启,改为自动。

3、请从你的Controller的机子上登录要联合的机子。

4、关闭防火墙+杀毒+360等。拥有权限,必须保证负载机器在同一个网段内,保持网络可以相互通信。

 

5、集合点策略

5.1、为什么要用集合点

                loadrunner进行性能测试过程中,其实不能保证所有的Vuser都在同一时刻进行操作,这样就达不到并发测试的目的,故需要用到集合点。集合点的意思就是在一个操作之前设置了集合点,loadrunner会等待所有的Vuser都准备好要执行的该功能菜进行执行,其强调的所有的vuer都已经准备好了,如果部分Vuser没有准备好,则该功能还不能被执行。

 

5.2、集合点策略介绍

1Release when:当所有虚拟用户中的x%到达集合点进行释放,即仅当指定百分比的虚拟用户达到集合点时,菜释放虚拟用户。

2Release when:当所有正在运行的虚拟用户的x%到达集合点时释放,即当场景中的指定的百分比,正在运行的虚拟用户到达集合点时,才释放虚拟用户。

3Release when:当X个虚拟用户到达集合点时释放,即当指定的数量的虚拟用

户到达集合点时,菜释放虚拟用户。

4timeout between vuser(虚拟用户之间的超时)框中输入一个超时值。

        注意1:超时时长默认是30秒,我们可以根据具体的被检测应用进行调整。

        注意2:没有100%的并发。

        注意3:在实际应用中很少使用集合点。

 

6、性能测试的目的

6.1、评测

评测:用户更关心的是业务上的并发,就是真是业务场景的并发情况,这种情况下就不需要设置集合点了。

6.2、调优

有针对性对某个可能存在的性能问题的模块/接口施压,以便找到性能瓶颈。这时候可以使用集合点。

 

7window资源**

7.1、loadrunner自带**注意点

1、开启Remote Procedure CallRPC)和Remote Registry Service服务。

2、关闭防火墙,杀毒

3、拥有管理权限访问

4、安全策略设置:运行框中输入secpol.msc,出现安全策略设置对话框,依次点击本地安全策略安全选项,然后找到网络访问:本地账户的共享和安全模式,修改为经典即可。

 

7.2、**过程中注意事项

1、观察图标的变化趋势,不要局限在某个点上

2、第三方**工具刀额数据图---关注重要的指标。

3、应用(JVM内存,full gc频率),中间件,数据库

4、查看log日志(日志几倍warnerror)。重点关注errortimeout的。

5、如果在执行过程中加压,要记录加压的时间点。

6、随机的去手工访问相关业务。

 

问题:Error -27796: Failed to connect to server "ip地址": [10060] Connection timed out

解决办法:

1.、修改run time setting中的请求超时时间Preferences 中点击Options 其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为1000、1000、10000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数。

     2. Browser Emulation 中的Download non-HTML resources 选项去掉,点击OK即可 

2、办法(一)不能解决的情况下,解决办法如下:

设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。

 

8、场景设计总结

8.1、一般情况场景的执行步骤:

1、添加脚本。

2、设置压力机。

3、设置run time setting选项(检查点启动,思考时间设置,网络带宽设置等等)。

4、设置schedule项(主要为集合点并发策略的设置)

5、基准。

6、单用户单次。

7、单用户多次。

8、多用户单次。

9、多用户多次。



TAG:

 

评分:0

我来说两句

Open Toolbar