软测入门(十)Jmeter接口测试基础

这篇具有很好参考价值的文章主要介绍了软测入门(十)Jmeter接口测试基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接口测试流程

接口测试的流程:

  • 分析接口文档和需求
  • 编写接口测试计划 5W1H
  • 编写接口测试用例
  • 接口测试执行
  • 输出接口测试报告

接口测试分类

  • Web接口测试:服务器接口测试
  • 模块接口测试:单元测试

接口测试的要点

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

  • 数据是否正常
  • 参数类型错误能否处理
  • 参数数据的边界值测试
  • 接口响应时间
  • 接口是否需要授权、登录时密码是否暴露等

Restful风格接口

请求方式:

  • POST:新增
  • PUT:修改
  • DELETE:删除
  • GET:查询

响应

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

请求格式

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

JMeter接口测试

由java语言编写的,所以需要依赖到java的jdk环境

  • 支持很多类型的测试:
    • web:http、https
    • database
    • 脚本
    • java对象
  • 有界面模式和命令行模式
  • 多线程测试
  • 可生成html测试报告
  • 扩展丰富

安装

到官网下载即可,地址是这里

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

下载完解压即可。

目录介绍

apache-jmeter-5.5
|——bin								二进制程序目录
   |=ApacheJmeter.jar 				java版可执行文件
   |=jmeter.bat						windows系统可执行文件
   |=jmeter.sh						linux可执行
   |=jmeter.properties				配置文件
   |=system.properties				配置文件
   |=jmeter-server.bat				分布式测试中的服务启动脚本
   |=jmeter-server.sh				分布式测试中的服务启动脚本
|--docs								文档目录
|--extras							辅助库
|--lib								核心依赖库
	|=ext							扩展插件目录
......

入门案例

双击ApacheJmeter.jar启动jmeter即可,如果不能打开,那么可以使用命令java -jar ApacheJmeter.jar也可以。

添加一个线程组

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

线程组中的参数默认即可

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

再去线程组中创建一个 http请求的取样器。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

参数如下图即可。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

点击测试,可能需要保存一下.jmx文件。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

然后再去线程组中创建一个查看结果树

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

然后就可以看到我们的测试结果了。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

但是发现jmeter编码格式好像不支持中文,可以去jmeter的bin目录下的jmeter.properties中,修改配置即可。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

默认是ISO-8859-1的编码格式,直接改成UTF-8即可。

重启Jmeter,然后将我们保存的jmx文件直接拖至jmeter的左侧窗口栏即可自动导入到jmeter中。

测试计划&线程组

一个测试计划中可以拥有多个线程组,当查看结果树位于线程组同级目录时,可以看到所有线程组的测试结果。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

在线程组中我们可以设置线程的数量,表示此测试运行n次。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

注意:当有多个线程组时,默认情况下多个线程组的测试会并发执行,那么可以在测试计划中设置

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

线程组会排队执行。

程组的类型:

  • 普通线程组
  • setUp线程组:普通线程组执行前执行一次,确保测试环境准备
  • tearDown线程组:普通线程组执行之后执行一次,确保资源回收

在线程组中,可以设置一些参数

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

并发(定时器)

定时器可以用在测试计划里,也可以用在线程组里面。放在不同的位面,起作用的范围则不同。

定时器种类:

  • 同步定时器:攒够一定数量的线程,然后一起释放

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

八大元件

  • 取样器:执行某项操作,并且可得到某种结果
    • HTTP请求取样器
  • 逻辑控制器:可以进行 if 、while、for等逻辑控制
  • 监听器:查看执行过程和结果
    • 查看结果树
  • 配置与案件:提供默认重复的配置信息及参数化
  • 前置处理器:可以提供参数化信息
  • 后置处理器:可以从结果中提取部分内容,然后进行后续处理
  • 断言:判断执行结果是否符合预期
  • 定时器:设置等待时间

元件执行顺序:

1.配置元件 2.前置处理器 3.定时器 4.取样器 5.后置处理器 6.断言 7.监听器

注意:

  • 前后置处理器和断言元件仅对 取样器 有作用,如果他们作用域内没有任何取样器,那么不会被执行
  • 若在同一作用域范围内有多个同一类型的元件,那么它们会按照上下顺序依次执行

元件作用域

  • 取样器不与其他元件相互作用,不存在作用域问题
  • 逻辑控制器 只对其 子节点中的 取样器逻辑控制器起作用
  • 逻辑控制器和取样器之外的其他元件:
    • 如果父节点是 取样器:则只对其父节点作用
    • 如果父节点不是取样器:则对父节点的所有后代节点都起作用

