举个例子:
如果现在测试登录的负载情况,我们需要先在登录步骤之前插入一个集合,把登陆的整个操作(访问网页,输入用户名和密码,提交)放到一个事务里面,此时模拟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 }
注意事项:
集合点必须在事务之前,起始事务名称必须一致。