LoadRunner 多用户并发 登录,上传数据,登出的脚本教程
2017-10-16 16:24
597 查看
这里记录 Web/Http 模式,模拟多用户并发进行 : 登录,上传数据,退出登录一整套流程。并发的用户量多少,可自定义。这里不介绍录屏的方式,是自己写脚本去执行的。
1.安装loadRunner.
2.在安装目录的bin 文件夹下,找到 LRLauncherApp.exe,双击打开。
下面这个弹框,直接cancel,因为我们不采用录屏的方式,自己写脚本去执行。
3.在左侧,可以看到几个文件列表。
vuser_init :执行开头的脚本 :一般写是用户登录(or 录制)过程的脚本
action: 操作间的脚本 :一般写是用户操作(or 录制)过程的脚本
vuser_end:执行结束的脚本 : 一般写是用户退出登录(or 录制)过程的脚本
.ok,直接贴脚本代码,并解释:
5.用户上传数据:
这里业务设计逻辑是:用户先上传数据元信息,数据分配id后,再根据分配的id,进行upload数据。故,有2个POST请求:
脚本:
好吧,解释都在注释中了,其他也没啥说的了
6.登出。 vuser_end文件中:
7.脚本写好了,开始运行:先点他,执行一遍,看是否有错。
没问题后,开始自动执行:
.
最后:点击这里:开始执行。
edit by tangyuan。thanks
1.安装loadRunner.
2.在安装目录的bin 文件夹下,找到 LRLauncherApp.exe,双击打开。
下面这个弹框,直接cancel,因为我们不采用录屏的方式,自己写脚本去执行。
3.在左侧,可以看到几个文件列表。
vuser_init :执行开头的脚本 :一般写是用户登录(or 录制)过程的脚本
action: 操作间的脚本 :一般写是用户操作(or 录制)过程的脚本
vuser_end:执行结束的脚本 : 一般写是用户退出登录(or 录制)过程的脚本
.ok,直接贴脚本代码,并解释:
vuser_init() { web_custom_request("login.json", "URL=http://www.test.com/web/login.json", "Method=POST", "TargetFrame=", "Resource=0", "RecContentType=application/json", "Referer=http://www.test.com/web/login", "Snapshot=t3.inf", "Mode=HTML", "EncType=application/x-www-form-urlencoded; charset=UTF-8", //"Body={\"username\":\"admin\",\"password\":\"admin`12\",\"rememberme\":false}", "Body={\"username\":\"{usernames}\",\"password\":\"admin`12\",\"rememberme\":false}", LAST); return 0; }
vuser_init 文件中代码:因模拟多用户并发登录,故需传入不同的用户名及密码,如上代码注释掉的,我们选中 用户名的值 admin ,右键,选择 Replace with a Parameter。输入参数名称,选择Properties,选择用户名dat文件所在位置。注意:用户名与密码是
一一对应的,所以构建用户名密码的dat文件时,注意匹配。usernamefor55.dat 是dat格式的文本文件,内容如下图所示:我这里的测试数据,用户名不一样,但密码都一样,所以密码就没有参数化了。
5.用户上传数据:
这里业务设计逻辑是:用户先上传数据元信息,数据分配id后,再根据分配的id,进行upload数据。故,有2个POST请求:
脚本:
Action() { lr_think_time(5); //思考时间,模拟人在真实操作时的停顿时间。 web_reg_save_param("childID","LB=childID\":\"","RB=\"}","Search=Body",LAST); //利用该方法,截取web/mycontent/datas.json 响应结果的内容中的id值,并以参数childID表达。LB表示待截取值左边的字符,LR表示其右边的字符。 web_custom_request("datas.json", "URL=http://www.test.com/web/mycontent/datas.json", "Method=POST", "TargetFrame=", "Resource=0", "RecContentType=application/json", "Referer=http://192.168.112.100:8090/web/mycontent/datas", "Snapshot=t6.inf", "Mode=HTML", "EncType=application/x-www-form-urlencoded; charset=UTF-8", "Body={\"fileName\":\"test.csv\",\"type\":\"CSV\",\"coordType\":\"WGS84\",\"dataMetaInfo\":{\"fileEncoding\":\"UTF-8\",\"xField\":null,\"yField\":null}}", // Body传入的是POST请求的请求体。 对于" 号,前面需要\进行转义。 LAST); lr_think_time(5); web_submit_data("upload.json", "Action=http://www.test.com/web/mycontent/datas/{childID}/upload.json", //{childID} 传入的是上面 截取的响应id值。 "Method=POST", "EncType=multipart/form-data", "TargetFrame=", "RecContentType=application/json", "Referer=http://192.168.112.100:8090/web/mycontent/datas", "Snapshot=t7.inf", "Mode=HTML", ITEMDATA, "Name=uploadFile", "Value=D://wujr//createdata//testdata//标注点.csv", "File=Yes", ENDITEM, //Value=??对应的待上传文件的绝对路径。 LAST); return 0; }
好吧,解释都在注释中了,其他也没啥说的了
6.登出。 vuser_end文件中:
vuser_end() { web_custom_request("logout", "URL=http://www.test.com/security/logout", "Method=GET", "Resource=0", "RecContentType=text/html", "Referer=", "Mode=HTTP", "EncType=application/x-www-form-urlencoded; charset=UTF-8", LAST); return 0; }
7.脚本写好了,开始运行:先点他,执行一遍,看是否有错。
没问题后,开始自动执行:
.
最后:点击这里:开始执行。
edit by tangyuan。thanks
相关文章推荐
- Retrofit+RxJava+OkHttp封装类请求接口数据→原生登录,注册,个人信息页+设置用户头像(图片上传或拍照)+SharedPreferences保存信息+Fresco加载图片+Mvp分层
- 限制用户多点并发登录之二——“脚本”
- Git安装、配置、上传公钥、测试登录及clone库(用户教程)
- Retrofit+RxJava+OkHttp封装类请求接口数据→原生登录,注册,个人信息页+设置用户头像(图片上传或拍照)+SharedPreferences保存信息+Fresco加载图片+Mvp分层
- Android登录界面之用户数据保存+服务器上传
- ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取
- 限制用户多点并发登录之二“脚本”篇
- wordpress二次开发教程手记:站点用户数据共享后的登录问题
- Loadrunner:win10下Vuser 运行脚本通过,Controller执行用户并发报错
- loadrunner 当有用户登录失败时,重新执行登录脚本
- 限制用户多点并发登录之二“脚本”篇
- Java模拟高并发上传数据
- 利用系统自带脚本utlsampl.sql创建scott用户及样本数据
- spring security(七) session 并发,一个用户在线后其他的设备登录此用户失败
- 大数据IMF 传奇 8台设备如何实现免密码的SSH登录呢 ?脚本分发 解决方案
- iOS开发中本地数据存储的 ios登录成功后将用户的数据存储到本地 下次打开应用时不用重复登录了
- ubuntu中用户的删除,虚拟终端登录的用户如何登出
- python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)
- 汇编:用户登录以及简单数据加密
- 上传数据脚本