| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> JMeter使用相关记录 -> 正文阅读 |
|
[开发测试]JMeter使用相关记录 |
使用JMeter也有一阵时间了,一直没有做总结归纳,这次对常用的一些接口自动化、性能测试功能做个记录。 1,下载安装 下载地址:Apache JMeter - Download Apache JMeter JMeter在Mac,Windows均可运行,根据需求选择对应版本即可。 一键式安装,因此具体下载安装步骤不做叙述。 2,语言切换 在Options-Choose Language内可切换语言,非常适合初学者。 3,测试计划,线程组,HTTP请求 ① 刚打开JMeter会有个默认的测试计划。 ② 需要先添加线程组。 ?③ 之后添加取样器-HTTP请求。 ④ 一个线程组内可以有多个请求,运行时会运行整个线程组。如果个别请求不需要运行,可以右键请求将其禁用。 ? ?⑤ HTTP请求内需要填写的内容和常规接口一致: protocol:请求方式,http/https server name or ip:访问ip port:端口号,默认80 method:请求方式 path:访问地址 content encoding:编码,一般为utf-8 parameters:传参 body data:body传参,一般为json格式 files upload:文件上传 ⑥ 运行、停止、清理等按钮 ? 4,HTTP信息头 HTTP信息头对应接口就是接口的header。 可在配置元件内添加,主要添加HTTP信息头内参数,如token等。 5,传参,用户参数 在JMeter中,经常会使用传参,而不是写死某个参数值。 传参使用 ${ }的方式,花括号内为参数名。 也可以添加前置处理器中的用户参数,配合传参使用。 ① 用户参数在前置处理器内。 ② 下图为用户参数和HTTP信息头截图,在用户参数中定义全局的参数,然后在信息头中引用,这样就可以配合传参,也可以一键修改和管理。 6,查看结果树,聚合报告 至此,一个最简单的HTTP请求就写完了,想要查看是否可以跑通,可添加监听器内查看结果树和聚合报告等查看。 ① 在监听器内有许多报告类型。 ② 查看结果树内可设置输出内容存放到文件,也可设置只展示错误/成功日志。? ③ 聚合报告主要是在性能测试中使用的,常用参数如下: samples:样本数 average:平均响应时间 min,max:最小/最大响应时间 error:错误率 throughout:吞吐量,一般单位为 个/秒 同样,聚合参数也可以勾选只展示错误/成功数据。 7,CSV文件参数传递 在性能测试中,我们经常需要模拟客户场景,传一个参数肯定是不够的,此时常用CSV文件来配合传参,用法如下: ① 在配置元件内添加CSV Data Set Config。? ② CSV内常用参数: filename:csv传参文件路径 file encoding:文件编码,默认为utf-8 variable names:参数名,需自定义,传参时使用 ${ XXX } ignore first line:是否忽略第一行(根据csv文件内写法决定,若第一行是参数名,则需要忽略) delimeter:参数分隔方式,如文件中使用的是逗号分隔,则填写逗号;如使用的是tab则填写\t;(如果此文本文件为CSV格式的,默认用英文逗号分隔) allow quoted data:是否允许引用数据(在数据带“ ”时需要配置) recycle on eof:是否循环,True=当读取文件到结尾时,再重头读取文件 stop thread on eof:当 recycle on eof 为False时,即当读取文件到结尾时,停止进程 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 当 recycle on eof 为True时,此项无意义 sharing mode:CSV文件的分享范围 ③ 配套的CSV参数文件中,需填写对应的参数,如下图所示,我写了2个robotId作为demo,在CSV文件中可以每行写1条。 ? ④ 在读取CSV文件后,实际并发时就会根据顺序使用多条数据进行测试,并根据设置的循环条件执行。 8,正则表达式提取器 在实际的接口场景中,有时需要通过获取上一条接口的传参,给到下一条接口作为输入参数,此时我们可以用正则表达式提取器来完成。 ① 在后置处理器中添加?正则表达式提取器。 ② 正则表达式提取器参数详解,我看到大佬一篇较为详细的博文,分享: ③ 如图,我的需求是获取到response中的assetId,并通过传参的方式被下一条接口获取到,参数名为created_assetId。 9,JMeter自带函数 ① JMeter自带较多函数,在如下图中2个位置可以选中。 ② 以时间函数为例,在实际测试中,有时我们的参数值需要传时间戳来避免重复,可以选择time函数。通过点击generate & copy 可以生成函数,可直接在请求中调用,非常方便。 10,BeanShell后置处理器 上面我们提到了正则表达式提取器,但要注意,正则表达式提取器提取出来的内容,只能在当前线程组使用,那么,如果我们有多个线程组,如何使用到其他线程组提取出来的参数呢? 此时我们可以用BeanShell后置处理器将参数设置为全局值,提供给其他线程组使用。 ① 添加后置处理器-BeanShell后置处理器。? ② 之后使用JMeter自带函数,使用setProperty设置值方法。如图,我这儿是把输出了参数login_token 的值。? ③ 然后在BeanShell后置处理器中调用此方法,就可以设置成全局值啦。 ④ 在其他地方使用时,可以使用 __property或__P方法来获取参数。 11,断言 这一块已经有很多大佬写出很详细的文章了,此处添加大佬文章。 12,文件导出 在多个监听器中均可以设置导出文件,需要填写本地已有文件。 13,并发数与并发设置 在线程组中的并发数与并发设置详解如下: number of threads:并发数 ramp-up period:准备时长,即多少秒到达设置的并发数 loop count:循环次数,若选择forever,则一直循环 duration:持续时间,勾选scheduler时生效 startup delay:延迟时间,?勾选scheduler时生效 写的比较流水账,后续持续补充~~~ |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 4:29:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |