找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手
参数化
1、添加前置处理器添加用户参数(表中有多少个参数,线程组里的线程数就改成几个
2、创建JDBC request
3、query type改为select statement
4、参数用'${xx}'来表示
5、示例: select * from表名where字段名= '${字段名};


往数据库插入单个数据
1、创建JDBC request
2、query type: callable statement --插入单个数据
3、parameter values --需要插入的数据
4、parameter types --插入数据对应的数据类型varchar int用integer
5、variable names --插入数据的字段名称
示例: insert into表名(字段名,字段名,字段名)values(???);



往数据库表中插多个值,导入本地文件,并配合参数化
1、在本地创建一个TXT文本来存放插入的数据
2、CSV Data Set Config
3、query type: callable statement
4、parameter values --需要插入的数据用变量引|用${xx},${xxx},${xxx}



性能测试
什么叫做性能测试
1、软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,所以一般来说性能测试介入的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它指标来
衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。
2、指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试


为什么要做性能测试?
1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
2.识别体系中的弱点:受控的负荷可以被增加到一一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3.验证稳定性(resilience) 可靠性(reliability) :在一个生产 负荷下执行测试一定的时间是评估系统稳定性和可靠性 是否满足要求的唯一方法。
4.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。



性能测试的流程有哪些?
需求的分析
性能场景的设计
性能计划的编写
脚本的开发
性能环境和数据的准备
性能的执行
性能结果分析
性能总结报告


性能测试的类型
1、基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
2、负载测试:负载测试是对被测系统不断增加压力(即用户并发数),直至性能指标超过预期或者某项资源使用达到饱和状态(就是加压到系统崩溃)。
3、压力测试:压力测试是系统在- -定饱和状态下, 例如cpu、内存、磁盘I/O在饱和使用情况下,不断给系统施加压力,看系统的处理能力,以及系统是否会出现错误。
4、稳定性测试:稳定性测试是在给系统施加一定压力,持续运行一-段时间 (7*24) ,观察系统能否稳定运行。(也可以说是长时间的压力测试)
5、并发测试:并发测试是模拟多用户并发访问同一个应用、模块或者数据记录时可能发生的性能问题(如内存泄漏、线程锁和资源争用方面的问题)。



jmeter目录介绍以及常见文件
bin目录:核心可执行文件
jmeter.bat: windows启动文件
jmeter-server.bat:分布式压测使用的启动文件
jmeter.properties:核心配置文件
examples (例子) :该目录下存放Jmeter官方给的请求模板
report-template (报告模板) :该目录下存放Jmeter的报告模板
templates (模板) :该目录下存放Jmeter的各类配置模板
例如: JDBC、Beanshell等



jmeter工具并发测试实战(录制完的脚本导入jmeter)
test plan (测试计划) :测试计划是用来描述本次性能测试的需求,所有相关的内容都是基于该测试计划展开的。
thread group (线程组) :线程组可以理解为虚拟用户的组线程组包括哪些内容: 线程数:表示虚拟用户-20个虚拟用户
ramp-up period:用来设置虚拟用户多久时间加载完成-10s、那么表示20个虚拟用户在10s内完成加载,每秒加载2个虚拟用户循环次数:每个线程发送请求的次数为2次、线程循环2次总共循环40次,就是发送了40次请求,时间等于20s



聚合报告:生成此次性能的测试数据报告
Samples:测试一共发出的请求,虚拟用户循环次数
Average:平均响应时间,是单个Request的平均响应时间
Median:中位数,50%用户的响应时间在小于该值,这个值是指把所有数据由小到大将其排列,就是排列在第50%的值。
90%line: 90%用户的响应时间小于该值,这个值是指把所有数据按由小到大将其排列,就是排列在第
90%的值。
Min:最小响应时间
Max:最大响应时间
error%:错误的请求数/请求总数
Throughput:吞吐量--每秒完成的请求数
KB:耗流量,每秒从服务器端接收到的数据量



1、 逻辑控制器:业务上有需要循环去处理一-些数据
2、配置元器件:处理一 些默认请求所需要携带的数据如http的头部信息和cookie信息的处理
3、 前置处理器: http请求之前需要完成的一一些工作,如数据库测试中的连接数据库的功能
4、后置处理器:关联需要用后置处理器,需要对响应数据做处理需要用到后置处理器
5、断言:对结果进行校验
6、 监听器:作用范围的每一个sample元件的信息并呈现。
7、定时器: (重点)



Jmeter元器件中定时器的作用
集合点的概念: loadrunner中集合点可以设置多个虚拟用户等待到一一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作实现性能测试的最终目的。jmeter中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。
1、线程组右键->定时器-> Synchronizing Timer
2、参数设置
a. Number of Simulated Users to Group by:此处填写并发数量
b. Timeout in milliseconds:超时时间设置
Jmeter默认没有超时时间,如果没有设置,- -旦没有达到集结数量的请求系统就- -直等待。
计算超时时间方法参考:并发数量* 1000毫秒/线程数在多少时间启动这么多线程



常见的性能指标(重点)
1、并发用户:即所有的用户在同一时刻做同一件事情或者操作,这种操作- 般指做同一类型的业务、比如调用同一个接口。
2、并发用户数量:在同一时刻与服务器进行交互的在线用户数量。
3、请求响应时间:指的是客户端发出请求后得到响应的整个过程的时间。
4、吞吐量:指的是在一次性能测试过程中网络 上传输的数据量的总和。从业务角度看。吞吐量能够用:请求数/秒、页面数/秒、人数/天等单位来衡量
5、QPS (TPS) :每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。QPS (TPS) =并发数/平均响应时间
6、点击率:每秒钟用户向Web服务器提交的HTTP请求数。



性能调优
1、硬件上的性能瓶颈:
一般指的是CPU、内存、磁盘I/O 方面的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、web服务器等)、应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)。
2、应用软件上的性能瓶颈: ;般指的是应用服务器、web 服务器等应用软件,还包括数据库系统。例如:中间件weblogic 平台上配置的JDBC连接池的参数设置不合理,造成的瓶颈。
3、应用程序上的性能瓶颈:-般指的是开发人员新开发出来的应用程序。例如,程序架构规划不合理,程序本身设计有问题(串行处理、请求的处理线程不够),造成系统在大量用户方位时性能低下而造成的瓶颈。



