摘要: LR运行结果有两种: 原始结果,LR result files analysis处理之后的结果,analysis session files analysis会生成简单的概要报告和模板,提供了分析选项做测试数据的分析: summary report,概要报告,包含大量测试数据 SLA分析工具,自己设 阅读全文
posted @ 2020-08-16 22:47 hjy1995 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 联机负载 又叫分布式负载,是为了解决单台负载机的资源有限的限制问题。 LR分布式负载的实现: 前提: 控制机和负载机、负载机和被测服务器的网络是连通的。 负载机上安装了LR或者Load Generator组件。 操作:在负载机上,启动Loadrunner Agent的服务,方式有两种: Loadru 阅读全文
posted @ 2020-08-16 22:45 hjy1995 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 场景Scenairo 在LR中,场景是通过Controller组件来创建、设置、执行的。 脚本是模拟的单个用户的行为,而场景模拟的是多个用户的行为,是多个用户执行 相同/不同 的脚本的情形。 在性能测试过程中,一般来说,场景分为两种类型: 单一场景:只会运行一种业务请求脚本。 目的在于测试极端的场景 阅读全文
posted @ 2020-08-16 22:44 hjy1995 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 思考时间 思考时间是用来模拟用户请求之间的延迟的。 LR中,是通过思考时间函数+设置来实现的:lr_think_time() 思考时间本身是不会影响脚本的功能实现。 思考时间的意义在于:当虚拟用户数保持不变的情况下,调节对服务器的压力。 一般来说,对于模拟在线用户负载的情况,建议添加思考时间,这样对 阅读全文
posted @ 2020-08-16 22:41 hjy1995 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 事务 事务的引入是用来度量业务请求的响应时间以及对应的tps的。 在LR中,要实现事务,只需要掌握两个事务函数即可: lr_start_transaction(); 开始计时。 lr_end_transaction(); 结束计时。 右键->insert->start transaction/end 阅读全文
posted @ 2020-08-16 22:40 hjy1995 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 关联 header、body在generation log中,所有数据都是按时间的先后,分块排列的。块是以**开头,以$$$$$$结尾的 方法一 在LR中,视图模式切换到tree模式。 tree模式下,切换到recording snaphost和http view模式下。 找到需要设置关联的url、 阅读全文
posted @ 2020-08-16 22:38 hjy1995 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 脚本增强的总结 1、脚本采用录制还是抓包手写没有本质的区别。 ​ 2、脚本增强技术,一般事务和检查点是属于必加的。 ​ 3、从理论上来说,参数化和关联是要根据实际情况灵活使用的。 ​4、要根据需要,灵活的选择使用思考时间和集合点技术。 参数化 三种方式: 选中需要参数化的值,右键-->replace 阅读全文
posted @ 2020-08-16 22:36 hjy1995 阅读(280) 评论(0) 推荐(0) 编辑
摘要: Vugen 录制的基本步骤 new 选择协议 选择录制选项 开始录制 Tools-->Regenerate script 该选项是用来根据录制信息,按照当前的录制选项来重新生成脚本的。 常用用途: 脚本恢复。 更改录制选项之后重新生成脚本。 Vugen的三个选项 Recording options: 阅读全文
posted @ 2020-08-16 22:35 hjy1995 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 安装 https://blog.csdn.net/qq_37674858/article/details/79746605?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonec 阅读全文
posted @ 2020-08-16 22:32 hjy1995 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 理发师模型 从队列论的角度来解释和描述负载测试过程中,系统是如何处理请求的。 理发师模型:核心原则就是队列论,即任何事情都需要排队等待。 计算机从最底层就是按照队列思想来设计的,比如说CPU时间片轮转机制。 理发师模型就是形象具体的来演示系统处理请求的过程。 负载模型 从负载用户、TPS和响应时间的 阅读全文
posted @ 2020-08-16 22:31 hjy1995 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 性能测试分析的原则: 性能测试分析建立在足够充分、正确的测试数据基础上,有以下要求 有独立的测试环境:软硬件和网络环境 正确适用的性能测试脚本 合理的性能测试场景 监控系统资源 性能测试分析、定位建立在对被测系统的充分了解 了解操作系统的基本知识 了解被测系统的架构设计 了解被测系统的具体实现:操作 阅读全文
posted @ 2020-08-16 22:29 hjy1995 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 性能测试文档主要是指性能测试计划&方案、性能测试报告的编写。 性能测试计划&方案:性能测试计划和方案放在一个文档编写。 通常包含以下要点: 概述:简单的描述一下本次测试相关的信息、比如说为什么做测试?测试的目的、文档的受众等。 项目背景:直接从项目计划文档中复制即可。但是建议加上本次测试的原因 测试 阅读全文
posted @ 2020-08-16 22:28 hjy1995 阅读(937) 评论(0) 推荐(0) 编辑
摘要: 性能测试技术可以分为三块: 用户行为模拟:通过性能测试技术去创建虚拟用户模拟用户行为,用户行为模拟分为两块: 脚本:需要关注一下几种重要的处理机制: 不同户的不同请求,即逻辑相同,数据不同(参数化) 处理请求之间的依赖关系(关联) 模拟用户的延迟和并发(思考时间和集合点) 场景:脚本是根据场景的需求 阅读全文
posted @ 2020-08-16 22:26 hjy1995 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 一个完成的性能测试流程包含以下步骤: 前期分析、测试计划、测试方案、测试环境搭建、测试数据准备、测试脚本开发、场景的设计、实现和执行、性能监控、分析结果、定位瓶颈、性能调优、回归测试和性能测试报告 前期分析 前期分析包括:系统分析、业务分析、需求分析 系统分析 要从系统的层面对被测系统进行分析工作, 阅读全文
posted @ 2020-08-16 22:25 hjy1995 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 一、下载安装 下载地址:jmeter-plugins.org 安装:下载后文件为plugins-manager.jar格式,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。 启动jemter,点击 选项 --> Plugins Manager 下载插件,下载好之后重启 阅读全文
posted @ 2020-08-16 22:23 hjy1995 阅读(153) 评论(0) 推荐(0) 编辑
摘要: Java同步工具类 CountDownLatch(闭锁) CyclicBarrier(栅栏) Semaphore(信号量) 为了能够更好控制线程之间的通讯问题 CountDownLatch CountDownLatch是一个同步的辅助类,允许一个或多个线程一直等待,直到其它线程完成它们的操作 它常用 阅读全文
posted @ 2020-08-16 22:17 hjy1995 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 线程池简介 如果没有使用线程池,会为每个请求都开一个新的线程,虽然理论上是可以的,但是会有缺点: 线程生命周期的开销非常高。每个线程都有自己的生命周期,创建和销毁线程所花费的时间和资源可能比处理客户端的任务花费的时间和资源更多,并且还会有某些空闲线程也会占用资源。 程序的稳定性和健壮性会下降,每个请 阅读全文
posted @ 2020-08-16 22:15 hjy1995 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 造成死锁的原因可以概括成三句话: 当前线程拥有其他线程需要的资源 当前线程等待其他线程已拥有的资源 都不放弃自己拥有的资源 避免死锁可以概括成三种方法: 固定加锁的顺序(针对锁顺序死锁) 开放调用(针对对象之间协作造成的死锁) 使用定时锁-->tryLock() 如果等待获取锁时间超时,则抛出异常而 阅读全文
posted @ 2020-08-16 22:09 hjy1995 阅读(70) 评论(0) 推荐(0) 编辑
摘要: Lock显式锁是一个接口 Lock方式来获取锁支持中断、超时不获取、是非阻塞的 提高了语义化,哪里加锁,哪里解锁都得写出来 Lock显式锁可以给我们带来很好的灵活性,但同时我们必须手动释放锁 支持Condition条件对象 允许多个读线程同时访问共享资源 Synchronized锁经过优化之后,现在 阅读全文
posted @ 2020-08-16 22:08 hjy1995 阅读(118) 评论(0) 推荐(0) 编辑
摘要: synchronized是一种互斥锁 一次只能允许一个线程进入被锁住的代码块 synchronized是一种内置锁/监视器锁 Java中每个对象都有一个内置锁(监视器,也可以理解成锁标记),而synchronized就是使用对象的内置锁(监视器)来将代码块(方法)锁定的 synchronized锁作 阅读全文
posted @ 2020-08-16 22:06 hjy1995 阅读(156) 评论(0) 推荐(0) 编辑