JSP学习笔记(八十二):使用LoadRunner测试Web项目
我使用的是LoadRunner v8.1,录制脚本,运行脚本,按照向导一步一步操作,很简单,这里不再累述。
这里主要讲一下LoadRunner使用过程中遇到的问题,及解决的办法。
问题一:一般的web项目都会有用户登录的操作,录制脚本的时候只是固定的一个用户,在做压力测试的时候,怎么模拟数据库的多个用户登录呢?
打开录制的脚本,找到用户登录的地方,选择用户名,右键,Replace with a parameter,parameter name:随意;parameter type:Table
点击Properties,进入设置页面
点击Data Wizard,Specify SQL statement manually,下一步
我使用的数据库为Oracle
Create,机器数据源,新建,系统数据源,下一步,Microsoft ODBC for Oracle,数据源名称:随意,描述:随意,用户名称:为数据库里使用的用户名,服务器:为数据库配置的名称,跟登录PL/SQL的名称一致。Connection string配置好了,再添加SQL Statement就可以了,比如select username from user
这样用户名就取出来了,还是在属性页面,把Select next row改为:Unique,When out of values改为:Continue in a cycle manner
问题二:第2个页面怎么得到第1个页面的内容,并在第2个页面使用?
比如:页面a.action里有一个变量,我需要获取这个变量,并把这个变量提交到页面b.action,还是直接看脚本吧:
未使用变量前的脚本:
web_url("ExamPaper.action",
"URL=http://127.0.0.1:8080/Proj//a.action",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t10.inf",
"Mode=HTML", LAST);
web_submit_data("b.action",
"Action=http://127.0.0.1:8080/Proj//b.action",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:8080/Proj//a.action",
"Snapshot=t11.inf",
"Mode=HTML",
ITEMDATA,
"Name=field1", "Value=on", ENDITEM,
"Name=field2", "Value=12", ENDITEM,
LAST);
使用变量后的脚本:
web_reg_save_param("field2","LB=var egid = ","RB=;","ORD=1",LAST);
web_url("ExamPaper.action",
"URL=http://127.0.0.1:8080/Proj//a.action",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t10.inf",
"Mode=HTML", LAST);
web_submit_data("b.action",
"Action=http://127.0.0.1:8080/Proj//b.action",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:8080/Proj//a.action",
"Snapshot=t11.inf",
"Mode=HTML",
ITEMDATA,
"Name=field1", "Value=on", ENDITEM,
"Name=field2", "Value={field2}", ENDITEM,
LAST);
a.action页面里有这样的内容:var field2 = 12;
在脚本里是这么写的:web_reg_save_param("field2","LB=var egid = ","RB=;","ORD=1",LAST);
LB是指左边界,RB是指右边界,ORD是指匹配模式,ORD=ALL是指匹配所有,ORD=n是指匹配第n次出现的内容
问题三:修改默认的50次Init次数
在做压力测试的时候,即使压几千人,默认也是50个一组往上加的,这样就不是完全意义的并发了,这个数是可以修改的:
菜单->Tools->Options->Run-Time Settings->Vuser Quota,这个数据是最高允许的数量
Scenario->Generators,Details->Run-Time Quota->Vuser Quota,这个是实际测试时使用的数量
问题四:修改超时时间
测试时,报TimeOut超时错误时,可以把超时时间设长些:
菜单->Tools->Options->Timeout
Scenario->Details,Run-Time Settings->Preferences->Options,有三个代表超时的,HTTP-request connect timeout (sec),HTTP-request receive timeout (sec),Step download timeout (sec)