http相关元件

取样器–HTTP Request

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

配置元件–HTTP信息头管理

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

配置元件–HTTP Cookie管理器,可填充cookie信息

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

配置元件–HTTP请求默认值

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

设置此元件后,其他的取样器,可以不用再去输入重复的内容了,如协议,服务域名,端口等。

jmeter后置处理器x-path提取器

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

以上是提取所有<title></title>标签中的text文本数据。

调试方法一:然后我们还需要一个后置处理器调试后置处理程序

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

然后运行测试即可。查看结果。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

调试方法二:xpath中的引用

我们在xpath后置处理器中定义了一个 title的变量指向了 //title/text(),测试执行完毕后,这个引用是存在的,我们可以在添加一个取样器去使用它。采用${引用}的方式使用。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

要记得取样器的执行,同级下有多个时,按照顺序一个一个执行。

可以看到,title获取到了,并且第二个线程执行时引用到了。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

后置处理器–正则表达式

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

后置处理器–json

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

通常如果我们不太熟悉jsonPath的语法,那么可以使用谷歌浏览器的插件json-handle来帮助我们快速获取表达式。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

函数和函数助手

JMeter中的函数和Python函数一致,有0个或多个参数,有一个返回值。Jmeter内置了很多的函数。

使用方式${__函数名(var1, var2, var3)}

说明:

  • 有些Jmeter函数不要求参数,那么可以不使用圆括号,${__threadNum}

函数大全

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

常用函数

time

可将当前时间转为指定格式的字符串。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

然后我们把复制的函数引用表达式,用在取样器里面即可

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

请求变成了GET https://www.baidu.com/?time=1678359877433

同样地,我们可以将时间戳进行格式化,如2023-03-09 19:06:00

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

获取到引用${__time(yyyy-MM-dd HH:mm:ss,)}

counter

计数器

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

使用时,每个线程有自己独立的一个计数器,计数器会对它们进行计数。

如图,一个线程,执行10次取样HTTP

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

同样按照刚刚的,把counter函数的引用拷贝到HTTP请求中。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

同理,将计数器设置为FALSE,那么将有一个全局计数器,计数所有的HTTP取样

Random

随机数

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

RandomString

关联

同一线程组使用关联

  • 使用提取器(后置处理器)获取到内容,存为变量
  • 在后续的取样器中${变量名}使用变量

不同线程组使用关联

  • 不同线程组之间的变量是不共享的。

  • 需要通过properties进行共享

    • 在线程组A中使用BeanShell后置处理器添加setProperties函数的调用
    • 在线程组B中使用函数,使用properties函数提取属性为变量。

    软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

    软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

    然后使用即可。

    软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

当使用这个时,一定要注意:A组一定要是先执行的,否则B是获取不到变量的。可以勾上测试计划中的

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

参数化

参数化整体为k-v结构。k相当于是变量的名称,v是对应的值。

在测试的时候使用名称为name的变量,用如下语法:${name}

测试计划参数化

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

在测试计划中设置参数,给值。

在取样器中使用。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

在同一测试计划中的所有取样器都可以使用这个变量!!

前置处理参数化

但是通常这样value值只有一个,测试的不够全面。

我们可以在线程组中添加一个前置处理器------用户参数

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

一个用户代表一个线程,那么我们把线程组中的线程数设置为3即可。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

CSV参数设置

导入csv格式的文件作为参数使用。

有一个csv格式的数据表。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

在线程组中创建一个CSV数据文件设置,这是一个配置元件,所以比前后置处理器先运行的。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

此配置元件是所有线程共享的,所以只要执行一个取样请求,不管是一个线程执行多次,还是多个线程执行一次,那么它都会去依次读取csv文件的一组数据。(可设置)

使用

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

参数化对比

  • 数据量大使用csv
  • 数据量小,用前置处理器
  • 数据只有一个,用测试计划

响应断言

顾名思义,就是对取样的响应做一些断言操作。

包括

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

包括–模糊匹配

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

和上面的结果一致

就是取反

或者

如果勾选上,那么多个断言的关系变成 的关系,只要有一个断言成功,那么就算成功。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

该断言会成功

其他断言

大小断言

可对响应的整体、响应头、响应体、响应代码、响应消息的大小进行断言。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

断言持续时间

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

可用来测试多线程执行测试接口运行的时间。

假如3个线程,每个线程执行两次http

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

此接口执行了107ms,断言失败。

json断言

假如还是这样的数据,我要判断msg为查询成功时,才是断言成功

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

断言

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

逻辑控制器

  • if控制器
  • 事务控制器
  • 循环控制器
  • foreach控制
  • 。。。

