loadrunner--并发、集合点、检查点

1、虚拟用户状态:

Down:关闭, Vuser处于关闭的状态。

pending:挂起,Vuser已经准备好了,等待可用的负载生成器的调用。

Init:正在初始化,Vuser正在登陆远程计算机(负载生成器)。

Ready:就绪,已经执行执行完脚本的初始化代码,可以运行。

Run:运行,Vuser正在负载生成器中运行。

Rendevous:集合点,Vuser运行到了集合点的位置,正在等待Loadrunner释放。

Pass:通过,Vuser运行完成,并且通过。

Failed:失败,Vuser运行完成,但是运行失败。

Error:错误,Vuser发生了问题(如:Vusermei没有登录到负载生成器上)。

Gradual Exiting:逐步退出,Vuser被调用了stop (窗口的stop按钮,duration时间)命令后,正在运行当前的迭代。

Exiting:退出,Vuser已经结束运行已经停止,正在退出。

Stop:停止,Vuser被调用了stop(窗口中的stop按钮,duration时间)命令后。

一、并发测试

1、并发测试的两个条件:

1)脚本中要加入并发点(集合点)

2)控制台中并发策略设置为第一种

2、步骤

1)录制脚本(添加检查点、集合点、事务)

2)进行运行时设置、检查脚本是否成功

3)在controller中进行场景设计(场景计划设计、集合点策略、运行时设置)

4)运行脚本,收集结果

5)在Anaoysis中进行结果分析

6)编写测试报告

3、集合点的三个策略

Pelease when x% of all Vuser arrive at the rendezvous :如果所有集合点等待的用户数达到x%时,系统就会释放用户,继续向下执行。

Pelease when x% of all running Vusres arrive at the rendezvous:如果所有集合点等待的用户数达到所有正在运行用户的X%时,系统就释放用户,继续向下执行。

Pelease when x  Vusers arrive at the rendezvous:如果集合点等待的用户数达到x个时,系统就释放用户,继续向下执行。

Timeout Vuser between X sec:第一个Vuser到达后,Controller会计算等待下一个用户时间,每当有新的Vuser到达时,计算器就会充值为零。在超时时间内如果下一个Vuser还未到来,controller会释放所有当前处于集合点Vuser,而不会考虑释放条件是否满足。

补充点:

1、并发测试是考察系统的瞬间压力承受能力,是比较严格的测试,所以不需要等待时间(思考时间、睡眠时间、think time)。-----忽略think time。

2、Lr结果报告中,显示了事务的响应时间的最小值、平均值、最大值、最小值,其中平均值比较重要。

3、平均方差越小(趋近于0),表示事务的响应时间越接近,代表系统越稳定。

4、90percent:表示执行该事务的90%的用户都可以在该时间内完成操作。

5、100用户共同执行某事务,其中1个用户执行时间为1000s,99个用户执行时间为0.001x,则90 percent和平均值哪个真实?---90percent值比较真实。---所以,读报告时,不应只看平均值,也要关注90 percent值。

6、Analysis 不能直接打开脚本生成器中的脚本结果,脚本生成器(VUG)中的脚本只能调试后点击“run”来从replay log中查看结果。

7、当脚本调试通过后---》加入到控制台---》打开analysis。

8、一个脚本中一般只加入一个集合点,比如一个脚本录制的是一个流程(包含多个操作),则在每个事务前都添加一个集合点。该做法从语法角度没有错误。但是如果脚本运行结果有问题,不好分析。

9、事务里面不能包括思考时间,要么注释思考时间,要么把思考时间移动到事务之外。

10、验证脚本是否成功的步骤:

a.在脚本生成器中:单循环、多循环。

b.在控制台中:单用户单循环、单用户多循环、多用户多循环、多用户多循环。

11、性能测试中,所有的数据包(客户端和服务器之间的对话)分为两类:请求包和应答包。无论是请求包还是应答包,都分为两部分header和body部分。

a.  header中是一些参数设置;

