利用Jmeter做接口测试(功能测试)全流程分析

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。

明白了原理以后,把零碎的知识点填充进去就可以了。所以在学习的过程中,不管学什么,我一直都强调的是要循序渐进,和明白原理和逻辑。这篇文章就来介绍一下如何利用Jmeter做接口测试的流程,主要针对的是功能测试。暂不涉及到自动化测试和性能测试的内容。

一把来说,主要的步骤都大差不差。

第一步:通过分析API文档和需求文档提取接口清单。

也就是说,接口测试工作人员工作的开始就是从API文档和需求文档开始的。所以进入公司的第一件事情就是要拿到API文档和需求文档来了解,来看,来分析。从其中提取接口清单的话,主要是因为API文档中有很多冗余,不必要的信息。这些信息可能对于开发人员是有用的,但是对于我们测试人员是没有用的,所以要去除冗余,提取关键信息。

那么怎么提取呢?方法也很简单,从功能模块和方法模块对API文档中的内容进行提炼,提炼的关键是接口三要素:url+方法+参数+返回值。我的建议是可以先将所有的url提取出来,基本上一个url就是对应一个接口的,这样一条线把整体拎起来,就感觉混乱的局面清晰多了。

当然工作中,有的时候我们是可以直接拿到接口清单的,因为清单这个事情一个团队做一份就好了,并不是说要每个人都做一份。但是我们自己得会,得有这个能力。之前看到过一个面试题,问的是,如果没有API文档,怎么做接口测试?

其实问的就是如果没有API文档,应该怎么提取接口清单的问题。很简单,根据需求文档和原型图来提取。有的公司不正规,确实是没有API文档的。或者有的公司API文档写的不规范,那提取的时候,就很考验测试人员的经验和能力了。所以如果能找到遵循restful风格写的优秀API文档,那就好了,提取的时候很方便。

第二步:针对接口清单,做单接口测试和关联接口测试。

在实际测试过程中,单接口测试和关联接口测试的时间是不一样的,这涉及到业务逻辑测试和功能点测试等。但是在测试的时候,他们的逻辑和方法是类似的。

当然这里主要介绍的是单接口测试,因为单接口测试时会考虑各种可能的情况,而关联接口测试一般是建立在单接口没有问题的前提下的。换个角度来说,就相当于是两个层次,单接口测试是基础,而关联接口测试是拔高。

那么具体应该怎么做呢?比如我们这里已经选定而来某一个接口来测试。

首先,根据选定的接口来搭建测试框架。

接口不是什么大不了的事情,无非就是url、方法、参数、返回数据这四块。这样就意味着,一个接口的框架是固定的,只不过每次传输的数据和返回的数据可能会不一样而已。所以我们要做的第一步就是搭建测试框架。

那么怎么搭建呢?这里就要用到从API文档中整理出来的接口清单和Jmeter了。从接口清单里,可以拿到当下接口的url+方法+参数+预期返回数据。这就是我们搭建测试框架的依据。接下来用Jmeter搭建。

首先需要打开Jmeter,然后基于测试计划,创建线程组,基于线程组创建HTTP请求。考虑到单接口测试,一个框架,要测试N多个数据,而且后面的接口可能也要用到同样的ip地址、同样的content-type,所以一般会先创建一个HTTP请求默认值,将一些可能会重复用到的信息填进去,比如说端口号、协议之类的。如有必要还需要添加HTTP信息头管理器,放一些user-agent、content-type等内容。

好的,有了这两个基础就可以来创建HTTP请求。在新的请求里,已经填写的端口号呀、ip地址呀之类的就无需填写了,只需要填写方法之类的即可。那么搭建框架在哪里搭建呢?一般会考虑para或者body里。比如说,要提交一段json格式的数据,那么就要用body(消息体)来提交,如下图所示。

在这里插入图片描述

将从接口清单里拿到的json数据填写到消息体数据里,然后将需要不断传入的数据进行参数化设置,那搭建测试框架就算是完成了。接下来只需要把数据一条一条传入进行测试即可。

