使用Jmeter进行http接口测试的实践

前言:

  本文主要针对http接口进行测试,使用Jmeter工具实现。

  Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。

一、开发接口测试案例的整体方案:

  • 第一步:我们要分析出测试需求,并拿到开发提供的接口说明文档;
  • 第二步:从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点。
  • 第三步:和开发一起对接口测试案例进行评审。
  • 第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。
  • 第五步:结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。

二、接口自动化适用场景:

目前设计的自动化接口测试案例有两个运行场景:

  1. 测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。【开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。】

2. 回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。

三、接口测试环境准备

 Jdk1.6或以上:Java Downloads | Oracle 

Jmeter,下载址址:Apache JMeter - Download Apache JMeter 

插件的下载安装地址:JMeter Plugins :: JMeter-Plugins.org

四、创建工程:

  1、打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件:

  2、添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。

  3、添加“HTTP Cookie管理器”:

  4、添加“Http请求默认值”组件,当被测系统有唯一的访问域名和端口时,这个组件很好用:

  5、在“HTTP 请求默认值”组件配置页面,填写被测系统的域名和端口,http请求的实现包版本以及具体协议类型,线程组里的所有“HTTP Sampler”可默认使用此设置。

  6、在“线程组”里添加“HTTP 请求”的Sampler

  7、在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表:

  8、设置检查点:在被测接口对应的“HTTP 请求”上,添加“响应断言”

  9、在设置页面上添加对相应结果的正则表达式存在性判断即可:

  10、添加监听器:方便查看运行后的结果

  运行结果:

上述步骤完成了一个简单测试案例的创建,复杂测试案例均在此基础上扩展完成。使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。比较独立的接口,可以统一放在一个线程组内,顺序完成测试。  

流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

深入理解二叉树构建和中序遍历

在计算机科学中,二叉树是一种重要的数据结构,用于模拟层次化结构的关系。本文将介绍一个简单的C语言程序,该程序实现了对输入字符数组的解析,并构建相应的二叉树,随后对二叉树进行中序遍历。 二叉树定义 首先&#x…

Redis监控工具

Redis 是一种 NoSQL 数据库系统,以其速度、性能和灵活的数据结构而闻名。Redis 在许多领域都表现出色,包括缓存、会话管理、游戏、排行榜、实时分析、地理空间、叫车、聊天/消息、媒体流和发布/订阅应用程序。Redis 数据集完全存储在内存中,这…

揭秘爆红AI图像增强神器:Magnific AI如何做到1亿像素放大?

最近有个很火的AI图像增强应用,叫Magnific AI。 你知道吗,它发布一个多月就有40万人注册了! 这个应用确实非常实用,它不仅利用AI技术放大了图像,还能提升分辨率,从而使图片呈现得更加清晰。 值得一提的是…

扩展以太网(数据链路层)

目录 一、在物理层扩展以太网 二、在数据链路层扩展以太网 三、以太网交换机的特点 四、以太网交换机的交换方式 五、以太网交换机的自学习功能 六、小结 一、在物理层扩展以太网 使用光纤扩展: • 主机使用光纤(通常是一对光纤)和…

跨境电商商品数据集爬取方案|跨境电商商品采集API接口

跨境电商数据集介绍 我们就以电商商品的数据集作为依托,从而来了解什么是数据集,可以通过什么方式来进行数据集的获取。 什么是数据集 电商商品数据集通常是指收集自电子商务平台的商品信息的结构化数据集合。这些数据包括但不限于商品名称、价格、描…

有关Theano和PyTensor库

根据Github里面的介绍,PyTensor是源于Theano, Theano目前应该已经不再开发了,更新都是很多年前。 因此PyTensor在背景介绍中说 PyTensor is a fork of Aesara, which is a fork of Theano. Theano和PyTensor都是计算相关的库,可以…

数据结构面试常见问题之- Sort with Swap(0,*)

😀前言 在数据结构面试中,排序算法是考察重点之一。传统的排序算法,例如冒泡排序、快速排序等,都依赖于元素之间的比较和交换操作。然而,在某些情况下,我们可能只允许使用特定的交换操作,例如只…

