性能测试学习第一天-----概念、环境、LR录制&参数化
1.性能测试的概念:
通过一定的手段,在多并发情况下,获取被测系统的各项性能指标, 验证被测系统在高并发下的处理能力、响应能力、稳定性等,能否满足预期。定位性能瓶颈,排查性能隐患,保障系统的质量,提升用户的体验。
2.什么样的系统需要做性能测试:
用户量大,PV比较高的系统
系统核心模块/接口
业务逻辑/算法比较复杂
促销/活动推广计划
技术选型
容量评估
新项目、新系统
3.性能测试指标
TPS/QPS 每秒处理的事务数 TPS越高,吞吐量越大,正比例关系。 TPS=1s/响应时间*并发数=并发数/响应时间
响应时间 网络传输的总时间+各组件业务处理时间
平均响应时间
TOP响应时间:将所有请求的响应时间从大到小排序,计算指定比例的请求都是小于某个时间。
tp90:90%的请求响应时间临界值,都小于它。
tp95:95%的请求响应时间临界值,都小于它。
tp99:99%的请求响应时间临界值,都小于它。
并发数/虚拟用户(Vuser):
成功率:
PV(page view)/UV(unique visitor):页面、接口的访问量/页面、接口的每日唯一访客(用户日活量)
吞吐量: 网络中上行和下行的流量综合,吞吐量代表网络的流量
总结:在系统达到瓶颈之前,TPS和并发数策划那个正比关系,和响应时间呈反比关系。
4.性能测试流程
需求调研:项目背景、测试范围、业务逻辑&数据流向、系统架构、配置信息、测试数据量、外部依赖、系统使用场景,业务比例、日常业务量、预期指标、上线时间
测试计划:项目描述、业务模型及性能指标、测试环境说明、测试资源、测试方法及场景设计原则(基准测试、单交易负载测试、混合场景测试、高可用性测试、异常场景测试、稳定性测试、其他特殊场景)、测试进度安排及测试准则
环境搭建:原则--测试机器硬件配置尽量与线上一致,系统版本与线上一致,测试环境部署线上最小单元模块,应用、中间件、数据库配置要与线上一致,其他特殊配置
数据准备:业务接口---适合数据表关系复杂的,优点:数据完整性比较好,存储过程---适合表数量少,简单,有点:速度快,脚本导入---适合数据逻辑复杂,自由度比较高,注意数据量级:测试数据+基础数据
测试脚本:选择工具、协议、参数化、关联、检查点、事物判断
压测执行:分布式执行,监控(linux、中间件、数据库),收集测试结果,数据分析,瓶颈定位
调优回归:性能调优、反复尝试、回归验证、监控工具、全链路排查、日志分析、模块隔离
5.常用工具
loadrunner---功能强大、重量级、商业软件收费
jmeter----小巧灵活、轻量级、开源
Ngrinder--平台级产品、开源
6.入门学习环境搭建(以一个web项目OA系统为例子练习)
1.安装VirtualBox,下载winXP虚拟系统快照文件(已装LR11);
2.启动VirtualBox,新建32位XP系统虚拟机--选择已有文件,设置共享文件夹E:\\share--新增固定分配位置;
3.开启虚拟机,从我的电脑-网络驱动器-共享文件里拷贝出jdk、mysql(typical-standard-密码123456)、navicat、apache-tomcat,然后在32位XP系统安装好,配置jdk环境变量,向数据库中导入oa系统sql,讲oa项目代码移动至tomcat下webapps目录下,修改 OA\WEB-INF\classes\jdbc.properties 文件中的用户名和密码,设置为 mysql 的用户名和密码;
4. 双击运行 apache-tomcat-7.0.6\bin\startup.bat
5. 在浏览器里打开 http://localhost:8080/TestOA/userAction_loginUI.action
6. 在登录页输入用户名/密码:admin/1234,即可登录成功。
7.LR三大组件
virtual user generator:脚本生成器,录制编写脚本
controller:调度压力机、场景管理、展示性能图表、监控等
analysis:对测试数据进行分析
8.脚本录制和回放
新建script---options设置recording:HTML-base script--》advance脚本类型修改为第二项urls only ---advance:utf-8----开始录制。完成后回放
tools-generation options-display--勾选第一项,可展示浏览器运行过程。
9.参数化
随机数:random number,例如:编辑内容
唯一数:unique number,全局唯一,分block块儿,例如:user1-user10,长度依次取0-10%,10%-20%......默认设置start:1,block:100,那么第二个值从101开始取
文件: file.dat 最常用,例如:登录账号、id之类的
组合 | Sequential | Random | Unique |
each iteration |
结果:分别将15条数据写入数据表中
功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条
|
结果:表中写入15条数据,但可能有重复数据出现
功能说明:每次从参数化文件中随机选择一行数据进行赋值
|
结果:分别将15条数据写入数据表中
功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。
注:如果设置迭代次数为16次。结果:在执行第16次迭代时会抛异常,异常日志可在LoadRunner的回放日志(replayLog)中看到
|
each occurance |
结果:分别将15条数据写入数据表中
功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条
|
结果:表中写入15条数据,但可能有重复数据出现
功能说明:每次从参数化文件中随机选择一行数据进行赋值
|
结果:分别将15条数据写入数据表中
功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。
注:如果设置迭代次数为16次,而参数化文件中只有15条数据,明显数据不够。此时可以设置“when out of values”属性来判断当数据不够时的处理方式
Abort Vuser:中断虚拟用户
Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。
Countinue with last value:继续用最后一条数据
|
once |
结果:表中写入15条一模一样的数据。
功能说明:每次迭代都取参数化文件中第一行的数据。
|
结果:表中写入15条相同数据
功能说明:第一次迭代时随机从参数化文件中取一行数据,后面每次迭代都用第一次迭代的数据。
|
结果:表中写入15条相同数据
功能说明:每次都取参数文件中的第一条数据进行赋值
|
性能测试学习第一天-----概念、环境、LR录制&参数化的更多相关文章
- Python学习第一弹——Python环境搭建
一.Python简介: Python,是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有 ...
- django 学习第一天搭建环境
目前django版本是1.10,我学习的基础教材是 Web Development with Django Cookbook, Second Edition 搭建好配置环境 ssh免认证登录 修改一下 ...
- python学习第一天_环境的搭建
Python linux环境的安装: 1.https://www.python.org/ftp/python/ 大家可以在这里下载自己所需的linux下的版本 ,这里我下载的2.6.6版本: 2.在C ...
- locust 性能测试学习 第一天
不废话 1.安装python库 pip install locustio pip install pyzmq 2.脚本 命名为locust_test.py from locust import Htt ...
- 性能测试学习第八天-----linux环境整合篇
- Elasticsearch7.X 入门学习第一课笔记----基本概念
原文:Elasticsearch7.X 入门学习第一课笔记----基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...
- 一、Android学习第一天——环境搭建(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第一天——环境搭建 Android 开发环境的搭建 ...
- Java 学习第一步-JDK安装和Java环境变量配置
Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09 Java SE 阿超 9046 views Java作为当下很主流的编程语言,学习Java的朋 ...
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
随机推荐
- 1.Actor编写-ESGrain与ESRepGrain
ESGrain 生命周期 Ray中ESGrain继承自Grain扩展了Grain的生命周期.Grain的生命周期参见文档附录:1-Grain生命周期-译注.md ESGrain重写了Grain的OnA ...
- GPS常识-A版(详)
第一章 绪论 1.简述GPS系统的特点有哪些? GPS在测绘工程中应用的优点 P13 ●定位精度高 应用实践证明,相对静态定位1小时以上观测解,其平面位置:在300-1500m范围内,绝对误差小于1m ...
- 洛谷 P1970 花匠
题目描述 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希望剩下的花排列得比较别致. 具体而 ...
- 网页学习:day1
初始准备: Write some function Write a titie Write a article Write some button Button function写法: functio ...
- Redis(二)--- Redis的底层数据结构
1.Redis的数据结构 Redis 的底层数据结构包含简单的动态字符串(SDS).链表.字典.压缩列表.整数集合等等:五大数据类型(数据对象)都是由一种或几种数结构构成. 在命令行中可以使用 OBJ ...
- linux初学者-软件安装与管理篇
linux初学者-软件安装与管理篇 在linux的学习和工作中需要安装许多的软件.在redhat的linux操作系统下,软件一般都是rpm格式的.以下将介绍一些软件安装和管理的内容. 1.软件名称 在 ...
- 关于 64位系统 java连接access 报错java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
报错的原因是url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=E:/公司/2000.mdb"; 这样是不行 ...
- 使用GDAL实现DEM的地貌晕渲图(三)
目录 1. 原理 1) ArcMap生成彩色晕渲图 2) 彩色色带赋值 3) 颜色叠加 2. 实现 3. 结语 4. 参考 1. 原理 之前在<使用GDAL实现DEM的地貌晕渲图(一)>和 ...
- jsp数据交互(一).1
一.jsp中java小脚本1.<% java代码段%>2.<% =java表达式%>不能有分号3.<%!成员变量和函数声明%>二.注释1.<!--html注释 ...
- springboot-rabbitMQ
作者:纯洁的微笑出处:http://www.ityouknow.com/ 版权所有,欢迎保留原文链接进行转载:) RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息 ...