基于当前的线程组或者请求创建CSV数据文件配置组件。如果这份数据只有这一个请求会用,那么就基于请求创建即可。如果这份数据会被这个线程组里的多个请求使用,那么就基于线程组创建。

创建了以后就需要填入文件了呢?可是文件在哪里呢?这个时候就要稍微停一下jmeter的操作,先去针对当前接口设计测试用例并形成有关文档了。有关于功能接口测试的用例设计,我们之后会专门用一篇文章来介绍,这里先带过。这是因为设计测试用例是做测试过程中最核心的一步。

在测试用例设计完之后,可以将其保存在一个txt文档里,采用utf-8编码,保存到Jmeter脚本的同一父目录下。然后按照上面那篇文章里的设置方法进行设置即可,注意路径可以采用相对路径,便于数据文件的拷贝和使用。

csv组件设置好以后,数据源有了,变量名有了,变量名的赋值也有了,接下来就只剩引用参数就可以了。在测试框架里需要引用参数的地方引用,引用的格式是${参数名}。到这里,针对于某一个接口的测试工作就准备完成了。

然后在Jmeter里面添加查看结果树组件,执行请求,依次查看结果。看一看返回的数据和我们的预期结果是否一致,不一致,那可能就是一个bug。

做一个小小的总结吧,用jmeter做功能接口测试,其实很简单的。逻辑和原理都是类似的,如果遇到新的项目,可能说会用一些新的组件而已,那百度一下几分钟的事情。在学习软件测试的时候,最重要的就是不要怂,不要看起来说怎么要学的东子这么杂这么多,只要能够拎出其中的线索和主干,然后把一些零碎的点给组装上去,就会感觉,哇,忽然之间,好有条理。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源vue动态表单组件

一、项目简介 vueelement的动态表单组件,拖拽组件到面板即可实现一个表单 二、实现功能 支持拖拽 支持输入框 支持文本框 支持数字输入框 支持下拉选择器 支持多选框 支持日期控件 支持开关 支持动态表格 支持上传图片 支持上传文件 支持标签 支持ht…

vue中实现echarts三维散点图

需要安装 echarts 同时引入 echarts-gl 我安装的版本: "echarts": "^5.3.2", "echarts-gl": "^2.0.9", import Vue from "vue"; import * as echarts from "echarts"; Vue.prototype.$echarts echa…

常用Web漏洞扫描工具汇总(持续更新中)

常用Web漏洞扫描工具汇总 常用Web漏洞扫描工具汇总1、AWVS,2、OWASP Zed(ZAP),3、Nikto,4、BurpSuite,5、Nessus,6、nmap7、X-ray还有很多不是非常知名,但可能也很大牌、也较常见的。…

生成对抗网络(GAN):在图像生成和修复中的应用

文章目录 什么是生成对抗网络(GAN)?GAN在图像生成中的应用图像生成风格迁移 GAN在图像修复中的应用图像修复 拓展应用领域总结 🎉欢迎来到AIGC人工智能专栏~生成对抗网络(GAN):在图像生成和修复…

Visual Studio Code 终端配置使用 MySQL

Visual Studio Code 终端配置使用 MySQL 找到 MySQL 的 bin 目录 在导航栏中搜索–》服务 找到MySQL–>双击 在终端切换上面找到的bin目录下输入指令 终端为Git Bash 输入命令 ./mysql -u root -p 接着输入密码,成功在终端使用 MySQL 数据库。

Annual Inspection

机动车年检流程【交警12123】APP 到【检查地方】门口墙上贴着 然后上缴钥匙,等待,本次等待不到半小时搞定,速度很满意, 发现检测人员把你的里程数纠正了。 给你的行驶证,打印这些字样:检验有效期至XXXX 再给…

ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习

一、学习层面:ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习 1.帮助高职院校学生实现个性化自适应学习 数字技术的飞速发展引起了教育界和学术界对高职院校学生个性化自适应学习的更多关注和支持,其运作机制依赖于人工智能等技术&#xff0…

