猫扑网站开发的游戏,贵阳网站建设端觉,被邀请做刷客会不会碰到钓鱼网站,软件技术服务包括哪些内容一. JMeter介绍 1. 什么是JMeter#xff1f; Apache JMeter™ 应用程序是开源软件#xff0c;一个 100% 纯 Java 应用程序#xff0c;旨在加载测试功能行为和测量性能 。它最初是为测试 Web 应用程序而设计的#xff0c;但后来扩展到其他测试功能。 2. JMeter能做啥#x…一. JMeter介绍 1. 什么是JMeter Apache JMeter™ 应用程序是开源软件一个 100% 纯 Java 应用程序旨在加载测试功能行为和测量性能 。它最初是为测试 Web 应用程序而设计的但后来扩展到其他测试功能。 2. JMeter能做啥 Apache JMeter 可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载以测试其强度或分析不同负载类型下的整体性能。
Apache JMeter 功能包括
能够加载和性能测试许多不同的应用程序/服务器/协议类型 Web - HTTP、HTTPSJava、NodeJS、PHP、ASP.NET...SOAP / REST Web 服务FTP通过 JDBC 的数据库LDAP通过 JMS 的面向消息的中间件 (MOM)邮件 - SMTP(S)、POP3(S) 和 IMAP(S)本机命令或 shell 脚本TCPJava 对象功能齐全的测试 IDE允许快速记录测试计划从浏览器或本机应用程序、构建和调试。CLI 模式命令行模式以前称为 Non GUI/无头模式 可从任何 Java 兼容操作系统Linux、Windows、Mac OSX 等进行负载测试完整且 可随时呈现的动态 HTML 报告能轻松从最流行的响应格式 HTML 、 JSON 、 XML 或 任何文本格式 中提取数据完全的可移植性和 100% Java 纯度。完整的多线程框架允许多个线程同时采样和不同线程组同时采样不同功能。缓存和离线分析/重放测试结果。高度可扩展的核心 可插拔采样器允许无限的测试能力。可编写脚本的采样器与 Groovy 和 BeanShell 等 JSR223 兼容的语言可以使用 可插入计时器 选择几个负载统计信息。数据分析和 可视化插件 允许很好的可扩展性和个性化。函数可用于为测试提供动态输入或提供数据操作。通过 Maven、Gradle 和 Jenkins 的 3 rd方开源库轻松实现持续集成。
3. 下载Apache JMeter 下载地址Apache JMeter - Download Apache JMeter 安装要求·
JMeter是基于jdk运行的因此要先安装javajava8或更高版本JMeter默认以1GB的堆运行可通过修改配置文件进行调整
解压后目录结构 Jmeter bin目录文件讲解
jmeter.bat: Windows启动文件jmeterMac或者linux启动文件jmeter-serverMac或者Liunx分布式压测使用的启动文件jmeter-server.bat:Windows分布式压测使用的启动文件jmeter.properties:配置文件
4. 运行JMeter
要运行 JMeter请运行 jmeter.bat对于 Windows或 jmeter对于 Unix文件。这些文件位于 bin 目录中。执行后会出现JMeter GUI。
GUI 模式只能用于创建测试脚本CLI 模式非 GUI必须用于负载测试
5. 中文设置 方式一控制台修改临时性显示为中文下次在打开Jmeter还是默认显示问英文菜单栏 - options - choose language - ChineseSimplified 方式二配置文件修改永久性显示问中文样式Jmeter的安装目录- bin目录 - jmeter.properties文件- 使用记事本打开- #languageen修改为languagezh_CN
二、核心组件
1. 测试计划 测试计划是使用JMeter进行测试的起点它是其它JMeter测试 元件的容器。 2. 线程组 线程数模拟用户并发数虚拟用户数。一个虚拟用户占用一个进程或线程。 Ramp-Up时间秒设置的虚拟用户数需要多长时间全部启动。如果线程数为10 准备时长为20 那么需要20秒钟启动10个线程。也就是每2秒钟启动1个线程。 循环次数每个线程发送请求的次数。如果线程数为10 循环次数为100 那么每个线程发送100次请求。总请求数为10*1001000 。如果勾选了“永远”那么所有线程会一直发送请求一到选择停止运行脚本。 3. 取样器Sampler 模拟各种请求。所有实际的测试任务都由取样器承担存在很多种请求。如HTTP 、ftp请求等等。
4. 监听器 负责收集测试结果同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据吞吐量、KB/S……等。 5. 逻辑控制器 允许自定义JMeter发送请求的行为逻辑它与Sampler结合使用可以模拟复杂的请求序列。
6. 断言 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表示标签[]里面放谓词nametj_trnews表示属性多个属性用 and、or表示。如果查看结果树使用XPath Tester显示时记得勾选上return entire XPath fragment instead of text content否则结果会显示失败。
断言结果监听器: 线程组- 添加 - 监听器 - 断言结果 里面的内容是sampler采样器的名称 断言失败查看结果树任务结果颜色标红(通过结果数里面双击不通过的记录可以看到错误信息) 7. 定时器 负责定义请求线程之间的延迟间隔模拟对服务器的连续请求。 8. 配置元件 维护Sampler需要的配置信息并根据实际的需要会修改请求的内容。 9. 前置处理器和后置处理器 负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置后置处理器则常常用来处理响应的数据。 三、实战使用
1. 新增测试计划 2. 新增线程组 3. HTTP请求 web服务器 默认协议http 默认端口80 服务器名称或IP 请求的目标服务器名称或IP地址 路径服务器URL Use multipart/from-data当发送POST请求时使用Use multipart/from-data方法发送默认不选中。如服务器支持不进行勾选也可以 4. 新增监听器
对结果进行收集 以上一个简单的实例完成更多的功能可以参考文档
Apache JMeter™ | JMeter 官方帮助文档中文版 (xiniushu.com)
5. 其它 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