5 步轻松上手,教你从 0 到 1 落地 Jmeter 接口自动化脚本!

Jmeter是进行接口测试的一款非常主流的工具,但绝大部分测试工程师,对于Jmeter接口测试脚本整理都是一知半解的。今天这篇文章,就以一个金融项目中接口为例,通过简单5步,教大家如何0代码编写Jmeter接口自动化脚本!         

Jmeter是进行接口测试的一款非常主流的工具,但绝大部分测试工程师,对于Jmeter接口测试脚本整理都是一知半解的。今天这篇文章,就以一个金融项目中接口为例,通过简单5步,教大家如何0代码编写Jmeter接口自动化脚本!

0、金融项目接口

1、登录接口信息

图片

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

2、新增投资项目接口信息

图片

接口说明:

请求头中Authorization传值Bearer Token,Token是登录成功后响应结果中获取。

请求参数中member_id,是指登录账号的id,也是从登录成功后响应结果中获取。

1、数据驱动ddt

一个接口,需要覆盖正常、异常多种情况的用例数据进行测试,从而得到不同的输出结果。你是怎么测试呢?是不是每测试一种情况就修改一次传参的数据呢?如果不想每次都修改请求,但是又要覆盖到多组测试数据的测试执行。Jmeter有提供很好的解决方案:通过CSV文件数据配置 + 循环控制器这2个元件实现。

1) 以登录接口为例,先把需测试的各种正常/异常测试数据,整理到CSV文件中,如下:

图片

 

2)打开Jmeter, 新建线程组,添加HTTP请求头管理器并设置好请求头信息。右键逻辑控制器-循环控制器,循环次数设置为CSV文件中的需执行的用例条数。

图片

3)在循环控制器下,添加配置元件-CSV数据文件配置,用于读取CSV文件中的每条测试用例数据,配置如下:

图片

 

4)在循环控制器下,添加HTTP请求,修改名称,登录请求设置如下:

图片

5)点击运行,可以看到依次执行CSV用例中的每条用例,并输出对应结果

图片

2、测试结果校验

以上登录的每条用例执行完后,需要去确认执行结果的正确性!你是人工点开每一条用例的接口返回结果,凭肉眼判断吗?那样就太费时间了,Jmeter有提供很多种自动判断用例执行是否符合预期的机制— 断言机制。Jmeter可通过:响应断言 + CSV数据驱动 实现。

1)右键循环控制器-断言-添加响应断言,并设置断言内容如下

图片

 

2) 点击运行,可以看到执行结果。请求显示绿色--表示断言成功;请求显示红色-表示断言失败,用例执行失败。点开可以看到断言失败的原因。

图片

3、接口依赖处理

如果我们要再去测试“添加投资项目”这个接口,跟登录一样,测试数据准备到CSV文件中,然后也是自动循环去读取CSV文件中测试用例,去执行!

但会存在问题: 添加投资项目这个接口要想执行成功,必须依赖到登录状态,需要从登录成功的响应结果中提取需要的token、用户id值。

如何解决? 将登录接口作为前置操作,登录只执行1次,然后通过后置处理器-json提取器获取到token、id的值;再传递给添加投资项目的这个接口使用。

1)脚本结构如下,新建登录请求作为前置,在登录请求下添加json提取器,页面设置如下:

图片

 2)将提取到的token值,传递到下个接口的请求头使用,在添加投资项目接口下方添加HTTP信息头管理器,引用user_token变量的值

图片

3)将提取到的用户id,传递到下个接口的请求参数中,这里分2步处理,首先在CSV文件中的请求列数据,设置${user_id},如下:

图片

然后在添加投资项目接口的http请求页面,引用从CSV文件中读取的req_data变量值时,因为该值中嵌套了${user_id}变量值,因此这里要用Jmeter自带的__eval函数处理下。

图片

4)点击运行,可以看到CSV中3条用例都执行成功。

图片

4、公共数据管理

很多接口请求中,会存在部分相同的请求信息,例如环境地址。测试环境/预发布环境/发布环境,服务器地址是不一样的。对于测试来说,如果需要在不同环境下,执行同一套接口脚本时,得一个个接口去修改服务器地址,这是很麻烦的。那么在Jmeter中,可以通过:自定义变量 实现高效处理。

1)新建配置元件-用户定义的变量,设置host、port2个变量,用来保存当前测试环境地址信息

图片

2)然后在自动化脚本的请求位置,将这2个变量进行引用,例如登录接口设置如下:

图片

 这样,如果下次需要切换到预发布环境进行测试,只需要修改用户定义变量中的环境地址信息即可。

5、多接口批量执行

在实际工作中,如果一个项目比较大,脚本编写工作是需要协同完成的。比如说你负责ABC模块接口、他负责DEF模块接口,最后如果要整合所有的接口进行批量执行怎么处理呢?可以通过Jmeter的测试片段,分模块管理接口脚本。一般可以一个接口一个测试片段。测试片段本身是不能直接运行的,需要通过模块控制器或include控制器才能执行。

1)右键新建测试片段,将登录接口的多用例执行脚本,保存在测试片段下;同理添加投资项目接口的多用例执行脚本。如下:

图片

2)新建线程组,在线程组下添加模块控制器,选择需要执行的测试片段;

图片

图片

3)点击运行,可以看到多接口批量执行结果

图片

 

总结

通过以上5步,就可以0代码实现Jmeter自动化脚本的基础开发。当然实际工作中的项目会存在很多需处理的业务场景,比如文件上传处理、关联到数据库的接口处理、接口加密传参处理、数据库断言处理等等,那么就需要大家具备更高阶技术、甚至是自己写代码去解决。

学无止境,行以致远。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/403104.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

B端系统:工作台页面,如何从平庸走向出众

Hi,大家好,我是贝格前端工场,从事8年前端开发的老司机。大家看过很多平庸的工作台页面,但是仔细分析过平庸的表现吗,仔细思考过如何实现出众的效果吗?这篇文章为你解读。 一、工作台页面是什么,…

【进程概念】

目录 什么是在计算机运行的程序这么多运行的程序计算机是如何管理的先描述再组织 什么是在计算机运行的程序 对于一个在磁盘可执行的二进制文件,也可叫做可执行程序。对于一个可执行的程序,程序有自己的代码和数据。一旦运行起来,就会在计算…

第5讲:数组

第5讲:数组 1. 数组的概念2. 一维数组的创建和初始化2.1 数组创建2.2 数组的初始化2.3 数组的类型 3. ⼀维数组的使用3.1 数组下标3.2 数组元素的打印3.3 数组的输入 4. ⼀维数组在内存中的存储5. sizeof计算数组元素个数6. 二维数组的创建6.1 二维数组的概念6.2 二维数组的创建…

从大厂裸辞后成为自由职业者,一年后我怎么样了?

深耕技术领域7年,前前后后也做过不少副业,最近我一直在思考什么副业才是对自己有价值的,可持续的,甚至是可增长的。 22年我所在团队的一个项目解散了,领导问我想拿钱走还是转岗,想想自己也在这个公司干了5…

【国产MCU】-CH32V307-通用定时器(GPTM)-单脉冲模式

通用定时器(GPTM)-单脉冲模式 文章目录 通用定时器(GPTM)-单脉冲模式1、单脉冲模式介绍2、驱动API介绍3、单脉冲使用实例本文将详细介绍如何使用CH32V307通用定时器的单脉冲模式。 1、单脉冲模式介绍 单脉冲模式可以响应一个特定的事件,在一个延迟之后产生一个脉冲,延迟…

超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)

超市售货管理小程序目录 目录 基于微信小程序的超市售货管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)商品管理 (2)出入库管理 (3)公告管理 …

Python爬虫实战入门:爬取360模拟翻译(仅实验)

文章目录 需求所需第三方库requests 实战教程打开网站抓包添加请求头等信息发送请求,解析数据修改翻译内容以及实现中英互译 完整代码 需求 目标网站:https://fanyi.so.com/# 要求:爬取360翻译数据包,实现翻译功能 所需第三方库 …

【OpenFeign常用配置】

OpenFeign常用配置 快速入门:1、引入依赖2、启用OpenFeign 实践1、引入依赖2、开启连接池功能3、模块划分4、日志5、重试 快速入门: OpenFeign是一个声明式的http客户端,是spring cloud在eureka公司开源的feign基础上改造而来。其作用及时基于…

【C++精简版回顾】5.字符串

1.字符串的四种初始化方式 string str "ilove"; string str1("ilove"); string str2(str1); string str3 str1; 2.针对字符串的一些函数 &#xff08;1&#xff09;字符串长度 cout<<str.length()<<endl;&#xff08;2&#xff09;查找字…

Android platform tool中d8.bat不生效

d8.bat因找不到java_exe文件&#xff0c;触发EOF d8.bat中之前代码为&#xff1a; set java_exe if exist "%~dp0..\tools\lib\find_java.bat" call "%~dp0..\tools\lib\find_java.bat" if exist "%~dp0..\..\tools\lib\find_java.bat" …

PowerDesigner 安装

PowerDesigner 安装汉化破解使用过程 - 沦陷 - 博客园 (cnblogs.com)https://www.cnblogs.com/huangting/p/12654057.html

MacBook安装Ansible

MacBook安装Ansible Ansible介绍 ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具&#xff08;puppet、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于…

Fiddler工具 — 17.Fiddler进行弱网测试

1、什么是弱网测试 从测试角度来说&#xff0c;需要额外关注的场景远不止断网、网络故障等情况&#xff0c;还需要关注弱网情况下测试。 弱网测试属于健壮性测试的内容。随着国内移动端迅猛发展&#xff0c;大大增加用户碎片化使用使用APP的。想象一下&#xff0c;用户在地铁…

leetcode hot100 完全平方数

本题中&#xff0c;是给一个整数n&#xff0c;让用完全平方数凑出这个整数&#xff0c;注意&#xff0c;题中给了n的范围&#xff0c;是大于等于1的&#xff0c;也就是说&#xff0c;dp[0]我们可以先不考虑。 整个问题可以抽象成完全背包问题的变形形式&#xff0c;物品就是这…

web前端安全性——CSRF跨站请求伪造

承接上篇讲述的XSS跨站脚本攻击 跨站请求伪造&#xff08;CSRF&#xff09; 1、概念 CSRF(Cross-site request forgery) 跨站请求伪造:攻击者诱导受害者进入第三方网站&#xff0c;在第三方网站中&#xff0c;向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注…

三十年一个大轮回!日股突破“泡沫时期”历史高点

2月22日周四&#xff0c;英伟达四季报业绩超预期&#xff0c;而且本季度业绩指引非常乐观&#xff0c;提振美股股指期货并成为芯片股和AI概念股情绪的重要催化剂。今日亚洲芯片股和AI股起飞&#xff0c;日本在芯片股的带动下突破1989年泡沫时期以来的历史最高收盘价。 美股方面…

Rust介绍与开发环境搭建

安装rust rust 安装官方指南&#xff1a;[HTPS][3W].rust-lang.org/tools/install &#xff08;自己替换 HTPS,3W&#xff09; Linux或者Macbook上安装rust 打开终端并输入下面命令&#xff1a; #因审核问题下面链接需要替换一下 HTPS->httpscurl --tlsv1.2 [HTPS]://s…

好用的UI自动化测试平台推荐

随着软件行业的不断发展&#xff0c;建立一个完善的自动化测试体系变得至关重要。目前&#xff0c;自动化测试主要涵盖接口自动化测试和UI自动化测试两个主要领域。就目前而言&#xff0c;企业在UI自动化测试方面的覆盖率仍然相对较低。 接口自动化测试可以模拟和执行应用程序…

数据库管理-第152期 Oracle Vector DB AI-04(20240220)

数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04&#xff08;20240220&#xff09;1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引&#xff08;默认&#xff09; 索引&#xff08;高级&#xff09;3 EMBEDDINGSSQL EMBE…

【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;底层原理高级进阶》 &#x1f680…