LoadRunner之--Think Time
- 格式:docx
- 大小:14.91 KB
- 文档页数:2
1Loadrunner名词解释响应时间:应用系统发出请求开始到收到服务器所有响应所耗费的时间;并发用户量: 同一时刻与服务器交互的所有用户数量;在线用户数:即同时在使用应用系统的用户,可能在浏览,可能在做交易。
并发用户怎么计算:●一般并发用户数取在线用户的10%-30%。
●八二原则:一般可以认为80%的用户在20%的时间内完成工作,所以峰值压力的时候,一般并发数要乘以80%/20%=4●Loadrunner里计算公式(1)计算平均的并发用户数:C = nL/T(2)并发用户数峰值:C’ ≈ C+3根号C公式(1)中,C是平均的并发用户数;n是login session的数量;L是login session 的平均长度;T指考察的时间段长度。
公式(2)则给出了并发用户数峰值的计算方式中,其中,C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。
该公式的得出是假设用户的login session产生符合泊松分布而估算得到的。
事务响应时间:处理一个事物花费的时间,包含网络传输时间和服务器处理事务的时间TPS: 每秒处理事务数量资源利用率: Cpu、内存、磁盘io、网络的使用情况;思考时间: 用户进行操作时,每个请求之间的时间间隔2性能测试包含了哪些软件负载测试:通过对被测系统不断加压,直到超过预定的指标或者部分资源达到了饱和不能再加压为止,就像举重的过程中不断加杠铃的重量,知道运动员不能举起。
压力测试:给系统增加一定的压力,在一定的压力下测试的cpu、内存、磁盘、网络使用情况,也即业务能否正常使用;并发测试:通过模拟用户并发访问,测试系统是否存在死锁、系统处理速度是否下降的比较厉害等问题;可靠性测试:在一定的业务压力下,让系统运行一段较长的时间,看系统能否无故障运行;3简述使用软件测试工具Loadrunner的步骤制定性能测试计划—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果4什么时候可以开始执行性能测试功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。
前些时间有人提到对于loadrunner如何运用随机时间,并要把时间定在毫秒级,想了想,有两个方法:一、把lr_think_time参数设置为0.1,并把runtime-setting的Replay think time设置为:use random percentage of recorded think time,并把范围设置在1% ~1000%之间,那么范围就是在1~1000毫秒间了;二、方法二,利用随机函数,生成1~1000的数,再除以1000运行提示:打开runtime-setting的log设置里的Replay think time的As recorded// ============ 代码如下=================Action(){long a,b;float fnum;int i, imax, time_x;imax=10;srand(time(NULL)); // 随机种子,以防止生成相同数for (i=0; i<imax; i++) {fnum=rand(); // 利用自动类型转换,取得随机数a = clock(); // 取得当前的时间,保存到alr_think_time(fnum/100000); // 把随机数换算到毫秒级b = clock(); // 取得当前的时间,保存到btime_x = (int)(b-a); // 取间隔时间lr_error_message("间隔时间为:%d 毫秒",time_x);lr_error_message("Think_time的参数是:%lf", fnum/100000);}return 0;}效果图如下:。
Loadrunner疑惑点,参数化,关联如何定位等⼀、脚本的录制⽅⾯1.LR中脚本浏览可以使⽤两种模式:Tree图形化模式和Script脚本模式2.LR中还提供了Tasks的标签,这⾥提供了VUG建议的脚本录制开发过程,通过⼀个任务流的⽅式知道你。
3.录制选项,对于web使⽤的录制⽅式,HTML提供了两个⼤类的录制⽅式:HTML-BASED SCRIPT 和URL-BASED SCRIPT。
第⼀种:Html-based script 这种⽅式录制出来的脚本是基于html基础的,其下有两种不同类型的脚本:1. A script describing user actions基于解释⽤户⾏为的脚本,录制的脚本中包含web_link,web_submit_form函数,主要是描述⽤户做了什么操作。
(1)思考:若⼀个页⾯中有多个同名的链接,怎么办?答:ORD这个关键字可以帮助你。
=2就是点击的第⼆个。
(2)使⽤html-base Script下的A script describing user actions的好处是脚本简洁,基于⽤户操作模拟,浅显易懂,且⾃⾝包含对象检查过程,⽆需校验。
缺点是基于⽤户⾏为的模拟,在参数化和链接多个同名时难以应⽤。
(3)A script containing explicit URLs only 基于url请求的脚本录制类型。
Web_ulr()、web_submit_data()第⼆种:url-based script 这种是基于URL请求的脚本录制⽅式,会录制所有的http请求。
(1)思考:什么时候我们该⽤html-based script还是选择url-based script呢?答:⼀般来说如果我们的标准是使⽤IE访问的B/S架构,我们应该使⽤html-based下的a script containing explicit urls only这种⽅式来录制脚本,这种脚本基于url请求完成,不会带有任何前后依赖的内容。
Enhancements 增强功能Parameterization 参数化Content Checks 文本检查Iterations 迭代Concurrent Users 并发用户Simultaneously 同时地Scenario 场景Elapsed Time 已用时间Hits/Second 每秒点击次数Available Graphs 可用图User Defined Data Points 用户自定义数据点service level agreement 服务水平协议Run Logic 运行逻辑:重复次数Pacing 步:重复之间的等待时间Think time 思考时间:步骤之间用户停止以思考的时间Log 日志:播放期间要收集的信息级别Correlation Results 关联结果Init 初始化Insert Action 插入操作Insert Block 插入块Iteration 迭代Random 任意的,随机的Parameter substitution 参数替换Advanced trace 高级跟踪Replay log 回放日志Submit 提交Submit Data Step Properties 提交表单步骤属性File format 文件格式Update value on 更新值的时间Each Iteration 每次迭代Sequential 顺序ParameterizationData wizard 数据向导Scenario 场景Manual Scenario 手动场景Goal_Oriented Scenario 面向目标的场景Interactive Schedule Graph交互计划图Duration 持续时间Throughput 吞吐量Configure SLA rules 配置SLA规则Set Filter/Group By…设置筛选器/分组方式GranularityMerge Graphs 合并图Correlate 关联Auto correlate 自动关联Measurement 度量Percentile 百分位。
第一课软件性能测试的基本概念引言:亲爱的同学们,欢迎你们来到性能测试教堂,这里将是带领你进入性能测试领域的一个开端。
也许你是满怀欣喜和希望,但我想告诉你,这里也许不如你想想的那么美好,也不会有你想想的那么迷茫,只要你有这个执着的心,能够静心凝神的去关注,去思考,去进取,你的梦想,将不在是梦想,一切皆有可能。
也许有哪一天,你也可以在开发面前自豪的说,我们并不是你们所指的就会在页面上指指点点的,没有一点技术含量的小无知了。
说了这么多了,就不废话了,让我们赶快行动吧!开始我们的第一个章节,了解性能名词解析,为你的今后打下坚实的基础。
1.什么是软件性能?答:性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度;其次,性能是软件产品的一种特性,可以用时间来进行度量。
2.什么是软件呈现时间和软件响应时间?答:用户直接感受到时间就是呈现时间,系统作出处理反应的时间就是响应时间。
3.软件测试人员测试性能时的关注点有哪些?答:首先考虑系统在额定用户访问的情况下状态如何?服务器的cpu使用情况是不是已经达到了最大值?是否还有可用的内存?应用服务器的状态如何?我们设置的jvm(交互式应用)可用内存是否足够?数据库的状态如何?是否需要一些调整?4.什么是并发用户,什么是集合点?答:并发用户是指一次性提交的用户数量(举一个墙面可以承受多少个皮球击打的例子)。
集合点是一个并发访问的点,设置集合点可以在客户运行到提交数据集合点时,loadrunner就会检查同时有多少用户运行到了集合点,如果不到规定的数目,就会让到了集合点的用户等待,如果都到了,可以让规定数目的用户同时提交数据,起到并发访问的目的。
5.下面说一个并发访问用户峰值的计算公式答:c=nl/t c1=c+3√c说明:c是平均的并发用户数,n是login session的数量;l是login session的平均长度;t是指考察时间段的长度。
C1是指并发用户的峰值。
1.执行的摘要1.1.目标Add text here1.2.会议概要分析概要分析时期: 15/06/2012 11:19:22 - 15/06/2012 11:20:38设定名称: Scenario1会议结果: C:\Documents and Settings\Administrator\Local Settings\Temp\res\res.lrr持续时间: 1 minute and 16 seconds.统计表摘要最大运行数: 6总的生产量(字节):9,095,876平均生产量(字节/秒):118,128总采样数:1,110每秒平均采样数:14.416 观察HTTP响应的概要整体错误:10Scenario Behavior Over TimeThe SLA status of the following measurements displayed over time. You can select a specific time range for each transaction in order to analyze the time range.测量法名称时间范围0 0 0 0 0 0 0 0 0.8 0.4 0 0 0.4 0 0 1运行在测试错误的情况下00:00:00 00:00:05 00:00:10 00:00:15 00:00:20 00:00:25 00:00:30 00:00:35 00:00:40 00:00:45 00:00:50 00:00:55 00:01:00 00:01:05 00:01:10 00:01:15 2.2.1.Files文件Name:名字Scenario1方案1Results in Session会议结果: C:\Documents and Settings\Administrator\Local Settings\Temp\res\res.lrrSession Name会议名字: Session1.lra会议1.1ra2.2.Scheduler Information调度程序信息Started On开始时间: 15/06/2012 11:19:22Ended On结束时间: 15/06/2012 11:20:39Duration:持续时间Until Completion直到结束Load Behavior:负载反应Load all Vusers simultaneously同时加载所有场景2.3.Scripts脚本2.4.Run Time Settings运行时间设置2.4.1.Multi+QTWebGroup分组Script脚本Pacing步测Think Time思考时间Network Speed网络速度Browser cache浏览器隐藏yunwangOA yunwangOA As soon aspossible尽快的Replay asrecorded重播记录Maximumbandwidth最高可用频宽Yes同意ers' Influence用户影响Displays average transaction response times relative to the number of Vusers running at any given point during the load test. This graph helps you view the general impact of Vuser load on performance time and is most useful when analyzing a load test which is run with a gradual load.显示平均事务响应时间相对于在任何给定的时间内在负载测试过程中运行的场景数量。
在LoadRunner中,有许多常用的函数可用于脚本开发和性能测试。
以下是一些LoadRunner 中常用的函数:
lr_start_transaction / lr_end_transaction:用于标记一个事务的起始和结束,用于测量事务执行的时间。
lr_start_timer / lr_end_timer:用于开始和停止计时器,可以用于测量代码块的执行时间。
lr_save_param / lr_eval_string:用于提取和保存动态参数,并在后续的请求中使用。
lr_error_message:用于记录错误消息和打印到日志中。
lr_output_message:用于输出消息到LoadRunner日志文件,方便调试和记录信息。
lr_user_data_point:用于在测试脚本中插入自定义的性能数据点,以便后续分析和报告。
lr_random / lr_paramarr_random:用于生成随机数或从参数数组中随机选择一个值。
lr_save_string / lr_save_int:用于保存字符串或整数值到LoadRunner内部的变量中。
lr_think_time:用于模拟用户思考或等待的时间,以便在测试中模拟真实的用户行为。
web_reg_save_param:用于从服务器响应中提取并保存参数值。
这只是一些常用的LoadRunner函数示例,还有许多其他函数可根据需要使用。
请参考LoadRunner的官方文档和函数库手册,以获取更详细的函数列表和使用说明。
loadrunner断言函数
LoadRunner支持多种断言函数,以下是其中几种:
1. lr_eval_string: 该函数用于将字符表达式转换为数字表达式。
2. web_reg_find: 该函数用于查找一个字符串或正则表达式是
否出现在选择的HTML、XML或JSON文本中。
3. lr_error_message: 该函数用于打印错误消息。
4. lr_fail: 该函数用于强制LoadRunner脚本执行失败。
5. lr_output_message: 该函数用于在输出窗口中显示一条消息。
6. lr_continue_on_error: 该函数用于告诉LoadRunner在发生错
误时继续执行脚本。
7. lr_exit: 该函数用于退出LoadRunner脚本。
8. lr_think_time: 该函数用于设置思考时间(指定的时间是以毫秒为单位)。
9. lr_transaction_start: 该函数用于开始事务。
10. lr_transaction_end: 该函数用于结束事务。
这些函数的使用可以根据不同情况选择不同的断言方法。
LoadRunner之--Think Time领测软件测试网“Think Time”顾名思义-思考时间。
它效仿真实用户在实际操作过程中的等待时间。
也就是说,实际用户在浏览网页,操作B/S系统的时候,不可能像机器一样不停的点啊点,在操作和操作之间会有一定的间隔。
如:你浏览网页,打开一个或几个网页后,你会阅读,读过之后才会继续打开新网页。
你阅读时所消耗的时间就是Think Time。
对于服务器来说,这段时间是没有压力的。
我们做性能测试,很多时候就要模拟这种状态。
例如:某系统,要求满足100用户同时在线操作,响应时间在5秒。
如果不设置Think Time,我觉得,你的测试是失败的。
大家想想为什么?答案将在文章的结尾揭晓。
下面我来讲解一下LR中Think Time的设置。
设置Think Time有两种方式,一种是使用Record think time在录制过程中根据实际等待时间自动的写入脚本。
另一种是在脚本录制结束后手动加入到脚本中。
接下来我们详细介绍。
自动:
位置及操作:Recording Option-Advanced:勾上Record think time,这样在你录制的时候,Think Time就会自动添加入你的脚本。
需要注意的是,后面还有一项Think time threshold,它的作用是定义你所要录制的Think Time的最小时间。
举个例子,如果你把这个值设置为5秒,那么如果录制过程中等待的时间小于5秒,那么就不会在脚本中记录这个Think Time。
手动:
位置及操作:脚本中任何你想要插入的地方。
注意,不要将Think Time插入到你定义的事务当中,否则,测出的事务时间需要减去Think Time的时间呦。
操作:在你想要插入Think Time的地方,右键,Insert-New Step在Time To Think ()second在空中填写你为想要设置的时间。
也可以在脚本中直接写函数lr_think_time();
添加好后,我们在Run-time Settings中设置执行的策略。
位置:Run-time Settings-Think Time。
进入后,我们会看到两个选项。
Ignore think time:忽略think time,也就是即使你添加了think time,脚本执行的时候也不会理睬,忽略不执行。
Replay the think time:下面还有3个子项。
As recorded:按照录制的执行。
不用多说。
Multiply recorded think time by:这就是我录制的think time乘一个系数。
如,你录制的think time是
4秒,在这里设置2,最后执行时就会按4秒×2=8秒来执行。
如果你想要执行2秒,就在这里填0.5。
Use random percentage of the recorded think time:这里随机设置一个百分比,并规定上下限。
如,录制的think time为4秒。
Min为50%,Max为200%。
那么执行的时候它就会从2秒到8秒内随机取一个数来执行。
Limit think time to:为think time设置一个上限,不管上面的如何设置,执行的时候,取值都不会操过这个上限。
讲到这里,think time的设置大家应该很明白了。
不知道让大家思考的问题是否想通了。
需求说的是100用户同时在线操作,注意,是在线!大家想想,100人在线肯定有人在操作,也有人只是在线,没有对服务器发出任何请求。
如果不设置think time,相当于100人并发操作,每个人都不停的向服务器发送请求,这比需求的压力可是大很多的呦~。