花5分钟判断,你的Jmeter技能是大佬还是小白!

jmeter 这个工具既可以做接口的功能测试,也可以做自动化测试,还可以做性能测试,其主要用途就是用于性能测试。但是,有些公司和个人,就想用 jmeter 来做接口自动化测试。

你有没有想过呢?

下面我就给大家讲讲,用 jmeter 如何做接口自动化测试。

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

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

01、 jmeter 与接口自动化测试

如果要你用 jmeter 来做接口自动化测试,你是不是把几乎每一个测试用例,都是用一个取样器来实现?

相信很多人都是这么想的,也是这么干的。

但是,很遗憾,你这种,是初级入门做法。你能实现所有的测试用例都被执行,但是,你写脚本和维护脚本的时间,可能比你用手工执行所有的测试用例时间还要长,而且还可能长很多。

因为,只要开发人员改了接口一个地方,你得从所有取样器中,找出与这个接口相关的所有取样器,然后一一修改,万一有遗漏,哪出现的失败,不是 bug,而是你脚本的问题。所以说,这是入门级人干的事情。

那有没有更好的办法呢?

平时写功能测试用例的时候,习惯用 Excel 的同学,可能就会想,我能把自动化测试用例每个信息都写在 Excel 表格中,然后,使用 jmeter 的 CSV 数据文件读取功能,把它读取出来执行,是不是就可以呢?

这种方法,就比前面的方法好了很多,用例还是用 Excel 来维护,只是使用 jmeter 来读取,执行就可以了。整体的可维护性要好很多很多,工作量也要少很多。

但是,在真正动手去做的时候,我们又会发现,困难重重。

写过自动化测试用例的同学,应该会有这样的经历,就是做接口测试时,我们通常会先对某个接口各种参数进行测试,这样,接口地址相同,但是参数不一样,校验的接口也一样。

在做完单个接口之后,我们还会做由多个接口构成的业务测试,这个时候,每个接口地址都不一样,接口请求的方法也可能不一样,最后的校验点,也可能变化,这样的自动化脚本,应该要怎么写呢?

第一个对单接口,编写自动化测试脚本,可能还好实现,因为接口相同,那么他的请求方法肯定相同,虽然,请求头、请求体、校验信息可能不同,但是,至少还有共同点。

而第二个,对业务编写自动化测试脚本,那就很难了,因为几乎所有的都可能不同,请求的协议、方法、请求头、请求体,全都可能不同,而且请求头和请求体还可能要有动态值,这个怎么做呢?

万事开头难,只怕去实践。只要你想好了,真正去动手做了,这很多问题,就不那么难了。

有很多事情,我们可以加条件判断,和循环控制等逻辑控制器,就可以实现的。

靠我一篇文章,就把它全部写出来,这是不现实的,所以,今天,主要讲一个,被很多同学问到,难倒了一大片好汉的问题。

图片

看到这个问题,你想到什么方法?

02、实操案例

如果你在 jmeter 中,每个接口写一个取样器,这个问题很好解决,直接使用参数引用就可以解决,但是,这个同学的做法是把测试用例写在 CSV 文件中,然后使用 jmeter 去读取 CSV 文件,执行测试用例,如何来实现动态参数呢?

肯定,有的同学已经想到了,使用变量引用,在 CSV 中,按照 jmeter 的写法,写引用变量。

好了,给大家一个看一个参考:

图片

这个 CSV 文件中,有两个不同的接口,说明是做的业务场景自动化测试,第一个接口,是注册,那么每次注册的账户肯定不能相同,如果相同了,那么第二次肯定失败,所以,就使用了随机函数,让注册的账户自动生成。

第二个接口是登录,当然,可以用固定账户登录,但是,我们前面进行注册,最好还是用前面注册的账户来登录,这样更加真实,body 中使用了变量引用,显然,这是用到了关联。

我们用 jmeter 写个脚本,来运行下,看能否成功。

图片

从脚本来运行情况来看,我们可以取到名称,地址,和请求体,但是,因为请求体在 CSV 中写了 jmeter 函数,结果读取出来运行时,还是原样运行,并没有对请求体中的函数进行执行。
 

怎么办呢?

很多人,就卡在这了,不知道怎么办了。

其实,我们想一下,现在是内容读取出来了,但是内容是原样进行请求,没有对内容中的函数进行执行,现在的问题,只需要解决 body 中的函数,能被运行就可以了。

我们再想下,在 jmeter 中,有哪些可以运行函数的方法?jexl3 函数可以,groovy 函数可以。

03、Exl3 函数

jexl3 函数,是要运行一段代码,返回代码结果,我们的 body 是 JSON 格式,显然不能直接运行,要想运行,还得写 Java 代码调用 JSON 运行才可以,非常复杂。

groovy 函数,是要运行一个表达式,显然,也不行。

那还有没有其他的函数呢?eval 函数,这个函数,返回的是字符串表达式运行的结果。

图片

此时,我们修改下我们 jmeter 中取样器的请求体。

图片

图片

看,运行结果,函数被执行了,注册的账号动态变化了。

接下来,我们就把第 2 条用例,使用了关联,也写出来。

图片

现在,我们已经实现,在 jmeter 中,使用一个取样器执行 2 个不同接口,并且动态参数值的自动化运行了。

现在,我们再把断言加上。

图片

注意:断言中,如果有中文,就要特别注意文件编码

现在,我们再加大难度,在 CSV 文件中写个 GET 接口。

图片

我们发现,多个接口请求方法不一样,jmeter 肯定不能用 1 个取样器了, get 请求没有 body 参数,但是,请求头要添加一个 Token 参数。

是不是一下楞圈了,不知道怎么动了?看懂下面的图,你就知道怎么做了。

图片

在取样器的前面增加一个条件判断,判断是请求方法,根据请求方法,执行 POST 取样器或 GET 取样器

然后,把循环次数设置为 CSV 文件条数一致,其他的地方,应该就比较容易理解了。 

04、END

看最后,多条测试用例,只用 2 个取样器就搞定了。以后,改动 CSV 文件,可能都不用动 jmeter 脚本,增加测试用例,改下循环控制器数量就可以了。

当然,这还不是最完美的,里面还有诸多不足。给想用 jmeter 做接口自动化测试的同学开了个头,更多的,还需要同学们自己动手,也欢迎同学们,在文章后面留言讨论。

注意,这篇文章的技术,只适合在自动化中,不能用这个脚本进行性能测试。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

潮流玩具行业研究:肇始于童心,进阶于品牌

遍览海内外同行,我们认为依赖外部IP授权的模式难以诞生伟大的潮玩品牌,打造原创IP才是获得持久生命力与高利润率的进阶之路。原创潮玩公司需要积极开拓原创IP,实现从“个别潮玩形象”到“系列潮玩IP”,再到“潮流品牌IP”的三级跃…

361度:聚焦主业品牌加速升级,童装业务打造第二增长极

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,太平洋证券近期发布研报给予361度(01361)“买入”评级,太平洋证券在研报中称,361度作为国内第四大国产运动品牌,深耕大众运动市场20载&a…

直流无刷电机工作原理及有感方波控制

BLDC方波控制 BLDC工作原理BLDC换向驱动过程有感控制模式 BLDC工作原理 首先要知道,BLDC转起来是基于什么原理 BLDC包括定子(线圈)和转子(永磁体),线圈要通电,通电的线圈具有磁场,该…

传统进销存软件上云势在必行

随着移动互联网的迅猛发展,云服务也是整个社会发展的趋势。传统进销存软件上云势在必行。云端进销存数据安全,操作方便快捷,大大提升工作效率,帮助老板随时随地做生意,也为以后扩大公司经营打好基础! 传统软…

进销存软件选哪个好?

以前,在朱泽内金融行业,大多数的较大型企业管理都是纯手工历史记录,包括企业业务流程管理、财务管理记帐等。因为,很多较大型企业体量不大,人员有限,在组织工作职能的划分上也比较混乱,常常是一…

经销商如何挑选一款适合自己的进销存软件?

传统会展民营企业在互联网发展迅速的今天,如果不借助于高效率的控制系统展开网络化结构调整,是无法跟得上时代的步伐的,粗放式低效率的管理工作方式只会引致民营企业越来越困难,生产成本不断增加、销售收入不能获得提高&#xff0…

Excel打造进销存管理系统,让Excel自动化办公~

Excel打造进销存管理系统https://edu.csdn.net/course/detail/38573 进销存管理系统是一个综合性案例,融合函数,透视表,基本图表,宏,VBA,Microsoft Query,Power Query 从基础表格构建 &#xf…

openGauss学习笔记-52 openGauss 高级特性-LLVM

文章目录 openGauss学习笔记-52 openGauss 高级特性-LLVM52.1 适用场景52.2 非适用场景52.3 其他因素对LLVM性能的影响52.4 LLVM使用建议 openGauss学习笔记-52 openGauss 高级特性-LLVM openGauss借助LLVM(Low Level Virtual Machine)提供的库函数&…

vue2 自定义指令,插槽

