




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JmeterJmeter 中的几个重要测试指标释义中的几个重要测试指标释义 Aggregate Report 是 JMeter 常用的一个 Listener 中文被翻译为 聚合报告 今天再次 有同行问到这个报告中的各项数据表示什么意思 顺便在这里公布一下 以备大家查阅 如果大家都是做 Web 应用的性能测试 例如只有一个登录的请求 那么在 Aggregate Report 中 会显示一行数据 共有 10 个字段 含义分别如下 Label 每个 JMeter 的 element 例如 HTTP Request 都有一个 Name 属性 这里显示的就 是 Name 属性的值 Samples 表示你这次测试中一共发出了多少个请求 如果模拟 10 个用户 每个用户迭代 10 次 那么这里显示 100 Average 平均响应时间 默认情况下是单个 Request 的平均响应时间 当使用了 Transact ion Controller 时 也可以以 Transaction 为单位显示平均响应时间 Median 中位数 也就是 50 用户的响应时间 90 Line 90 用户的响应时间 Note 关于 50 和 90 并发用户数的含义 请参考下文 Min 最小响应时间 Max 最大响应时间 Error 本次测试中出现错误的请求的数量 请求的总数 Throughput 吞吐量 默认情况下表示每秒完成的请求数 Request per Second 当使用 了 Transaction Controller 时 也可以表示类似 LoadRunner 的 Transaction per Second 数 KB Sec 每秒从服务器端接收到的数据量 相当于 LoadRunner 中的 Throughput Sec 一 基本概念 1 测试计划是使用 JMeter 进行测试的起点 它是其它 JMeter 测试元件的容器 2 线程组 代表一定数量的并发用户 它可以用来模拟并发用户发送请求 实际的请求内容在 Sampler 中定义 它被线程组包含 可以在 测试计划 添加 线程组 来建立它 然后在线 程组面板里有几个输入栏 线程数 Ramp Up Period in seconds 循环次数 其中 Ramp Up Period in seconds 表示在这时间内创建完所有的线程 如有 8 个线程 Ramp Up 200 秒 那么线程的启动时间间隔为 200 8 25 秒 这样的好处是 一开始不会对服务器有太大的负载 线程组是为模拟并发负载而设计 3 取样器 Sampler 模拟各种请求 所有实际的测试任务都由取样器承担 存在很多种请 求 如 HTTP ftp 请求等等 4 监听器 负责收集测试结果 同时也被告知了结果显示的方式 功能是对取样器的请求结果 显示 统计一些数据 吞吐量 KB S 等 6 断言 用于来判断请求响应的结果是否如用户所期望 是否正确 它可以用来隔离问题域 即在确保功能正确的前提下执行压力测试 这个限制对于有效的测试是非常有用的 7 定时器 负责定义请求 线程 之间的延迟间隔 模拟对服务器的连续请求 5 逻辑控制器 允许自定义 JMeter 发送请求的行为逻辑 它与 Sampler 结合使用可以模拟复 杂的请求序列 8 配置元件维护 Sampler 需要的配置信息 并根据实际的需要会修改请求的内容 9 前置处理器和后置处理器负责在生成请求之前和之后完成工作 前置处理器常常用来修改请 求的设置 后置处理器则常常用来处理响应的数据 二 Jmeter 报告 转载 1 Aggregate Report 解析 Aggregate Report 是 JMeter 常用的一个 Listener 中文被翻译为 聚合报告 今天再次 有同行问到这个报告中的各项数据表示什么意思 顺便在这里公布一下 以备大家查阅 如果大家都是做 Web 应用的性能测试 例如只有一个登录的请求 那么在 Aggregate Report 中 会显示一行数据 共有 10 个字段 含义分别如下 Label 每个 JMeter 的 element 例如 HTTP Request 都有一个 Name 属性 这里显示的就 是 Name 属性的值 Samples 表示你这次测试中一共发出了多少个请求 如果模拟 10 个用户 每个用户迭代 10 次 那么这里显示 100 Average 平均响应时间 默认情况下是单个 Request 的平均响应时间 当使用了 Transact ion Controller 时 也可以以 Transaction 为单位显示平均响应时间 Median 中位数 也就是 50 用户的响应时间 90 Line 90 用户的响应时间 Note 关于 50 和 90 并发用户数的含义 请参考下文 Min 最小响应时间 Max 最大响应时间 Error 本次测试中出现错误的请求的数量 请求的总数 Throughput 吞吐量 默认情况下表示每秒完成的请求数 Request per Second 当使用 了 Transaction Controller 时 也可以表示类似 LoadRunner 的 Transaction per Second 数 KB Sec 每秒从服务器端接收到的数据量 相当于 LoadRunner 中的 Throughput Sec 基本知识 1 吞吐量 是指在没有帧丢失的情况下 设备能够接受的最大速率 2 存储的最小单位是字节 Byte 对于存储单位 有以下几个单位 GB MB 和 KB 那么这三者 之间的换算关系是 1GB 1024MB 1MB 1024KB 1KB 1024Bytes Bit 位 称为 bit 也就是比特 有的时候也称为位 一个字节为 8 位二进制表示 Byte 字节 一个字节就是 8 比特 3 Mbps million bits per second 兆位 秒 代表每秒传输 1 000 000 比特 该缩写用来 描述数据传输速度 例如 4Mbps 每秒钟传输 4M 比特 数据传输速率的单位 字母 b bit 是比特和字母 B Byte 是字节 4 吞吐量与带宽的区分 吞吐量和带宽是很容易搞混的一个词 两者的单位都是 Mbps 先让我 们来看两者对应的英语 吞吐量 throughput 带宽 Max net bitrate 当我们讨论通信链 路的带宽时 一般是指链路上每秒所能传送的比特数 我们可以说以太网的带宽是 10Mbps 但 是 我们需要区分链路上的可用带宽 带宽 与实际链路中每秒所能传送的比特数 吞吐量 我们倾向于用 吞吐量 一次来表示一个系统的测试性能 这样 因为实现受各种低效率因 素的影响 所以由一段带宽为 10Mbps 的链路连接的一对节点可能只达到 2Mbps 的吞吐量 这样 就意味着 一个主机上的应用能够以 2Mbps 的速度向另外的一个主机发送数据 5 方差和标准差都是用来描述一组数据的波动性的 集中还是分散 标准差的平方就是方差 方差越大 数据的波动越大 三 利用 BadBoy 生成测试计划 测试脚本 badBoy 可以非常容易的生成 web 的测试脚本 类似与 LoadRunner 的使用 输入站点的 URL 点 击 Record 开始录制 File Export to Jmeter 导出为 Jmeter 认识的测试脚本 四 一个简单的测试示例思路 目前自己思路 不断改进 a 需要的 测试脚本 对应 web 的应用使用 badboy 生成测试脚本 直接导入 Jmeter 进 行配置 b 如图 TestPlan 是整个 Jmeter 测试执行的容器 ThreadGroup 模拟请求 定义线程数 Ramp Up Period 循环次数 Step1 循环控制器 控制 Sample 的执行次数 Sample 取样器 决定进行那种类型的测试 如 http ftp 等 监听器 图形结果 聚合报告 定时器 Random 类型 定义线程请求的延迟 c 聚合报告的解释 Label 各个模拟测试的名称 Samples 各个测试的样本总数 Average 每个请求的平均响应时间 Median 中值 即 50 请求的平均响应时间 90 Line 90 请求的响应时间 Min 最小响应时间 Max 最大的响应时间 Error 错误响应的概率 即无法响应的概率 ThroughPut 吞吐量 默认情况下表示每秒完成的请求数 Request per Second KB Sec 每秒从服务器端接收到的数据量 五 Jmeter 常见问题 转载 itemid 84094 说明 这些问答是从网上转载的 自己修改了其中的一些内容 如果大家兴趣 可以将大家在 使用 Jmeter 的时候碰到的问题写下来 我们一起补充到这个问答里面 共同努力完善 jmeter 的资料 1 JMeter 的工作原理是什么 向服务器提交请求 从服务器取回请求返回的结果 2 JMeter 的作用 JMeter 可以用于测试静态或者动态资源的性能 文件 Servlets Perl 脚本 java 对象 数 据库和查询 ftp 服务器或者其他的资源 JMeter 用于模拟在服务器 网络或者其他对象上 附加高负载以测试他们提供服务的受压能力 或者分析他们提供的服务在不同负载条件下的总 性能情况 你可以用 JMeter 提供的图形化界面分析性能指标或者在高负载情况下测试服务器 脚本 对象的行为 3 怎样能看到 jmeter 提供的脚本范例 在 JMeter jakarta jmeter 2 0 3 xdocs demos 目录下 4 怎样设置并发用户数 选中可视化界面中左边树的 Test Plan 节点 单击右键 选择 Add Thread Group 其中 Numbe r of Threads 参数用来设置发送请求的用户数目 5 JMeter 的运行指示 Jmeter 在运行时 右上角有个单选框大小的小框框 运行是该框框为绿色 运行完毕后 该框 框为白色 6 User Parameters 的作用是什么 提高脚本可用性 7 在 result 里会出现彩色字体的 http response code 说明什么呢 Http response code 是 http 返回值 彩色字体较引人注目 可以使用户迅速关注 象绿色的 3 02 就说明在这一步骤中 返回值取自本机的 catch 而不是 server 8 8 怎样计算怎样计算 Ramp upRamp up periodperiod 时间 时间 Ramp upRamp up periodperiod 是指每个请求发生的总时间间隔 单位是秒 如果是指每个请求发生的总时间间隔 单位是秒 如果 NumberNumber ofof ThreadsThreads 设置为设置为 5 5 而 而 Ramp upRamp up periodperiod 是是 1010 那么每个请求之间的间隔就是 那么每个请求之间的间隔就是 1010 5 5 也就是 也就是 2 2 秒 秒 Ramp upRamp up perper iodiod 设置为设置为 0 0 就是同时并发请求 就是同时并发请求 9 Get 和 Post 的区别 他们是 http 协议的 2 种不同实现方式 Get 是指 server 从 Request URL 取得所需参数 从 res ult 中的 request 中可以看到 get 可以看到参数 但是 post 是主动向 server 发送参数 所以 一般看不到这些参数的 10 哪些原因可能导致 error 的产生 a Http 错误 包括不响应 结果找不到 数据错误等等 b JMeter 本身原因产生的错误 11 为什么 Aggregate Report 结果中的 Total 值不是真正的总和 JMeter 给结果中 total 的定义是并不完全指总和 为了方便使用 它的值表现了所在列的代表 值 比如 min 值 它的 total 就是所在列的最小值 下图就是 total 在各列所表示的意思 12 JMeter 的 Thread Number 是提供多个不同用户并发的功能么 不是 Thread Number 仅仅是指并发数 如果需要实现多个不同用户并发 我们应该采用其它 方法 比如通过在 jmeter 外建立 csv 文件的方法来实现 13 同时并发请求时 若需要模拟不同的用户同时向不同的 server 并发请求 怎样实现呢 方法很灵活 我们可以将不同的 server 在 thread 里面预先写好 或者预先将固定的变量值写 入 csv 文件 这样还可以方便修改 然后将文件添加到 User Parameters 14 User Parameter 中的 DUMMY 是什么意思 当其具体内容是 CSVRead property user dir FILENAME next 时用来模拟读文 件的下一行 15 当测试对象在多 server 间跳转时 应该怎样处理 程序运行时 有些 http 和隐函数会携带另外的 server IP 我们可以从他们的返回值中获取 16 为何测试对象是 http 和 https 混杂出现 Https 是加密协议 为了安全 一般不推荐使用 http 但是有些地方 使用 https 过于复杂或 者较难实现 会采用 http 协议 17 Http 和 https 的默认端口是什么 Apache server Http 的默认端口是 80 SSL Https 的默认端口是 443 18 为何在 run 时 有些页面失败 但是最后不影响结果 原因较多 值得提及的一种是因为主流页面与它不存在依赖关系 所以即使这样的页面出错 也不会影响运行得到正常结果 但是这样会影响到测试的结果以及分析结果 19 为什么脚本刚开始运行就有错误 其后来的脚本还可运行 在 Thread Group 中有相关设置 如果选择了 continue 即使前面的脚本出现错误 整个 threa d 仍会运行直到结束 选择 Stop Thread 会结束当前 thread 选择 Stop Test 则会结束全部的 thread 推荐选项是 Stop Thread 20 在 Regular expression r Extractor 会看到 Template 的值是 1 这个值是什么意思呢 1 是指取第一个 里面的值 如果 Regular expression r 的数值有多个 用这种方法可以 避免不必要的麻烦 21 Regular expression r 中的 是什么意思 那是一个正则表达式 regular expression r 等同于 sql 语言中的 表示可有可 无 表示 0 个或多个 表示需要取值 表达任意长度的字符串 22 在读取 Regular expression r 时要注意什么 一定要保证所取数值的绝对唯一性 23 怎样才能判断什么样的情况需要添加 Regular expression r Extractor 检查 Http Request 中的 Send Parameters 如果有某个参数是其前一个 page 中所没有给出的 就要到原文件中查找 并添加 Regular expression r Extractor 到其前一 page 的 http reque st 中 24 在自动获取的脚本中有时会出现空的 http request 是什么意思呢 是因为在获取脚本时有些错误 是脚本工具原因 在 run 时这种错误不参与运行的 25 在运行结果中为何有 rate 为 N A 的情况出现 可能因为 JMeter 自身问题造成 再次运行可以得到正确结果 26 常用 http 错误代码有哪些 400 无法解析此请求 403 禁止访问 访问被拒绝 404 找不到文件或目录 405 用于访问该页的 HTTP 动作未被许可 410 文件已删除 500 服务器内部错误 501 标题值指定的配置没有执行 502 Web 服务器作为网关或代理服务器时收到无效的响应 27 Http request 中的 Send Parameters 是指什么 是指 code 中写定的值和自定义变量中得到的值 就是在运行页面时需要的参数 28 Parameters 在页面中是不断传递的么 是的 参数再产生后会在页面中一直传递到所需页面 所以我们可以在动态参数产生时捕获它 也可以在所需页面的上一页面捕获 但是这样可能有错误 最好在产生页面获取 29 在使用 JMeter 测试时 是完全模拟用户操作么 造成的结果也和用户操作完全相同么 是的 JMeter 完全模拟用户操作 所以操作记录会全部写入 DB 在运行失败时 可能会产生错 误数据 这就取决于脚本检查是否严谨 否则错误数据也会进入 DB 给程序运行带来很多麻烦 六 Jmeter 测试心得 转载 企业应用开发过程中 性能测试是很重要的一个环节 在这个环节中 Apache 的 JMeter 以它开 源 100 纯 Java 操作方便等优点发挥着很大的作用 经过一段时间的使用 多少有些心得和技巧 拿出来共享 希望能有些帮助 1 制作测试脚本 手工制作测试脚本 需要你知道请求的 url 和携带的参数等等 太花费时间 所以可以用 badboy 工具录制脚本 这个工具虽然不是开源的 但是却可以用来免费的录制成 j mx 的脚本 使用起来很方便 官方网站是 au 2 出现乱码了 在用 JMeter 发行 HTTPRequest 时 在请求参数中有中文时 发现存储到 DB 中后 相应的字段 是乱码 明明在参数后面的 Encode 选项中打了 V 后来发现 badboy 录制脚本的时候并没有记录编码方 式 所以修改脚本 在 Content encoding 中设置正确的编码方式就不会出现乱码了 3 JMeter 的妙用 准备测试数据 要求性能测试开始前 先准备 5W 条数据 当然可以通过直接修改 DB 但是如果这 5W 条数据涉 及到很多表的关联 甚至还要通过存储过程的处理怎么办 直接修改 DB 很容易出现错误的数据 要是在客户的机器 上弄错 可就闯祸了 这时候想到了 JMeter 它本来是用来模拟大量用户并发请求的 现在用它来批量的生成数据吧 如果要求每条数据都不同 就要修改脚本 使用 JMeter 的函数来动态产生数据 比较常用的是 CSVRead 函数 记不住名的话 Ctrl F 可以呼唤出函数助手 使用这个函数的时候需要注意几点 首先是 csv 文 件的编码格式 使用 ansi 没有问题 使用 unicode 时会使读取的第一行数据出现错误 CSVRead data txt 0 读取本行的第一列值 CSVRead data txt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河北秦皇岛市公安局留置支队招聘警务辅助人员32人笔试备考试题及答案解析
- 2025餐饮企业供应链管理保密及竞业限制合同范本
- 2025年羽毛球公开赛场地租赁与赛事安全保障执行合同
- 2025年新型节能住宅工程劳务分包合同(附带碳排放达标协议)
- 2025年校园门卫安全职责履行与综合能力考核合同
- 2025高端医疗设备安装与维护服务合同
- 2025年度绿色环保装修材料供应服务框架合同
- 2025年高效光伏储能系统设计、施工与运营管理合同
- 2025年高端医院病房楼租赁与运营管理协议
- 2025年专业健身房运动器材设备采购及售后服务保障协议
- 外研版英语四年级下册阅读理解练习(含答案)
- DZT 0447-2023 岩溶塌陷调查规范(1:50000)
- 电子版简易防水合同范本
- 医院传染病防控管理SOP
- 内分泌科制度
- 甲状腺健康科普宣传课件
- 消防验收监理评估报告
- 山西省洪洞西区块勘查实施方案
- 消防维保施工组织方案
- 小额贷款信贷风险管理制度样本
- 《饮食文化》课程标准
评论
0/150
提交评论