LR集合点与事务

Posted 一个tester的独白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LR集合点与事务相关的知识,希望对你有一定的参考价值。

举个例子:

  如果现在测试登录的负载情况,我们需要先在登录步骤之前插入一个集合,把登陆的整个操作(访问网页,输入用户名和密码,提交)放到一个事务里面,此时模拟500人登录。这个时候500个Vuser会在集合点处集合,然后并发对系统施压,怎样施压呢,就是进入事务,对定义的事务进行操作。等到完成压力测试后,后生成报告,报告中会告诉我们,每秒处理了多少事务(每秒事务数、tps),每个事务处理需要多长时间(事务响应时间)等等。由此可见,集合点和事务是很重要的。

集合点:

lr_rendezvous( const char *rendezvous_name);

举例说明:

  lr_rendezvous("addRendzvous");

用法:

(1)在脚本中右键(插入——集合)

(2)插入——集合

(3)录制过程中,点击“插入集合点”

 

 

 

事务:

开始事务:lr_start_transaction( const char *transaction_name );

结束事务:lr_end_transaction( const char *transaction_name, int status ) ;

举例说明:

  lr_start_transaction("Login");

    ……一系列操作

  lr_end_transaction("Login", LR_AUTO);

 

用法:

(1)在脚本中右键(插入——开始事务——结束事务)

(2)插入——开始事务——结束事务

(3)录制过程中,点击“开始事务”——“结束事务”

 

完整实例:

 1 Action()
 2 
 3  {
 4 
 5    lr_rendezvous("addRendzvous");
 6 
 7    lr_start_transaction("Login");
 8 
 9  
10 
11    web_reg_save_param("WCSParam3",
12 
13       "LB/IC=userSession value=",
14 
15       "RB/IC=>",
16 
17       "Ord=1",
18 
19       "Search=Body",
20 
21       "RelFrameId=1.2.1",
22 
23       LAST);
24 
25  
26 
27    web_url("WebTours",
28 
29       "URL=http://127.0.0.1:1080/WebTours/",
30 
31       "TargetFrame=",
32 
33       "Resource=0",
34 
35       "RecContentType=text/html",
36 
37       "Referer=",
38 
39       "Snapshot=t2.inf",
40 
41       "Mode=HTML",
42 
43       LAST);
44 
45  
46 
47    web_reg_find("Text=zyt",
48 
49       LAST);
50 
51  
52 
53   web_submit_data("login.pl",
54 
55       "Action=http://127.0.0.1:1080/WebTours/login.pl",
56 
57       "Method=POST",
58 
59       "TargetFrame=body",
60 
61       "RecContentType=text/html",
62 
63       "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
64 
65       "Snapshot=t3.inf",
66 
67       "Mode=HTML",
68 
69       ITEMDATA,
70 
71       "Name=userSession", "Value={WCSParam3}", ENDITEM,
72 
73       "Name=username", "Value=zyt", ENDITEM,
74 
75       "Name=password", "Value=123456", ENDITEM,
76 
77       "Name=JSFormSubmit", "Value=off", ENDITEM,
78 
79       "Name=login.x", "Value=36", ENDITEM,
80 
81       "Name=login.y", "Value=7", ENDITEM,
82 
83       LAST);
84 
85   lr_end_transaction("Login", LR_AUTO);
86 
87  
88 
89   return 0;
90 
91 }

注意事项:

集合点必须在事务之前,起始事务名称必须一致。

 

以上是关于LR集合点与事务的主要内容,如果未能解决你的问题,请参考以下文章

LR学习笔记12-测试脚本的增强方法

LR常用的函数

LR学习笔记6-常用术语

性能测试

JMeter:事务等

loadrunner - 事务