一、学习目标 1.自定义指令 基本语法(全局、局部注册)指令的值v-loading的指令封装 2.插槽 默认插槽具名插槽作用域插槽 二、自定义指令 1.指令介绍 内置指令:v-html、v-if、v-bind、v-on… 这都是Vue给咱们内置的一些指令,…

Java“牵手”天猫商品快递费用API接口数据,天猫API接口申请指南

天猫平台商品快递费用接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取天猫商品的标题、价格、库存、商品快递费用,宝贝ID,发货地,区域ID,快递费用,月销量、总销量、库存、详情…

freenom php,Freenom免费域名.TK、.CF、.ML、.GA注册及使用方法

去年,Freenom网站来了个大改版,不仅网站页面进行了大幅度调整,更重要的是Freenom这次终于统一了.TK、.CF、.ML、.GA这四个免费域名账号的后台登录,原先.TK、.CF、.ML、.GA都有各自独立的账号系统,现在全部统一使用Freenom的后台账号管理系统。 改版后的Freenom实际上整合了…

<七> objectARX开发:创建自定义实体

1、介绍 在某些情况下,CAD中的实体对象无法满足需求,我们需要针对实际情况来设计并绘制自定义的实体,下面就用一个简单的例子来介绍一下自定义实体绘制。 实体形状:包括实体夹点和文字夹点拖动实现。 2、效果 3、创建自定义实体的步骤 新建一个从AcDbEntity继承的类,如C…

穷建站(二):在DnsPod中为申请的tk域名进行域名解析

文章目录 1 序2 DnsPod域名解析2.1 DnsPod网站账号注册2.2 在DnsPod中添加需要解析的域名 3 在Freenom中进行域名解析配置 1 序 在上一篇博文中:穷建站(一):申请免费的tk顶级域名 博文中已经成功的申请了一个tk顶级域名&#xff…

最容易申请到的免费顶级域名.tk

TK与COM、NET、CN、TV一样同属顶级域名、是小国家域名、也是网络上最容易申请到的免费域名之一。 Dot TK网站提供免费和收费两种域名:免费域名必须保证在90天内有25次访问,否则将域名给收回。 免费注册的用户仅有其域名的使用权。只要您每九十天在您的域名名称里有活动一次,…

关于申请个人域名和虚拟主机---个人域名篇(.tk顶级域名)

本文介绍国外免费域名.tk的注册和部分使用,顶级域名哦 从这里注册.tk,打开后会是这个样子 填一个你想申请的域名,这里我填的测试域名是wokanxing.tk 填完后 go 当然可以用自己的DNS解析..但是我没有..而且主机屋的貌似不支持.tk的解析.最近我在问客服,等有进展再告诉大家 当…

TK域名首次注册教程(咸干花生)

http://wenku.baidu.com/link?urlrvRbl9BWNOSKnNffHy-u0TK9lJfZifPSnHdARGhT8oVuKaxU0fPX-QyEcH43KFinmJztbvEIRVabYw8sxK_5TEI6r2EGhsmORwSKVVKq0u_ http://wenku.baidu.com/link?urljUE7rnWFsm4UZ-58RckyFx63Vy7xNstOrfSXP12RKGIx57zOEcpOnH3rpIituAppG1YzYE-3-OhDN5jismEy…

穷建站(一):申请免费的tk顶级域名

文章目录 1 序2 注册免费的tk顶级域名 1 序 建一个个人网站我相信是很多人从初中甚至是高中开始就想做的一件事情,起码我是这样的。 在初中的时候第一次上网,我就很好奇网站到底是怎么建起来的,我们又是如何通过互联网去访问到我们的站点并成…

TK免费顶级域名注册申请和使用:域名DNS解析设置和绑定空间

TK域名算是目前唯一一个可以注册和使用的免费顶级域名了,在国内使用的人数非常多,用TK域名搭建的网站也是不可计数,和CO.CC域名一样,TK域名网站提供了多国语言,包括了简体中文在内,使用简单方便。 之前也介…

怎么注册tk域名_关于注册免费TK域名不成功的几个问题解决方案

网友热度 14,151 ℃ - 1条评论 看到老左Q群里不少的新手站长在讨论.TK免费域名注册不成功的问题,我本以为是之前的"免费.TK域名注册详细图文教程"可能会因为限制,甚至是教程界面的变化我们不好注册使用。因为在之前的同类.CF和.ML域名也是这套…

未注册TK域名批量搜索器

TK域名是免费顶级域名,和CN域名性质一样,现在除了支持转发外,已经可以设置A、CNAME、MX记录和修改DNS服务器!现在很稳定而且还有许多4字母的域名可以注册,可是上网页只能一个一个查,真是太慢,想…