1.jmeter概述
1.1什么是jmeter?
Apache开发的基于Java的压力测试工具
100%纯Java开发,完全可移植
可用于测试静态和动态资源。
多协议——http/ftp/socket/Java/数据库(JDBC)
jmeter是完全多线程的,它为用户的并发访问开辟了道路。
高可扩展性
PS:控制台上打印输出:测试计划线程组采样器 beanshell采样器:systemout.print ($ {var})
性能测试流程:
需求分析:熟悉这个项目是做什么的,用户如何操作程序,有哪些关键点,有哪些重要的业务流程。这些都是需求分析中需要做的事情。当我们理解了需求分析,我们就进入了性能指标的制定,例如,response时间。吞吐量就是在这种环境下定义的。为什么药物要定义这些指标?因为我们的性能测试应该有一个目标,因为一个软件总有一个性能瓶颈,我们要定义它。如果满足一百个并发就OK了。前面,我们学习了业务流程和绩效指标。接下来需要做的是剧本开发。你可以写你自己的脚本或者使用工具。工具也有很多选项,看你熟悉哪个工具,比如jmeter,loadrunner等。剧本开发完成后,我们进入场景设置。脚本开发完成后,不能直接应用于性能测试。我们需要有一个调试和设置的过程。场景设置主要与需求分析的第一步有关,符合用户在软件上的使用流程。我们将把这些操作作为性能测试的重点。场景搭建完成后,监控部署,比如服务器硬件、中间件、数据库等。并监视他。只有监控才能发现他的运行状态,为后期调优等提供依据。必须有监控。在监控部署之后,我们将进入测试执行。第一阶段,基础测试,小部分用户会跑到一边看看有没有问题。解决问题后,我们将进入正式的性能测试。绩效执行结束后,我们将进入绩效分析。结合以往的监测数据进行分析。分析结束后,将进入性能调优。性能调优完成后,会进入下一轮性能执行,这是一个循环的过程。
通用系统应用分层:
查看):web、Android、IOS、H5
逻辑控制器):API
数据层(模型):MySQL、MongoDB、Redis
性能指数的定义:
事务:从发起请求到收到服务器响应的闭环。一个事务可能包含多个请求。
TPS(每秒事务数):系统每秒可以处理的事务数。
响应时间:从发起请求到收到服务器返回的响应的闭环开销时间
并发:没有严格意义上的并发,但总有一个并发的顺序。有时间差,可能是一毫秒,一毫秒等。所以并发在时间范围内,比如一秒。
并发用户数:同一公司:从010到31019向系统发起请求的用户数。
吞吐量:性能测试期间网络传输的数据总量。
吞吐率:单位时间内网络上传的数据量。
点击率:表示每秒钟用户向服务器发起的请求数。一次鼠标点击可能发起多个请求,在最好或理想状态下会随着用户数量的增加而上升。
资源利用率:如CPU、内存、网络等。
测试需求分析:
明确测试指标:哪些是关键指标,指标的定义是什么?把定义说清楚,不要有异议。指标的要求是什么?
定义测试场景:紧密联系业务,定义关键业务、指标评审、场景评审、用例评审。
与行业、业务预期进行比较(与产品和市场进行沟通)
性能测试工具的比较:
1.2 JDK安装和版本对应
www.oracle.com/technetwork/java/javase/downloads/index.html JDK下载地址:http://
JDK版本要求:
jmeter 2 . x—最低jdk1.6
jmeter 3.0/3.1——最低jdk1.7
jmeter 3.2/3.3——最低jdk1.8
1.3 JMeter下载和安装n
JMeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
系统需求:Java开发,跨平台
Windows:apache-jmeter-xx.zip
Linux/Mac:apache-jmeter-xx.t
1.4 JDK环境变量配置n
1.4.1右击计算机属性高级系统设置环境变量n
1.4.2新建一个变量JAVA_HOME,将变量值填入jdk安装的D:\Java\jdk1.7.0_76_x64n中。
1.4.3编辑Path变量,在末尾添加% JAVAHOME % \ bin%JAVAHOME%\jre\bin
1.4.4打开cmd,进入javac,验证配置是否成功。
1.5 JMeter环境变量配置
1.5.1右击计算机属性高级系统设置环境变量。
1.5.2新建一个变量JMeter_HOME,并填写JMeter安装的路径,比如D:\apache-jmeter-3.3。
1.5.3编辑Path变量,在末尾添加%JMeter_HOME%\bin。
1.5.4打开cmd,进入jmeter – version,验证安装是否成功。
1.6 jmeter目录介绍
/bin-可执行文件,配置文件
/bin/examples-CSV示例
/bin/报表-模板-报表模板
/bin/templates-脚本模板
/doc-Jmeter API文档
/extras-扩展插件目录并提供对Ant的支持。
/lib-插件目录,存储Jmeter依赖的外部jar。
/lib/ext-Jmeter依赖的核心jar包和插件包
/lib/junit-junit测试脚本
/licenses许可证证书
/Printable _ docs-用户使用
1.7 Jmeter配置文件
jmeter.bat
jmeter.properti
1.8 jmeter主要部件介绍
测试计划测试计划
测试的起点
所有其他组件的容器
用于描述性能测试。
所有内容都基于一个测试。
取样器取样器
真正的工作
将请求发送到服务器,并等待服务器的响应。
根据测试树中的顺序。
由逻辑控制器控制
支持多种协议
支持二次开发
逻辑控制器逻辑控制器
控制取样器发送请求的逻辑和顺序。
控制采样器本身
复杂逻辑模拟
常用:
ForEach控制器、IF控制器、循环控制器、随机控制器、事务控制器、吞吐量控制器
配置元素配置元素
静态数据配置
配置默认属性、信息
不会向服务器发送任何请求。
仅对测试树的分支有效。
把它放在取样器前
一个例外!-用户定义的变量(用户定义的变量)无论这个组件放在哪里,它定义的变量都会被整个线程使用。
1.8.5计时器
设置请求之间的时间间隔时间。
思考时间:定时器,随机定时器
交汇点:同步时间
1.8.6前后处理器
预处理程序
在发送请求之前,应对要发送的请求进行特殊处理,例如样本超时。
后置处理程序
处理采样器发送请求后获得的服务器响应,例如正则表达式提取
1.8.7断言断言
判断取样器工作是否正常。
判断请求响应是否正确。
判断结果是否符合预期。
检查点L相当于LR
常用:jp@gc-JSON路径断言,响应断言,断言时长时间
监听器监听器
收集和整理测试结果。
处理和显示测试结果数据。
生成XML、CSV等文件,供后续分析使用。
常用:绘制结果图、查看结果树、汇总报告、在表格中查看结果以及将响应保存到文件中。
组件执行顺序
组件(配置元素)
预处理器(预处理器)
计时器(定时器)
取样器(取样器)
后处理器(只能在结果可用时执行)
断言(断言,仅在结果可用时执行)
监听器(监听器,仅在结果可用时执行)
组件范围
根据测试计划树形结构中组件的父子关系确定的原则:
采样器:该组件不与其他组件交互,因此不存在范围问题。
逻辑控制器:组件只作用于其子节点中的采样器和逻辑控制器。
除了采样器和逻辑控制器元素,其他六种类型的元素,如果它们是采样器的子元素,将只在其父节点和子节点上工作。
除采样器和逻辑控制器元素外,如果其他六类元素的父节点不是采样器,则它的作用域是所有其他后代节点(包括子节点、子节点的子节点等。)在元素的父节点下。