JMeter自动化工具

  • 介绍
    • 优缺点
      • 优点
      • 缺点
  • 安装
  • 启动
  • 项目基本测试
    • 前言
    • 测试
    • 新建线程组
    • 新建HTTP请求
    • 并行和串行执行结果
      • 并行执行
      • 串行执行
    • 测试执行的优先级
    • 线程组设置介绍
    • 设置HTTP默认属性值
  • api新增测试
    • 单条数据新增
    • 变量的设置
  • api批量数据新增
    • csv批量新增
    • 设置用户参数批量新增
  • 函数设置
    • 计数器函数
    • 随机数函数
    • 时间函数

介绍

JMeter是Apache下的一个使用Java语言开发的自动化测试工具。主要用于服务器、网络以及对象模拟巨大负载,并且还可以使用自带有断言的脚本验证程序是否能够返回期望的结果,下面链接为JMeter的官网文档地址

https://jmeter.apache.org/usermanual/get-started.html

优缺点

优点

(1)JMeter是一个开源并且免费的自动化测试工具
(2)JMeter支持跨平台 并且支持多协议
(3)小巧实用 并且功能性较强大

缺点

(1)不支持IP欺骗
(2)JMeter无法去验证JS程序和页面UI 如果想要达到目的那需要配合Selenium完成测试,我在之前有些过一篇Selenium的文章,感兴趣的朋友可以看看,跳转链接:Selenium模拟访问网址链接

安装

安装JMeter之前必须要安装好Java环境,并且Java环境必须要在8以上才可以。我这边安装好了,所以就不过多介绍Java环境的安装了,安装好后可以在cmd界面输入java -version查看版本信息

然后直接去JMeter官网找到安装路径,下载好后解压即可。安装的链接我也放下面了,可直接跳转进入JMeter安装入口

下载后解压目录可见如下:

编码改为中文,当然英文较好的朋友也可以不去做修改
要知道这个东西是国外的人开发的。所以他们的编码肯定也是英文的,所以我们要将编码改为
UTF-8才能转变为中文。打开JMeter文件后找到bin目录下的jmeter.properties文件中全文搜索encoding关键词,也就是中文为编码的意思。将后面的ISO-8859-1改为UTF-8即可,如下图:

启动

(1)图形化启动入口

(2)Windows启动
当双击这个.bat文件之后就会打开图形文件和窗口

(3)Linux启动

项目基本测试

前言

上面所介绍的就是一些安装和启动相关的信息了。下面我们来进入实战,首先我们测试之前得需要有一个测试项目。这边呢我也是准备好了。是之前写的一个DEMO,也就是一些十分简单的增删改查操作。这篇文章呢主要就是介绍测试这一方面的。所以我就不将项目代码放进来啦。大家可以随意的找一个项目来进行测试!

测试

首先启动后可见下图的可视化界面,根据图上的文字指示即可保存到本地文件夹中。也就是一个测试

新建线程组

首先右键项目——添加——线程——线程组

新建完之后你看到的是下面的样子,如下图:

新建HTTP请求

接着我们在线程组后面再次右键——添加——取样器——HTTP请求

下面我们就可以开始来测试网站了,也就是正常的访问http请求,首先cmd界面找到我当前所用的ip,也就是在cmd界面输入ipconfig就可以看到我的局域网ip地址了

然后把当前的ip地址填入JMeter的服务器或ip选项中即可,以及填写端口号、请求路径即可,具体需填写内容为下:

那么填写完之后想看结果的话那么就要打开监听器来监听结果,具体步骤为右击项目——添加——添加监听器——查询结果树,然后点击那个三角形状的图形来启动即可获取到结果,如图下:

上面就是最简单的测试请求的全部步骤了,是不是很简单

并行和串行执行结果

并行执行

以下面这张图为例子,我创建了两个线程组,每个里面有3个执行。但是注意看下面的执行顺序,并不是按照1.1、1-2、1、3、2-1、2-2、2-3这种方式来执行的 而是谁先执行完谁就结束。那么这种就叫做并行执行。

串行执行

串行就是说串着来 一个一个执行 也就是我执行了1才会执行2那么也就是按照上面这种顺序来执行了,具体效果看图2

测试执行的优先级

在添加线程组的时候大家可以发现有三个选项
这三个项目的主要区别在于
(1)setUp:最开始执行的线程组
(2)tearDowm:最后执行的线程组
(3)线程组:则为最普通的线程组 在steUp的后面,在tearDowm的前面,具体执行效果如图2:

线程组设置介绍