SLAM从入门到精通(开始篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多同学喜欢学习linux,但是他们只是把linux当成是一个嵌入式技术在学习,而不是当成工具在使用。平时,要么是自…

Samba服务器

目录 一、什么是Samba? 二、Samba进程 三、Samba主要功能 四、Samba工作流程 五、Samba安全级别 六、Sam主配置文件/etc/samba/smb.conf 七、Samba服务配置案例 一、什么是Samba? Samba可以让linux计算机和windows计算机之间实现文件和打印机资源共享的一…

解决D盘的类型不是基本,而是动态的问题

一、正确的图片 1.1图片 1.2本人遇到的问题 二、将动态磁盘 转为基本盘 2.1 基本概念,动态无法转化为基本,不是双向的,借助软件 网址:转换动态磁盘到普通磁盘_检测到计算机本地磁盘为动态分区_卫水金波的博客-CSDN博客 2.2分区…

软考:中级软件设计师:数据库恢复与备份,故障与恢复,反规范化

软考:中级软件设计师:数据库恢复与备份 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备…

Linux 下 Java Socket 编程报 java.net.Exception:Permission denied (权限不足)

本人用Linux部署springboot项目时遇见这个错误,原因很简单,就是端口号没有选对。 在linux系统中,端口号再1024以下的需要root权限,只要把端口改成大于1024的就可以了,但避开一些软件的默认端口,如Tomcat的8…

Midjourney学习(三)6个高级应用

使用Remix Mode在原图片的基础上进行二次创作 通过prompt得到大图之后,点击Make Variations按钮,输入Remix Prompt,即可得到意想不到的效果! 局部内容重绘 通过局部重绘可以实现对画面内容更加精细化的控制,同样也是需…

设计模式—策略模式

目录 一、定义 二、特点 三、优点 四、缺点 五、实例 六.涉及到的知识点 1、一个类里面有哪些东西? 2、类和实例 什么是类? 什么是实例? 什么是实例化? 3、字段和属性 什么是字段? 属性是什么&#xff1…

新的雅思口语6分标准

目录 新的雅思口语6分标准 要有细节,要有充分的话题词汇资源 要拥有具象思维能力,要有画面感 下义词是什么意思? 方法:现在时未来时 (形成时态多样)观点解释 原因要有排他性 "Kick off" 是…

windows系统服务器在不解锁屏幕不输入密码的前提下,电脑通电开机启动程序。

在控制面板中找到“管理工具”中的 “任务计划程序”,打开“任务计划程序”窗口。如图: 双击打开任务计划程序,空白出右键创建基本任务,或者点击最右侧的创建基本任务。 输入名称,点击下一步。 先选择计算机启动时&a…

开启智能时代:深度解析智能文档分析技术的前沿与应用

开启智能时代:深度解析智能文档分析技术的前沿与应用 本章主要介绍文档分析技术的理论知识,包括背景介绍、算法分类和对应思路。通过本文学习,你可以掌握:1. 版面分析的分类和典型思想 2. 表格识别的分类和典型思想 3. 信息提取的…

JavaScript 手写题

基础手写 全排列(力扣原题) 要求以数组的形式返回字符串参数的所有排列组合。 注意: 字符串参数中的字符无重复且仅包含小写字母返回的排列组合数组不区分顺序const _permute string > {const result []const map new Map()const df…

百万级并发IM即时消息系统(3)配置数据初始化和前后端交互

04_配置数据初始化及前后端交互_哔哩哔哩_bilibili 1.配置文件 创建一个config文件夹以及一个app.yaml配置文件。 该文件专门存放一些关键配置,如mysql DNS路径和redis的addr账号密码等。 后期可以创建一个工具包和一些初始化方法,专门用来加载这些配…

用AI + Milvus Cloud搭建着装搭配推荐系统教程

以下函数定义了如何将图像转换为向量并插入到 Milvus Cloud 向量数据库中。代码会循环遍历所有图像。(注意:如果需要开启 Milvus Cloud 全新特性动态 Schema,需要修改代码。) 查询向量数据库 以下代码演示了如何使用输入图像查询 Milvus Cloud 向量数据库,以检索和上传…