赞
踩
Apache JMeter™ 应用程序是开源软件,一个 100% 纯 Java 应用程序,旨在加载测试功能行为和测量性能 。它最初是为测试 Web 应用程序而设计的,但后来扩展到其他测试功能。
Apache JMeter 可用于测试静态和动态资源、Web 动态应用程序的性能。
它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。
Apache JMeter 功能包括:
下载地址:Apache JMeter - Download Apache JMeter
安装要求:·
解压后,目录结构:
Jmeter bin目录文件讲解
要运行 JMeter,请运行 jmeter.bat
(对于 Windows)或 jmeter
(对于 Unix)文件。这些文件位于 bin 目录中。执行后,会出现JMeter GUI。
GUI 模式只能用于创建测试脚本,CLI 模式(非 GUI)必须用于负载测试
方式一:控制台修改(临时性显示为中文,下次在打开Jmeter还是默认显示问英文):菜单栏 -> options -> choose language -> Chinese(Simplified)
方式二:配置文件修改(永久性显示问中文样式):Jmeter的安装目录-> bin目录 -> jmeter.properties文件-> 使用记事本打开-> #language=en修改为language=zh_CN
测试计划是使用JMeter进行测试的起点,它是其它JMeter测试 元件的容器。
线程数:模拟用户并发数(虚拟用户数)。一个虚拟用户占用一个进程或线程。
Ramp-Up时间(秒):设置的虚拟用户数需要多长时间全部启动。如果线程数为10 ,准备时长为20 ,那么需要20秒钟启动10个线程。也就是每2秒钟启动1个线程。
循环次数:每个线程发送请求的次数。如果线程数为10 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等。
负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。
允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
6.1 响应断言
用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
Apply to:指定断言作用范围。关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,就有main sample 和 sub-sample之分了。
Main sample and sub-samples:匹配范围包括当前父取样器并覆盖至子取样器
Main sampie only:匹配范围是当前父取样器
Sub-samples only:仅匹配子取样器
JMeter Variable Name to use:支持对JMeter变量值进行匹配
测试字段:针对响应数据的不同部分进行匹配
①响应文本:响应服务器返回的文本内容
②响应代码:匹配响应代码,比如返回代码“200”表示成功
③响应信息:匹配响应信息,比如处理成功返回“成功”字样
④响应头:匹配响应中的头信息
⑤请求头:请求中的头信息
⑥URL样本:匹配URL链接
⑦文档(文本):对文档内容进行匹配
⑧忽略状态:当第一个断言失败时可以忽略
⑨请求数据:请求数据
模式匹配规则:
①包括:响应内容包括需要匹配的内容即代表响应成功
②匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,不区分大小写,支持正则
③相等:响应内容要完全等于需要匹配的内容才代表响应成功,区分大小写,匹配内容是字符串非正则表达式
④字符串:响应内容包含需要匹配的内容才代表响应成功,区分大小写,匹配内容是字符串非正则表达式
⑤否:反转检查结果,用于表示不包含,不匹配,不等于,没有和模式字符串相匹配的字符串。若匹配成功则返回失败
⑥或者: 一个断言可以添加多个“要测试的模式”。使用OR选项后,只要其中有1个模式匹配,断言将会成功。不选择“OR”时将默认为AND选项,必须所有模式都匹配,断言才会成功。
测试模式:输入结果期望值(空格要去掉)。这里填写我们要进行断言的内容,可以添加多个模式,可以使用变量、文本、正则表达式(在“包括”和“匹配”模式下)。
6.2 JSON断言
- JSON断言:书写格式为 $.msg
- $表示根 也就是{
- .表示子 也就是{下的元素
- {
- "msg":成功,
- "state":b,
- "data":[
- {
- "name":"测试",
- "age":"12"
- }
- ]
- }
注释:需要勾选上Additionally assert value,并填写上需要断言的内容,否则只检测是否有msg这个属性,有就返回ture,不会对内容做判断
若需要获取content,则修改为$.content (获取所有content)
若需要获取A的所有子类,则修改为$…A(获取所有的所有子类)
若只需要获取A的第二个子类,则修改为$…A[1],
当然也可以这样写:$.content.data.allCitySearchLabels.A[1].id,这样便能获取所有A类第二个的ID
6.3 XPath断言
书写格式为 //a[@name =“tj_trnews”]
其中,//表示相对路径,a表示标签,[]里面放谓词,@name="tj_trnews"表示属性,多个属性用 and、or表示。如果查看结果树使用XPath Tester显示时,记得勾选上return entire XPath fragment instead of text content,否则结果会显示失败。
断言结果监听器: 线程组-> 添加 -> 监听器 -> 断言结果
里面的内容是sampler采样器的名称
断言失败,查看结果树任务结果颜色标红(通过结果数里面双击不通过的记录,可以看到错误信息)
负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。
维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
web服务器:
默认协议:http
默认端口:80
服务器名称或IP :请求的目标服务器名称或IP地址
路径:服务器URL
Use multipart/from-data:当发送POST请求时,使用Use multipart/from-data方法发送,默认不选中。(如服务器支持,不进行勾选也可以)
对结果进行收集
以上一个简单的实例完成,更多的功能可以参考文档:
Apache JMeter™ | JMeter 官方帮助文档中文版 (xiniushu.com)
5.1 执行顺序
jmeter测试计划脚本呈树形结构排列,元件的执行顺序是先执行根节点,再执行子节点。在同一层次中,各个元件的执行顺序逻辑:
5.2 取样器(Sampler)
取样器执行jmeter的实际请求交互工作。Apache JMeter提供了一些案例:https://jmeter.apache.org/usermanual/component_reference
http取样器
1.testplan -> add -> threads->thread g roup
2.thread group -> add-> Sampler -> http reqeust (填入参数)
3.thread group -> add ->listener -> view results tree
4.http request -> add ->assertions -> response assertion
5.view results tree -> start
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。