循环控制器

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

将取样器放置在循环控制器内部,并且设置循环次数为5,那么此取样器执行时会执行5次

ForEach控制器

先设置几个自定义变量

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

然后创建一个ForEach控制器,将取样器也添加进去。

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试

取样器使用参数

软测入门(十)Jmeter接口测试基础,自动化测试,jmeter,java,单元测试文章来源地址https://www.toymoban.com/news/detail-589583.html

到了这里,关于软测入门(十)Jmeter接口测试基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter —— jmeter接口自动化测试操作流程

    在企业使用jmeter开展实际的接口自动化测试工具,建议按如下操作流程, 可以使整个接口测试过程更规范,更有效。 1、获取到接口文档:swagger、word、excel ... 2、熟悉接口文档然后设计测试用例(一般都是先在excel中编写) 3、进行用例评审 4、将excel中的测试用例在jmeter中编

    2024年02月09日
    浏览(57)
  • Jmeter接口自动化测试 —— Jmeter变量的使用

    ​在使用jmeter进行接口测试时,我们难免会遇到需要从上下文中获取测试数据的情况,这个时候就需要引入变量了。 添加-配置元件-用户自定义的变量 添加-配置元件-CSV 数据文件设置 变量的调用方式:${变量名} 变量的作用范围:变量可以写入任何测试组件的任何字段中(除

    2024年02月05日
    浏览(61)
  • JMeter接口自动化测试实例—JMeter引用javaScript

    Jmeter提供了JSR223 PreProcessor前置处理器,通过该工具融合了Java 8 Nashorn 脚本引擎,可以执行js脚本以便对脚本进行前置处理。其中比较典型的应用就是通过执行js脚本对前端数据进行rsa加密,如登录密码加密。但在这里我就简单的应用javaScript生成当前时间来做为例子,看如何在

    2024年02月12日
    浏览(46)
  • Python自动化测试——postman,jmeter接口测试

    关于众所postman,jmeter,做自动化测试的我想对这两个词并不陌生。大家都知道postman用来做接口测试很方便,下面我们就用一些例子来演示一下它该如何进行接口测试: 首先我们来介绍一下接口测试的概念: 1、什么是接口测试? 接口测试是测试系统组件间接口的一种测试。接

    2024年04月27日
    浏览(50)
  • WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

    接口测试与数据驱动     数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程。       我们已经简单介绍了接口测试参数录入及测试执行的过程,因为大量的测试脚本与测试数据内聚在一起,使得我们的

    2024年01月20日
    浏览(46)
  • WEB接口测试之Jmeter接口测试自动化 (四)(持续构建)​

       Jmeter是压力测试、接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具。将这三者结合起来可以搭建一套webservice接口测试的持续构建环境。   1、安装JDK,配置java环境变量 (略过)    2、安装Jmeter,这里用到的版本是2.12 (安装过程略过)

    2024年01月20日
    浏览(59)
  • 接口测试之Jmeter+Ant+Jenkins接口自动化测试平台

    一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成。 Jmeter 支持接口的测试, Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可以构成一个功能完善的接口自动化测试平台。 环境依赖 JDK环境配置 Jmeter安装 Ant安装环

    2024年02月13日
    浏览(90)
  • Jmeter接口自动化测试 —— Jmeter断言之Json断言

     json断言可以让我们很快的定位到响应数据中的某一字段,当然前提是响应数据是json格式的,所以如果响应数据为json格式的话,使用json断言还是相当方便的。 还是以之前的接口举例 添加一个Json断言 维护上想要判断的字段 查看结果 ​ 我们将期望的值故意改成错的545111看看

    2024年02月05日
    浏览(62)
  • 接口测试 [分享] 自动化测试与持续集成方案--Jmeter 测试接口及性能

    目录 前言: 一、什么是接口测试? 二、接口测试的流程 三、编写接口测试脚本 四、接口持续集成 补上性能测试报告:  接口测试是软件测试中的重要环节,它用于验证系统的不同组件之间的通信和数据传输是否正常。自动化测试和持续集成方案可以帮助测试团队更高效地

    2024年02月15日
    浏览(47)
  • Jmeter接口自动化生成测试报告html格式

    jmeter自带执行结果查看的插件,但是需要在jmeter工具中才能查看,如果要向领导提交测试结果,不够方便直观。 笔者刚做了这方面的尝试,总结出来分享给大家。 这里需要用到ant来执行测试用例并生成HTML格式测试报告。 一、ant下载安装 1.1、下载地址: http://ant.apache.org/bi

    2024年02月16日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包