【网络原理】详解HTTPS协议加密过程

文章目录 🌴HTTPS协议是什么?🎄运营商劫持事件🌲HTTPS的工作过程🌸对称加密🌸非对称加密🌸引入证书🌸完整流程 🌳HTTPS加密总结⭕总结 🌴HTTPS协议是什么&…

Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)

雪崩效应 我们把基础服务故障,导致上层服务故障,并且这个故障不断放大的过程,成为雪崩效应。 雪崩效应,往往是因为服务没有做好容错造成的。 微服务常见容错方案 仓壁模式 比如让controller有自己独立的线程池,线程池满…

Windows 设置多显示器显示

Windows 设置多显示器显示 1. Windows 7 设置 HDMI 输出2. Windows 11 设置多显示器显示References 1. Windows 7 设置 HDMI 输出 2. Windows 11 设置多显示器显示 ​​​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

畅谈AIGC,ISIG-AIGC技术与应用发展峰会成功举办

3月16日,第四届ISIG中国产业智能大会在上海中庚聚龙酒店如期开幕,此次大会由苏州市金融科技协会指导、企智未来科技(RPA中国、LowCode低码时代、AIGC开放社区)主办。大会聚集了来自不同领域的专家学者、行业领军人物及技术研发者&…

Linux系统——nload命令

目录 引言 一、nload安装 二、nload命令详解 1.命令使用 2.命令详解 3.命令选项 3.1-u选项 nload -u h 自动变更单位,Bit/s nload -u H 自动变更单位,Byte/s 3.2-m选项 nload -m 不显示流量图 nload -m -H ens33 不显示流量图,以By…

深度学习训练前标准的LMDB文件(data.mdb和lock.mdb)制作(附代码)

目录 一、LMDB文件二、准备训练集三、安装basicsr包四、LMDB文件制作4.1 参数修改4.2 其它格式图片修改4.3 代码4.4 转换结果4.4.1 data.mdb文件4.4.2 lock.mdb文件4.4.3 meta_info.txt文件 五、总结 一、LMDB文件 在训练的时候使用LMDB 存储形式可以加快IO 和CPU 解压缩的速度…

点餐小程序开发:如何通过抽奖与消费者互动

随着科技的发展,越来越多的商家开始使用点餐小程序来提升自己的服务质量和效率。然而,仅仅提供点餐服务并不能满足消费者的需求,他们还需要一种方式来增加与商家的互动,提高消费体验。抽奖活动就是一种非常有效的互动方式&#xf…

FreeRTOS 消息队列

1. 队列简介 1.1 队列的概念 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递) 类似全局变量?假设有一个全局变量a 0,现有两个任务都在写这个变量 a: 大家想象一下如果任务 1 运行一次&#…

[NOIP1998 提高组] 拼数

[NOIP1998 提高组] 拼数 题目描述 设有 n n n 个正整数 a 1 … a n a_1 \dots a_n a1​…an​,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。 输入格式 第一行有一个整数,表示数字个数 n n n。 第二行有 n n …

一些刷题需要用的大数据

无符号版本和有符号版本的区别就是有符号类型需要使用一个bit来表示数字的正负。 如果需声明无符号类型的话就需要在类型前加上unsigned。 整型的每一种都分为:无符号(unsigned)和有符号(signed)两种类型(f…

Day76:WEB攻防-Fuzz模糊测试篇JS算法口令隐藏参数盲Payload未知文件目录

目录 Fuzz技术-用户口令-常规&模块&JS插件 无验证码密码明文 无验证码密码弱加密(MD5) 无验证码密码复杂加密(通过js文件进行加密) Fuzz技术-目录文件-目录探针&文件探针 Fuzz技术-未知参数名-文件参数&隐藏参数 Fuzz技术-构造参数值-漏洞攻击恶意Paylo…

分布式之Skywalking

Skywalking skywalking是一个apm系统,包含监控,追踪,并拥有故障诊断能力的 分布式系统 一、Skywalking介绍 1.什么是SkyWalking Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint …