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基础知识的更多相关文章

  1. Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation

    原文:Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. ...

  2. python学习第九讲,python中的数据类型,字符串的使用与介绍

    目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...

  3. 风炫安全WEB安全学习第十九节课 XSS的漏洞基础知识和原理讲解

    风炫安全WEB安全学习第十九节课 XSS的漏洞基础知识和原理讲解 跨站脚本攻击(Cross-site scripting,通常简称为XSS) 反射型XSS原理与演示 交互的数据不会存储在数据库里,一次 ...

  4. Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

    JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...

  5. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  6. 总结了零基础学习Java编程语言的几个基础知识要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面   初学者先弄清这 ...

  7. [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识

    [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...

  8. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  9. 学习Spring必学的Java基础知识(2)----动态代理

    Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...

随机推荐

  1. 024_mac配置屏保命令

    注意吃饭等离开工位的时候养成随时开启屏保的功能,养成信息保护的好习惯,mac如何配置屏幕保护呢? 一. 通过mac"设置"里的"Desktop & Screen ...

  2. 生成透视列之for xml path

    临时表#t原始数据: 实现如下格式,即根据Province分组,把每个组对应的City列以某种格式展示: 实现方法: select t.Province,(select city+',' From # ...

  3. react給變量賦值并列元素

    今天在使用react時發現一個問題:我在給一個變量賦值多個元素,但不能用div包含起來. 如: var p = <div> <p></p> <p>< ...

  4. Go命令官方指南【原译】

    启动错误报告 编译包和依赖项 删除目标文件和缓存的文件 显示包或符号的文档 打印Go环境信息 更新包以使用新API Gofmt(重新格式化)包源 通过处理源生成Go文件 下载并安装包和依赖项 编译并安 ...

  5. C#两种基本的冒泡排序算法

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  6. 第十三章:UNDO段

    一.UNDO UNDO 段是用于存储还原数据的特殊段,在发生实例故障的时候,UNDO 段用来对数 据进行恢复.本章内容包括介绍 UNDO 段的工作原理,并进行自动和手工的 UNDO 段的管理 1.1 ...

  7. flutter 登录后跳转到根路由

    flutter 登录以后  会有返回箭头显示 因为  路由的切换导致不是路由的第一个页面,解决办法清空路由. Navigator.of(context).pushAndRemoveUntil( new ...

  8. 关于DataTable 判断 列名是否存在的方法中英文符合不区分?

    最近系统出现一个错误,排查了很久,发现判断DataTable 列名是否存在时,发现一个坑,居然不会区分中英文符合. 有谁知道其中的原理?先记录一下,免得以后忘记这个天坑. 一. 先初始化一个DataT ...

  9. LVDS、CVBS

    LVDS(Low Voltage Differential Signaling) 是一种低压差分信号技术接口.它是为克服以TTL电平方式传输宽带高码率数据时功耗大.EMI电磁干扰大等缺点而研制的一种数 ...

  10. jedis keys和scan操作

    关于redis的keys命令的性能问题 KEYS pattern 查找所有符合给定模式 pattern 的 key . KEYS * 匹配数据库中所有 key . KEYS h?llo 匹配 hell ...