4、操作系统上的性能瓶颈:
-般指的是windows、UNIX、 Linux等操作系统。例如,在进行性能测试,出现物理内存不足时,虚拟内存设置也不合理,虚拟内存的交换效率就会大大降低,从而导致行为的响应时间大大增加,这时认为操作系统上出现性能瓶颈。
5、网络设备上的性能瓶颈:
一般指的是防火墙、 动态负载均衡器、交换机等设备。例如,在动态负载均衡器上设置了动态分发负载的机制,当发现某个应用服务器上的硬件资源
已经到达极限时,动态负载均衡器将后续的交易请求发送到其他负载较轻的应用服务器上。在测试时发现,动态负载均衡器没有起到相应的作用,这时可以认为网络瓶颈。



常用的性能指标插件
1. jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表)聚合报告里, Throughput是按请求个数来展示的,比如说1.9c,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表
2. jp@gc - Composite Graph:混合图表在它的Graphs里面可以设置多少个图表一起展示, 它可以同时展示多个图表
3. jp@gc - Hits per Second:每秒点击量
4. jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory, Network,I/O等等
5. jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间
6. jp@gc - Reponse Times Distribution:显示测试的响应时间分布, X轴显示由时间间隔分组的响应时间,Y轴包含每个区间的样本数
7. jp@gc - Transactions per Second:每秒事务数, 服务器每秒处理的事务数





分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册