名称:也就是这个线程组的名称
注释:用来记录该线程组的用途笔记
线程数:也就是我们常说的并发数
Ramp-Up时间:代表这个线程在多少时间内执行完
循环次数:代表每个用户的请求次数,比如我有5个用户,每个用户请求3次,那么这次启动就会调用15次api,如果选择永远单选框 那么就相当于死循环 不停的执行 直到程序结束
调度器:
(1)持续时间:在特定的时间内执行完毕 和上面的那个很相似
(2)启动延迟:比如我设定一分钟 那么该程序需要在一分钟后执行 相当于一个定时器

设置HTTP默认属性值

右击项目——添加——配置元件——HTTP 请求默认值即可 有时候我们去复制的时候属性数据是和上面一样的 但是设置了默认值的话就不需要每次添加一个请求还去设置了 直接填写路径即可 所以为了便捷 可以设置一下默认值即可。

默认值设置也是和HTTP请求相似的,具体如下:

设置了之后我们可以把上面的HTTP请求中的ip、协议以及端口都不要也没事了,还是可以照样顺利执行

api新增测试

单条数据新增

下面分为两个部分,上面的红色方框是api连接的基本信息 下面是需要设置的参数 我这边是调用了一个新增文件上传的demo

上传之后检查结果树 提示正确的话就证明是无误的 那么可以去数据库查询是否有进来一条新的记录

这条是我刚刚新增进来的。链接也是可以访问到的,证明新增没问题

变量的设置

下面是用户设置变量的步骤

操作很简单,完成上面步骤后,可在下面填写信息 主要填写的就是变量名以及变量值 描述信息看自己填写,变量名称我随意填写的 但是变量值我填写的是路径信息

我填写的是路径信息 那么我可以使用这个变量名称来做为路径,语法是:${变量名称},具体如下图

api批量数据新增

csv批量新增

上面是说了单个的添加操作 那么有人就会想到 我可不可以批量性的添加数据呢?当然是可以的 下面我们用csv来实现,找到csv的具体步骤如下:

新建后设置信息头为json请求

新建一个txt文件,将要批量新增的数据写入文件,具体格式就是字段,字段…最后的字段,我新建用户就如下第一条username为zhangsan,password为15515151.然后保存退出
下面为我的测试文本内容

zhangsan,15515151
lisi,15515
wanglaowu,4511518

新建一个csv数据文件设置,然后主要填写的内容:
文件名:上面新建的txt文件路径
文件编码:utf-8
变量名称:字段,字段…最后的字段
其他的不用管

然后重点是在我的http请求中 我要使用变量 上面有说到变量在http请求中使用${字段名}即可,具体如下:

然后把线程组的循环次数调整为新增的条数,或者设置为永远都可以,也就是下面截图这 我这测试知道有3条 我填写3就是循环调用3次

然后启动,查看结果树,发现调用3次http请求说明没问题,具体结果如下:

去数据库查看,可以看到测试数据已经进来了,说明成功!

设置用户参数批量新增

当然还有另外一种方式就是直接设置用户参数来作为批量新增,下面我也来说一下具体实现方案吧,首先新添加一个用户参数的设置,具体步骤如下图

设置用户信息,模拟用户新增数据

下面有唯一不同的点就是上面的批量新增是循环,而这次是线程,所以循环就去掉 我这边设置2个用户 就是2个线程,具体如下:

然后启动,看到数据库有数据进来说明成功!

这就是两种方法 当然会发现csv会更加的便捷 后者会比较麻烦

函数设置

计数器函数

计数器就是我们想在http请求中来记录执行的次数 但是每次都写上的话很麻烦 所以这个功能就很好的解决了这个问题 具体实现如下,单选栏中我们选择counter,然后第一个值有两个选项,true是根据每组来计数的,false是将所有的线程一起计算,这个可以自己去尝试true和false 我这边说一下false的实现,然后点击生成就会出现一个变量,我们将这个变量放入http名称中,如图2

${__counter(false,)}


然后我们启动可以看到每一次调动都会有一次计数

随机数函数

这个设置和上面一样,在单选框中选择Random然后选择最小值和最大值即可,当然也可以用我这里的变量加到http名称后面即可:

${__Random(1,3)}

可以看到我执行了4次,但是这4次都是在1,2,3之间,因为我的最大值和最小值的范围在1~3之间

时间函数

照旧设置方式和上面相同,只是在单选框中选择的为time,然后设置时间的值,不设置值的话那显示的就是时间戳,我这边设置之后就是显示当前的时间信息,语法如下:

${__time(yyy-MM-dd hh:mm:ss,)}

结果可以看到每一个http请求后面都有一个时间

上面为基本的JMeter的操作 因为内容太多 后面我会出一个后续 !

结束语
若要前行,就要离开你现在停留的地方!

JMeter自动化测试工具超详细基础讲解(一)相关推荐

  1. Linux 学习笔记之超详细基础linux命令 Part 3

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 2----------------- ...

  2. Python超详细基础入门教程

    Python超详细基础教程(一) 一.变量和简单数据类型 (一)修改字符串大小写 (二)制表符和换行符 (三)删除空白 (四)数 二.列表 (一)列表定义 (二)修改.添加和删除元素 (三)组织列表 ...

  3. ECharts实现数据可视化超详细基础入门教程

    ECharts实现数据可视化超详细基础入门教程 ECharts介绍 ECharts官网:https://echarts.apache.org/zh/index.html ECharts是一款基于Jav ...

  4. Python超详细基础教程,从入门到实践

    Python超详细基础入门 一.变量和简单数据类型 (一)修改字符串大小写 (二)制表符和换行符 (三)删除空白 (四)数 二.列表 (一)列表定义 (二)修改.添加和删除元素 (三)组织列表 三.操 ...

  5. SVM支持向量机 超详细过程讲解

    SVM支持向量机 超详细过程讲解 前言 一.线性模型 前言 此篇文章为B站浙大机器学习课程支持向量机部分的个人笔记,不喜勿喷.笔记顺序从线性模型到非线性模型,层层递进,十分易懂. 一.线性模型 先从一 ...

  6. JMeter自动化测试工具

    在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具. image 但是Postman只能模拟单客户端的单 ...

  7. 怎样查询一只股票的历史行情详细数据?超详细步骤讲解

    怎样查询一只股票的历史行情详细数据?超详细步骤讲解.共享出来且用切珍惜,亲测可以查询A股.港股.美股所有个股的历史行情详细数据,每一只个股股票的历史行情详细信息都可以查到,同时还可以下载成Excel, ...

  8. Docker超详细基础教程

    一.Docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中, ...

  9. Postman接口测试工具超详细-接口关联-接口自动化测试教程实例

    一.postman插件安装 备注:postman也是有软件进行下载的,但是是需要进行FQ下载的,故自行下载安装.本节讲述的是插件的安装以及简单实用.postman是Chrome的一个接口测试插件,故如 ...

  10. Jmeter做单接口测试-超详细步骤讲解

    测试项目:本章节将以此测试项目为大家讲解怎么使用jmeter做一个接口测试 CSDN - 专业开发者社区CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客.精品问答.职业培训.技术 ...

最新文章

  1. 天顶角Zenith方位角Azimuth
  2. 跟谁学这2年间做的六件事
  3. Java服务部署规范(内部使用)
  4. 将shell命令结果直接输出到HDFS上
  5. MySQL数据库(六) 一一 基本操作之事物和索引
  6. python怎么安装json_python里面怎么安装json包
  7. vrrp 的mac是怎么算出来的_宇宙总质量约10^55kg,与大家掰一掰是怎么算出来的
  8. 06 Python爬虫之Re(正则表达式)库
  9. 【数据分析能力是指什么?】
  10. Android下载自带开源图标库教程
  11. PRCS-1011 PRCS-1014
  12. 2019-4—22爬取头条新闻街拍图片
  13. H5新增表单元素、控件
  14. mysql excel 同步数据_mysql导入excel数据
  15. UE4大场景解决方案 ——Pak的打包与加载
  16. 汇编语言实验五-《汇编语言-王爽老师》
  17. zhs16gbk java 转utf8_ORCALE字符集AL32UTF8和ZHS16GBK的互相转换
  18. 粒子群优神经网络优化
  19. quartus-II软件中bdf和v文件的互相转换
  20. 护卫神主机大师从2版升级到3版

热门文章

  1. Macbook用Terminal启动Matlab
  2. Axure原型图教程
  3. win7系统删除多余的系统服务操作
  4. word自动生成目录和调整页码字体的方法
  5. Activiti7使用
  6. 阿里笔试算法题2021
  7. 文字时钟罗盘动态html代码_抖音时钟原生JS文字钟源码下载
  8. python第二版答案第六章_Python语言程序设计基础(第2版) 课后题 第六章
  9. 中国兽用化学药品行业“十四五“发展规划及运营模式分析报告2021年版
  10. centos下编译abseil-cpp