b. body中才是真正要传输的信息。 

二、检查点

检查点:主要验证某个界面上是否存在指定的Text或Image等对象。

LR中检查点有两种:文字和图片。

函数:web_find()、web_reg_find()和web_image_check()。

步骤:

a.定位要检查的页面;

b.插入文字检查点

c.设定与检查点有关的选项Vuse | Run-time Settings | Preferences

d.查看检查点是否通过

注意点:

1、一个脚本必须加入一个检查点,否则不清楚脚本的正确性。但是检查点不宜过多,一两个足矣。

2、一个脚本中在关心的操作附近要记得添加事务,所以一个脚本至少一个事务。但是一般情况下,登录也会也会被添加为事务。

3、关心的操作就是测试计划中的测试点,如查询稿件、购买机票等,只要测试计划搞定,则测试点确定。

4、注意:web_find函数要求:

1)写在相应请求之后

2)开启run_time settings中开关

3)检查的内容在AUT界面上拷贝即可

5、lr_output_message函数的结果只显示在回放日志中,不会显示在结果报告中。

1、函数

1)web_find(不常用)函数的左右边界:

a.rightof表示左边界

b.leftof表示右边界

loadrunner--并发、集合点、检查点_第1张图片
web_find

2)web_image_check函数(不常使用)两个参数,使用时选一个即可,另一个参数可以为空值

a.alt参数:当光标悬浮在网页图片上时显示的名称(给用户看的)

b.src参数:该图片在源代码中的路径及名称(给程序员看到)

注:web_image_check函数特性与web_find相同:

1)写在相应请求之后

2)开启run_time settings中开关

3)参数内容在源代码中提取

3)Web_reg_find函数

web_reg_find函数注册一个请求,在下一个操作函数检索到的缓存中搜索一个文本字符串。

web_reg_find()返回值0或1。

web_reg_find()是否注册成功(web_reg_find是注册类型函数,它本身并不执行),不代表查找的内容是否存在。

可利用savecount进行判断。表示查找的内容出现的次数。一般不用。

loadrunner中,带有reg字样的函数,称为注册性函数,该类的函数的特点,就是要将函数写在相应请求之前。在网页缓存中寻找匹配。

loadrunner--并发、集合点、检查点_第2张图片
web_reg_find

注意点:

      lr_eval_string函数的作用:为C语言的函数和lr的变量起到桥梁的作用;可以去除lr变量count的实际值。

       lr_eval_string函数后面的括号:后面必须接();()里面是字符串,所以用"";""里面不是普通字符串,而是lr变量。Lr要求,如果取lr变量的值,则必须要用{}。

      lr函数(web_或者lr_开头的函数)中出现的变量称为lr变量,该类变量不需要再脚本初始位置定义。但是C语言的变量一定要在初始位置定义。

三、基准测试(单用户测试)

1、如果脚本录制过程中遇到页面报错,则放弃录制,重新录制。要保证录制过程正确。

2、录制完成的脚本一定要回放。如果正确,再进行下一步增强脚本。

3、基准测试步骤:

1)脚本调试,运行通过

2)放入控制台

3)控制台的参数设置:

a.用户数为1

b.虚拟用户部署不需要设置(global schedule)

c.Run_time settings中的设置

   ------run logic 中设置5次

   ------Pacing值:随机2-3s

   -----Think time值:忽略(原因:单用户对AUT压力很小,所以是否存在思考时间,意义不大)

d.Pacing值:循环之间的时间间隔。一般情况下2-3s。

e.因为在线测试过程中,如果用户循环提交请求,但是每次循环之间没有试驾间隔,则过于严格,不符合实际的生产环境。

f.Think time值:步骤之间的时间间隔。


补充:

1、当run_time settings 中的run logic和duration中都设置时,duration优先级高

2、只要有迭代,就要设置pacing值。

3、每次提交的测试数据,应该测试三次,选取其中的中间值。

你可能感兴趣的:(loadrunner--并发、集合点、检查点)