这里记录 Web/Http  模式,模拟多用户并发进行  : 登录,上传数据,退出登录一整套流程。并发的用户量多少,可自定义。这里不介绍录屏的方式,是自己写脚本去执行的。

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

LoadRunner 多用户并发 登录,上传数据,登出的脚本教程的更多相关文章

  1. HTTP上传数据 :表单,二进制数据(multipart/form-data application/octet-stream boundary)

    使用WinINet 一个较简单的例子:上传头像 void CBackstageManager::UpdateAvatarThreadProc(LPVOID params) { stForThread* ...

  2. TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)[转]

    TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub) Git-1.7.11-preview+GitExtensions244SetupComplete+T ...

  3. Streamr助你掌控自己的数据(1)——教你5分钟上传数据至Streamr

    博客说明 所有刊发内容均可转载但是需要注明出处. 教你5分钟上传数据至Streamr 本系列文档主要介绍怎么通过Streamr管理自己的DATA,整个系列包括三篇教程文档,分别是:教你5分钟上传数据至 ...

  4. Loadrunner上传文件与下载文件脚本

    Loadrunner上传文件与下载文件脚本 一. 上传脚本 Action() { int uploadImgStatus = 0; //获取上传产品图ID web_reg_save_param_ex( ...

  5. 微信的API都是通过https调用实现的,分为post方法调用和get方法调用。不需要上传数据的采用get方法(使用IntraWeb开发)

    首先需要明确的是,微信的API都是通过https调用实现的,分为post方法调用和get方法调用.不需要上传数据的采用get方法(例如获取AccessToken),而需要向微信服务器提交数据的采用po ...

  6. 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件

    [源码下载] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

  7. Amzon MWS API开发之 上传数据

    亚马逊上传数据,现有能操作的功能有很多:库存数量.跟踪号.价格.商品....... 我们可以设置FeedType值,根据需要,再上传对应的xml文件即可. 下面可以看看FeedType类型 这次我们拿 ...

  8. Amazon MWS 上传数据 (三) 提交请求

    前面介绍了设置服务和构造请求,现在介绍提交请求. 上传数据,查询上传操作的工作状态,和处理上传操作返回的报告操作使用的Amazon API 分别为:SubmitFeed(),FeedSubmissio ...

  9. Amazon MWS 上传数据 (二) 构造请求

    上一篇文章提到了Amazon 上传数据有三个步骤,但是每个步骤都需要构造服务和构造请求,服务是一样的,请求各不相同:这个很容易理解,这三个步骤都需要和Amazon服务器交互,所以他们的服务构造是一样的 ...

随机推荐

  1. Java多线程技术:实现多用户服务端Socket通信

    目录 前言回顾 一.多用户服务器 二.使用线程池实现服务端多线程 1.单线程版本 2.多线程版本 三.多用户与服务端通信演示 四.多用户服务器完整代码 最后 前言回顾 在上一篇<Java多线程实 ...

  2. Spring Cloud 整合分布式链路追踪系统Sleuth和ZipKin实战,分析系统瓶颈

    导读 微服务架构中,是否遇到过这种情况,服务间调用链过长,导致性能迟迟上不去,不知道哪里出问题了,巴拉巴拉....,回归正题,今天我们使用SpringCloud组件,来分析一下微服务架构中系统调用的瓶 ...

  3. excel导出csv包括逗号等的处理

    /** * @Title: trimRubbishChar * @Description: 导出的时候需要对一格的内容进行检查,看是否有非法字符,以免串行 * @Since: 2016年8月2日 下午 ...

  4. Docker - 解决运行容器报 WARNING: IPv4 forwarding is disabled. Networking will not work. 的问题

    问题背景 执行运行容器的命令 docker run -d -uroot -p 8080:8080 --name jenkins2 -v /var/jenkins_node/:/var/jenkins_ ...

  5. [MIT6.006] 21. Daynamic Programming III: Parenthesization, Edit Distance, Knapsack 动态规划III:括号问题,编辑距离,背包问题

    这节课主要针对字符串/序列上的问题,了解如果使用动态规划进行求解.上节课我们也讲过使用前缀和后缀的概念,他们如下所示: 接下来,我们通过三个问题来深入了解下动态规划使用前缀.后缀和子串怎么去解决括号问 ...

  6. rootfs如何取消登录超时

    一种简便的办法,在etc/inittab文件中,增加一行::respawn:-/bin/login.之后当登录超时后,还会在进入到登录界面,就不会出现登录超时后无法在登录的问题了. #first:ru ...

  7. Vue-router插件使用

    单页面原理 Vue是单页面开发,即页面不刷新. 页面不刷新,而又要根据用户选择完成内容的更新该怎么做?Vue中采用锚点来完成. 如访问http://127.0.0.1#/index就是主页,而访问ht ...

  8. DockerInstall

    1.安装Tomcat 2.安装mysql [1].pull [root@pluto tomcat7logs]# docker pull mysql:5.6 [root@pluto tomcat7log ...

  9. [原题复现]BJDCTF2020 WEB部分全部解

    简介  原题复现:https://gitee.com/xiaohua1998/BJDCTF2020_January  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学 ...

  10. 攻克solo第六课(大调音阶与真的爱你)

    在本期文章中,笔者将通过guitar pro7和大家分享大调音阶的知识. 不知道大家有没有试着使用my song book里面的谱子,反正笔者是觉得赚大了,并且找了囊括民谣.爵士到摇滚在内不同风格的谱 ...