《JMeter培训教程》PPT课件.ppt

上传人:jun****875 文档编号:8092858 上传时间:2020-03-27 格式:PPT 页数:41 大小:1.48MB
返回 下载 相关 举报
《JMeter培训教程》PPT课件.ppt_第1页
第1页 / 共41页
《JMeter培训教程》PPT课件.ppt_第2页
第2页 / 共41页
《JMeter培训教程》PPT课件.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
JMeter进行接口测试 利用JMeter进行接口测试 JMeter介绍JMeter主要元件参数化设置数据关联Jmeter元件的作用域与顺序 JMeter介绍 JMeter 一个100 的纯Java桌面应用 它是Apache组织的开放源代码项目 它是功能和性能测试的工具 JMeter可以用于测试静态或者动态资源的性能 文件 Servlets Perl脚本 Java对象 数据库和查询 ftp服务器或者其他资源 原先Jmemer是为Web HTTP测试而设计的 但是它已经扩展以支持各种各样的测试模块 它和用于HTTP和SQL数据库 使用JDBC 的模块一起运送 它可以用来测试静止资料库或者活动资料库中的服务器的运行情况 可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力 或者用来分析不同负荷类型下的所有运行情况 它也提供了一个可替换的界面用来定制数据显示 测试同步及测试的创建和执行 JMeter的特性 a 能够对HTTP和FTP服务器进行压力和性能测试 也可以对任何数据库进行同样的测试 通过JDBC b 完全的可移植性和100 纯Java c 完全Swing和轻量组件支持 预编译的JAR使用javax swing 包 d 完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样 e 精心的GUI设计允许快速操作和更精确的计时 f 缓存和离线分析 回放测试结果 g 高可扩展性 h 可链接的取样器允许无限制的测试能力 i 各种负载统计表和可链接的计时器可供选择 j 数据分析和可视化插件提供了很好的可扩展性以及以及个性化 k 具有提供动态输入到测试的功能 包括Javascr pt l 支持脚本变成的取样器 在1 9 2及以上版本支持BeanShell JMeter介绍 Jmeter主要元件 测试计划 TestPlan 是使用JMeter进行测试的起点 它是其它JMeter测试元件的容器 线程组 ThreadGroup 代表一定数量的并发用户 它可以用来模拟并发用户发送请求 取样器 sampler 定义实际的请求内容 被线程组包含 我们主要用HTTP请求 监听器 Listener 逻辑控制器 LogicController 断言 Assertions 配置元件 ConfigElement 前置处理器 PreProcessors 和后置处理器 PostProcessors 定时器 Timer JMeter主要元件介绍 测试计划 测试计划 TestPlan 是使用JMeter进行测试的起点 它是其它JMeter测试元件的容器 名称 你可以为你的测试计划取一个有意义的名字 注释 对测试计划的注释 用户定义的变量 用户可以自己定义变量 在用到此变量的时候直接用 变量名 引用即可 例 变量名 url 值 在需要时直接用 url 即可 Adddirectoryorjartoclasspath 向类路径即 JMETER HOME lib中添加目录及jar包 JMeter主要元件件介绍 线程用户 虽然有三个添加线程组的选项 名字不一样 创建之后 其界面是完全一样的 setupthreadgroup 一种特殊类型的ThreadGroup的 可用于执行预测试操作 这些线程的行为完全像一个正常的线程组元件 不同的是 这些类型的线程执行测试前进行定期线程组的执行 teardownthreadgroup 一种特殊类型的ThreadGroup的 可用于执行测试后动作 这些线程的行为完全像一个正常的线程组元件 不同的是 这些类型的线程执行测试结束后执行定期的线程组 如果您用过junit 想必你不会对setup teardown这陌生 熟悉loadrunner的应该知道 loadrunner的脚本除了action里是真正的脚本核心内容 还有初始化 环境 的初始化脚本和测试完毕后对应的清除信息的脚本块 那么这里setupthreadgroup和teardownthreadgroup就是分别指这两部分 其实从本质上来看 他们并没有什么不同 JMeter主要元件件介绍 线程用户 threadgroup 线程组 这个就是我们通常添加运行的线程 通俗的讲一个线程组 可以看做一个虚拟用户组 线程组中的每个线程都可以理解为一个虚拟用户 线程组中包含的线程数量在测试执行过程中是不会发生改变的 JMeter主要元件介绍 线程组 名称 为线程组起名字 线程属性 线程数 设置发送请求的用户数目 即并发数 线程属性 Ramp UpPeriod insecond 线程间的时间间隔 单位是秒 即所有线程在多少时间内启动 线程属性 循环次数 请求的重复次数 如果选择后面的forever 默认 那么请求将一直继续 如果不选择forever 而在输入框中输入数字 那么请求将重复指定的次数 如果输入1 那么请求将执行一次 如果是0 会出现问题 调度器配置 启动时间 测试计划什么时候启动 启动延迟会覆盖它 调度器配置 结束时间 测试计划什么时候结束 持续时间会覆盖它 调度器配置 持续时间 测试计划持续多长时间 会覆盖结束时间 调度器配置 启动延迟 测试计划延迟多长时间启动 会覆盖启动时间 JMeter主要元件介绍 取样器 HTTP请求 名称 HTTP请求的名字 Web服务器 服务器名称或IP 端口号 脚本录制时自动添加 也可以使用 用户自定义变量 HTTP请求 用默认值即可 同请求一起发送参数 请求中的参数 值可以在此设置 需要用到参数化及动态数据关联 我们在后面专门介绍 同请求一起发送文件 我可以制定同请求一起发送哪个文件 其他任务包括 从HTML文件中获取所有内含的资源 用作监视器 EmbeddedURLsmustmatch JMeter主要元件介绍 监听器 监听器 Listener 负责收集测试结果 同时也被告知了结果显示的方式 我们常用的包括 聚合报告 查看结果树 用表格查看结果 都支持将结果数据写入文件 JMeter主要元件介绍 监听器 查看结果树 JMeter主要组件介绍 监听器 聚合报告 JMeter主要元件介绍 逻辑控制器 逻辑控制器 LogicController 可以自定义JMeter发送请求的行为逻辑 它与Sampler结合使用可以模拟复杂的请求序列 JMeter主要元件介绍 逻辑控制器 循环控制器可以设置请求的循环次数或永远循环 如果选中永远的话 事务控制器可以将多个请求放在同一个事务中 如果选中Gegerateparentsample 则聚合报告中只显示事务控制器的数据 而不会显示其中的各个请求的数据 反之则全部显示 JMeter主要元件介绍 逻辑控制器 条件判断成功 执行其中的内容 可以有多个条件 JMeter主要元件介绍 断言 断言 Assertions 可以用来判断请求响应的结果是否如用户所期望的 它可以用来隔离问题域 即在确保功能正确的前提下执行压力测试 这个限制对于有效的测试是非常有用的 JMeter主要元件介绍 断言 响应断言 断言 Assertions 可以用来判断请求响应的结果是否如用户所期望的 这个限制对于有效的测试是非常有用的 JMeter主要元件介绍 断言 响应断言 包括 返回结果包括你指定的内容 匹配 一般是完全匹配指定的返回内容 Equals 完全匹配 Subring 返回结果是指定结果的字串 包括 匹配 可以使用正则表达式 Equals Substring 使用纯文本 区分大小写 JMeter主要元件介绍 断言 断言结果 JMeter主要元件介绍 配置元件 配置元件 ConfigElement 维护Sampler需要的配置信息 并根据实际的需要会修改请求的内容 JMeter主要元件介绍 配置元件 http请求默认值 用来对所有http请求设定默认值 JMeter主要元件介绍 配置元件 http请求默认值 用来定义已知的变量 比如ip port 用户名密码等 JMeter主要元件介绍 配置元件 CSVDataSetConfig Filename 文件位置及名称 FileEncoding 默认为ANSI 可写为UTF 8 VaribleNames 定义文本文件中的参数名 参数之间逗号分隔 定义后可在脚本在以Shell变量的同样的方式引用 user password Delimiter csv文件分隔符默认逗号 RecycleonEOF True 当读取文件到结尾时 再重头读取文件 False 当读取文件到结尾时 停止读取文件 StopthreadonEOF 当上面为False时起效 True 当读取文件到结尾时 停止进程SharingMode 设置共享 可以设置线程组共享 也可以是所有线程等 JMeter主要组件介绍 前置处理器和后置处理器 前置处理器 PreProcessors 和后置处理器 PostProcessors 负责在生成请求之前和之后完成工作 前置处理器常常用来修改请求的设置 后置处理器则常常用来处理响应的数据 我们主要在动态关联中用到后置处理器的正则表达式提取器 JMeter主要组件介绍 定时器 定时器 Timer 负责定义请求之间的延迟间隔 参数化设置 在HTTP请求中常常会提交一些参数 我们为了不想在每一次请求中都使用相同的参数值 就要想办法让每一次请求的参数的值都是不一样的 我们就需要进行参数化设置 这里我们介绍两种参数化设置的方法 一种是利用函数助手中的 Random函数进行参数化设置 一种是利用配置元件中的CSVDataSetConfig进行参数化设置 参数化设置 函数助手 JMeter中有一个函数助手的功能 里面内置了多个函数 我们可以利用其中的 Random函数来进行请求中的参数化设置 参数化设置 函数助手 选择一个功能 Random 设定最小值为1 设定最大值为100 函数名称设为func1 点击生成将生成一个引用字符串 Random 1 100 func1 在需要的请求参数中拷贝该字符串即可 其中函数名称用来在引用中作区别 即我们可以设定不同的名称在不同的地方引用同一个函数的功能 参数化设置 函数助手 例如 我们生成一个 Random 1 9999 Random 在执行添加类目用例时 生成一个随机数用在类目名称里 动态数据关联 在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据 这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受 在JMeter中采用正则表达式提取器来获取这些动态的数据 正则表达式允许用户从服务器响应中获取数据 作为一个后置处理器 正则表达式提取器会在每一个请求执行后再执行 正则表达式提取请求的参数值 产生模板字符串 并将结果保存到给出的变量中 动态数据关联 正则表达式提取器 在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据 这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受 在JMeter中采用正则表达式提取器来获取这些动态的数据 比如 我们要测试获取菜品列表接口 则要先使用获取菜品类目接口 获取一个类目id 然后用在获取菜品接口上 动态数据关联 正则表达式提取器 要检查的响应字段 一般我们选择主体 即服务器返回给我们的页面主体信息 也可以选择信息头等 引用名称 即参数名称 这个自己定义 在后面时用 正则表达式 括起来的部分就是要提取的 代表任意字符 代表出现任意次 后面加 动态数据关联 正则表达式提取器 模板 1 代表只匹配一组数据 如果需要正则表达式提取两个数据 比如需要两个用 起来的 可以用 1 2 匹配数字 1代表值匹配第一次出现的 正整数都可以使用 1代表获取所有匹配到的 0代表随机 如果设置匹配所有的 可以使用 str 1 str 2 来分别调用第一次匹配到的和第二次匹配到的 参数以数组的形式存储 缺省值 如果都匹配不到 就用这个默认的 使用时就可以使用 category id wm sj 来表示获取到的 动态数据关联 正则表达式提取器 Jmeter元件的作用域与顺序 配置元件 元件会影响其作用范围内的所有元件 前置处理程序 元件在其作用范围内的每一个sampler元件之前执行 定时器 元件对其作用范围内的每一个sampler有效 后置处理程序 元件在其作用范围内的每一个sampler元件之后执行 断言 元件对其作用范围内的每一个sampler元件执行后的结果执行校验 监听器 件收集其作用范围的每一个sampler元件的信息并呈现 Jmeter元件的作用域与顺序 作用域的原则是 取样器 sampler 元件不和其它元件相互作用 因此不存在作用域的问题 逻辑控制器 LogicController 元件只对其子节点中的取样器和逻辑控制器作用 除取样器和逻辑控制器元件外 其他6类元件 如果是某个sampler的子节点 则该元件公对其父子节点起作用 除取样器和逻辑控制器元件外的其他6类元件 如果其父节点不是sampler 则其作用域是http 10 8 8 58 8005 该元件父节点下的其他所有后代节点 包括子节点 子节点的子节点等 Jmeter元件的作用域与顺序 元件的执行顺序 同一作用域名范围内 测试计划中的元件按照如下顺序执行 配置元件前置处理定时器取样器后置处理断言监听 Jmeter元件的作用域与顺序 前置处理器 后置处理器和断言等元件对取样器作用 因此 如果在它们的作用域内没有任何取样器 则不会被执行 如果在同一作用域范围内有多个同一类型的元件 则这些元件按照它们在测试计划中的上下顺序一次执行 JMeter中进行分布式测试 作为一个纯JAVA的GUI应用 JMeter对于CPU和内存的消耗还是很惊人的 所以当需要模拟数以千计的并发用户时 使用单台机器模拟所有的并发用户就有些力不从心 甚至还会引起JAVA内存溢出的错误 不过 JMeter也可以像LoadRunner一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力 并借此来获取更大的并发用户数 我们只需手动配置一下即可 1 在所有期望运行JMeter作为负载产生器的机器上安装JMeter 并确定其中一台机器作为控制器 其他的机器作为代理 然后运行所有代理机器上的JMeter server bat文件 假定我们使用两台机器172 20 80 47和172 20 80 68作为代理 2 在Controller机器的JMeter安装目录下找到bin目录 再找到jmeter properties这个文件 使用记事本或者其他文字编辑工具打开它 3 在打开的文件中查找 remote hosts 这个字符串 你可以找到这样一行 remote hosts 127 0 0 1 其中的127 0 0 1表示运行JMeter代理的机器 这里需要修改为 remote hosts 172 20 80 47 172 20 80 68 4 保存文件 并重新启动控制器机器上的JMeter 并进入启动 远程启动菜单项 就会看到我们刚才添加的两个代理的地址 选中即可运行 如果想同时启动所有代理 选择远程全部启动即可 要进行分布式测试代理机器上需要添加环境变量 即添加用户变量JMETER HOME d jmeter 系统变量中的path中添加d jmeter bin 假设jmeter放在d盘根目录下 谢谢
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!