性能测试场景分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

录制脚本

录制参数设置

脚本录制

回放和调试脚本

用这按钮进行编译,编译通过后,点击运行按钮即可运行脚本。只有在脚本运行正确后,才能进入Controller中来创建测试场景。

脚本录制的原则

⏹充分考虑脚本的执行效率

⏹录制重要的用户业务

⏹选择你所需要的进行录制

修改脚本

参数化功能

步骤1

步骤2

步骤3

参数类型有多种:

●Date/Time:需要输入日期的地方,可以用Date/Time类型来替代。

●Group Name:使用虚拟用户组的名称来替代参数。

●Load Generator Name:使用虚拟用户所在的LoadGenerator机器名来替代参数。

●Lteration Number:测试脚本当前循环的次数来生成参数。

●Random Number:随机数。

●Unique Number:唯一的数(一般使用递增的数。)

●Vuser ID:使用虚拟用户的ID来替代参数,ID是由Controller来控制的。

●File:在属性中可以指定文件或数据库中提取数据。

●User Definde Function:从用户开发的dll文件中提取数据。

这里的重点是file类型:

在我们工作中最常用的是“Unique(唯一的)”和“Each iteration(下一条数据)”

的组合。比如我们设计一个场景,要求10个虚拟用户都需要进行10次迭代。那编号为1的用户取前10行数据,编号为2的用户取11~20行数据。以此类推,那完成整个场景就需要数据表里至少要有100条数据,否则在Controller运行过程中会返回一个错误。

深入集合点(就是并发点)

使用集合点可以控制各个Vuser,以便在同一时刻执行任务。原理是,当某个Vuser到达该集合点时,Controller会将其保留,直到参与该集合点的Vuser都到达,满足了集合条

件时,Controller将释放Vuser,这样就产生了密集的同一类用户操作或请求。Vuser从集合释放后,将执行脚本中的下一个任务。

需要注意的是:

●集合点一般会创建在用户事务的开始标志前。

●集合点只能加在action部分,而不是init或end部分。

比如我们想在登录时创建一个集合点,我们可以这样安排:

巧用检查点

Loadrunner的检查点有三种:Web_find、Web_reg_find和Web_image_check。至于为什么要用检查点可以用个小例子做个测试,例如一个登陆脚本登陆的账号为123456,密码为123456,可以正确登陆,当把账号或密码改掉再执行,发现脚本并没有报错,也顺利执行下来了。原因是什么呢?Loadrunner以用户角色向服务器发送一个登陆请求,却不会判断请求的返回消息是什么,只要有返回,即使这是个拒绝登陆的返回,Loadrunner也认为登陆成功了。所以在登录或者其他有重要页面跳转的地方,很有必要做检查点。

Web_find和Web_image_check两个函数如果在脚本里面增加,需要在设置中打开“图像和文本检查”功能,该功能默认是不打开的,如果手工在脚本里面添加检查点,系统会有提示:

Action.c(43): Verification checks not enabled. web_find is skipped. See the 'Run-time settings/Preferences/Checks' [MsgId: MMSG-27197]

Web_reg_find是注册类型函数,它本身并不执行,不能通过它的返回值来作为事务的判断条件(因为web_reg_find()的返回值0和1表示web_reg_find()是否注册成功,并不代表查找的内容是否存在,也就是说无论查找的文本内容是否存在,都返回0。它是从返回的缓冲区扫描而不是在接收的页面中查找。这是比web_find更高效的一个函数。

关联

所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)资料,转变成是摘取自服务器所送的、动态的、每次都不一样的资料。

关于检查点和关联的内容,可以参见我们的案例“01 checkproperties”。

另外,我们可以在中配置脚本运行时的设置。

运行逻辑:我们可以设置ACTION的迭代次数。

思考时间:我们一般忽略思考时间,以得到更大的压力。

其他:我们可以选择错误的处理方式,还可以选择线程方式运行脚本以得到更大的压力,最后的选项一般默认就行了。

速度模拟:默认使用最大带宽,我们也可以模拟一些特殊的接入方式。

首选项:需要特别注意的是,如果脚本中使用了文本检查点或图片检查点的时候,

(如果是使用

web_reg_find,则不要求勾选。)

其他的项我们一般都使用默认值即可。

创建测试场景

场景类型

我们在VuGen中完成虚拟用户脚本的调试后,就进入Controller中进行用例场景的设计与执行。

在Controller中,提供了两种类型的测试场景:手动测试场景和面向目标的测试场景。

在场景运行后,Controller会在不同的负载生成器上(根据用户的设定进行分析:手动场景)或(自动分析:面向目标场景),生成一定数量的虚拟用户。通过这些虚拟用户的并发执行以及及时间的运行,来模拟真实情况下服务器承受的压力。在场景运行的过程中,Controller可以提供对服务器资源、虚拟用户执行情况、事务响应时间等方面的监控,帮助测试人员实时的分析系统,并在运行完成后给出结果数据以便进行下一步的分析。

手动场景

在Controller中,新建场景时,我们选择上面的手动场景,也可以再选择使用百分

手动场景是以用户定义虚拟用户数量来进行测试的。

面向目标场景

在面向目标的测试场景中,可以定义希望达到的目标。比如最大虚拟用户数量或每秒事务数等。Controller将根据定义的目标自动构建测试场景,并评估能否达到测试目标。

相关文档
最新文档