性能测试学习 第九课--LR12中controller基础知识
1、设计手工场景,理解集合点的策略
2、添加load generator
一、controller基础知识
1.controller的原理
通过场景设计来模拟用户的真实操作并调用vugen中的脚本,然后通过设置压力机产生压力,在场景运行中实时监控用户的执行情况,tps、响应时间、吞吐量、服务器资源使用情况
二、contrller
1.功能截图介绍



2.为什么java vuser协议以进程跑?
java vuser协议以线程跑,发现压力根本上不去,还需要实际操作进行研究。
3.创建集合点(实际性能测试的时候,使用集合点的情况不多,因为还没到这种轮番请求的测试场景之前,服务器一般已经扛不住一般的性能测试场景了)
1)在事物前一行右键,【insert】→【rendezvous】

2)如图,创建成功

2)回到contoller软件,重新选择想要压测的脚本,让集合点生效,进行集合点设置


3)集合点策略的三种方式

第一种:当X%个用户到达集合点时释放;
第二种:当X%个当前的并发用户到集合点时释放,类似于分批对服务器产生压力,看服务器的及时处理能力;
第三种:当X个用户到达集合点时释放
4)作用:1)模拟瞬间的并发,2)主要用于这种秒杀场景
登录脚本代码:

Action()
{
lr_save_string("120.78.128.25:8765","IP");
//关联登录成功
web_reg_save_param_ex(
"ParamName=success",
"LB=<p class=\"success\">",
"RB=</p>",
//"DFEs=test",
//"NotFound=warning",
"Ordinal=1",
//"SaveOffset=2",
//"SaveLen=3",
SEARCH_FILTERS,
"Scope=ALL",
//"RelFrameID=1",
//"RequestUrl=testURL",
//"ContentType=text/html",
LAST ); //登录成功
lr_rendezvous("登录");//创建集合点 lr_start_transaction("登录成功"); web_submit_data("web_submit_data",
"Action=http://{IP}/Frontend/Index/login",
"Method=POST",
"TargetFrame=",
"RecContentType=application/json, text/javascript, */*; q=0.01",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"Referer=http://{IP}/Index/login.html",
"Snapshot=t22.inf",
"Mode=HTML",
ITEMDATA,
"Name=phone", "Value=13825161923", ENDITEM,
"Name=password", "Value=lemon123", ENDITEM,
"Name=vcode", "Value=", ENDITEM,
"Name=remember_me", "Value=1", ENDITEM,
"Name=notify_url", "Value=", ENDITEM,
LAST ); //判断是否登录成功
//strcmp(str1,str2):比较两str的大小
lr_convert_string_encoding(lr_eval_string("{success}"),"utf-8",NULL,"Success"); //将乱码的“登录成功”转码为汉字格式
if(strcmp(lr_eval_string("{Success}"),"登录成功")==0)
{
lr_end_transaction("登录成功",LR_PASS);
lr_output_message("本次登录状态是:%s",lr_eval_string("{Success}"));
}
else
{
lr_end_transaction("登录成功",LR_FAIL);
} return 0;
}

4.添加压力机,点击下拉框,添加后,在name框中输入压力机的ip


5.如何测试压力机是否连接成功?

6.如何确认服务器的最大并发数?
Edit Action设置,通过设置间隔时间跟每次间隔时间的增加数量,不断提高并发数,以此来观察服务器资源使用情况,当资源使用率 达到最高点时,基本得出服务器的最大并发范围,不至于随意压测将服务崩掉。


7.如何造场景数据?比如:50个用户迭代100,形成5000条数据
1)先设置迭代次数,比如100

2)然后设置并发数50,
3)最后得到50*100条数据


三、遇到问题
1、在刚使用lr时,勾选了红色框百分比,在后续使用中发现如下问题

勾选之后的界面,多了百分比,没有localhost,不能对集合点进行设置,因为是置灰的


性能测试学习 第九课--LR12中controller基础知识的更多相关文章
- Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation
原文:Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. ...
- python学习第九讲,python中的数据类型,字符串的使用与介绍
目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...
- 风炫安全WEB安全学习第十九节课 XSS的漏洞基础知识和原理讲解
风炫安全WEB安全学习第十九节课 XSS的漏洞基础知识和原理讲解 跨站脚本攻击(Cross-site scripting,通常简称为XSS) 反射型XSS原理与演示 交互的数据不会存储在数据库里,一次 ...
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- 总结了零基础学习Java编程语言的几个基础知识要点
很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面 初学者先弄清这 ...
- [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
[源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...
- 第76节:Java中的基础知识
第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...
- 学习Spring必学的Java基础知识(2)----动态代理
Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...
随机推荐
- MSYS 编译 nginx rtmp-module
1. 下载源码 http://hg.nginx.org/nginx nginx-c74904a17021.zip https://github.com/arut/nginx-rtmp-module n ...
- string format的各类格式及用法
数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4} $12.3656 货币 "¥{0:N2}" ¥12.36 ...
- 【原创】Linux基础之vi
vi配置文件 ~/.vimrcor/etc/vimrc 模式 命令模式(Command Mode) 1 上/下/左/右移动光标 i/k/j/l 2 跳到文件末尾 G 3 跳到文件开头 gg 4 向下搜 ...
- C#来操作Word
创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设置页眉.页码: 插入图片,设置图片宽高以及给图片添加标题: 插入表 ...
- 在ubuntu18 安装nginx过程,以及遇到的错误!
1.下载 nginx下载的地址:https://nginx.org/en/download.html 2.解压 指定一个目录下面放置下载的文件,然后解压文件 命令:tar zxvf nginx-1.6 ...
- Scyther-Semantics and verification of Security Protocol
1 .本书前一节主要是介作者自己的生平经历(读完感觉作者是个神童),目标明确作者13岁代码已经写的很溜了.自己也开了网络公司,但是后面又专注于自己的计算机基础理论,修了哲学的博士学位(不得不说很多专业 ...
- linux 大杂烩
1.linux mysql输错命令 mysql命令行中执行多行命令时,如果前边输入的命令发生错误,是很令人头疼的事情,可以通过输入\c来取消前边的输入,重新进入“mysql->”提示符. 2.l ...
- 解决idea server 控制台乱码问题
如果网上其他方式不奏效,可尝试下面方法: 找到tomcat 的配置文件:"D:\Program Files\apache-tomcat-9.0.17\conf\logging.propert ...
- MyCat全局表和ER--笔记(三)
全局表 全局表的作用 在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,考虑到字典表具有以下几个特性: 变动不频繁 数据量总体变化不大 数据规模 ...
- 关于spring的自动注入
关于spring的自动注入 spring里面可以设置BeanDefinition自动注入类型,默认为AUTOWIRE_NO(不进行自动注入).mybatis里面的扫描接口生成MapperFactory ...