JMeter 做接口性能测试,YYDS

news2024/10/2 16:20:29

简介

本文由xmeter君写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已经有使用经验的请绕道,别浪费时间:-)  我们将介绍JMeter的使用场景,如何安装、运行JMeter,以及开始一个最最简单的测试。

你还徘徊在JMeter的门口吗?别犹豫了,跟着本文做完,你就可以开启你的JMeter之旅了。

JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。近来,JMeter因为其使用简单,现在也被社区作为接口测试工具...... 啥?什么是性能测试,怎么又来了个接口测试?

好吧,xmeter君举个栗子,你开了一个网店,兴冲冲地准备双十一大干一把,没想当天活动的时候大量用户一访问你的网店,你的网店挂了,那怎么办?办法就是在实际搞活动之前,先测试一下以确认系统能承受那么多的用户,当然测试的时候我们不需要请真正的这么多实际用户,否则得花多少钱啊,JMeter就是那个能帮助模拟大量用户访问你网站的一个软件。

对,而且它是开源的,不花钱!那个接口测试呢,这里大概了解一下就可以了,就是验证你的网店应用逻辑有没有问题的,比如你做打折活动的时候,结算的时候金额别出错,要不客户找你麻烦不是?

JMeter下载和安装

JMeter可以在JMeter的官方网站下载,下载链接如下图所示,xmeter君写本文的时候(2016/11)可以下载到的最新的版本是3.0,

JMeter下载

下载后解压到你系统下的任意目录,我们称该目录为%JMETER_HOME%,然后运行%JMETER_HOME%\bin\jmeter.bat文件,怎么样,JMeter出来了吗?嗯!?等等,好像报错了。

仔细看一下报错原因,原来是Java没安装,因为JMeter是用Java写的,运行的时候需要Java ......不对啊,xmeter君,我这里好像已经看到JMeter的界面了 -- 当然咯,恭喜你,这是因为你之前已经安装了Java了,就跳过下一步吧。

Java未安装错误

安装Java

安装之前先下载其安装包,下载地址:

www.oracle.com/java/techno…

打开页面后,按序点击下列所示的链接,xmeter君写本文的时候,Java的最新版本是8。

进入下一个页面后,按序点击如下所示开始下载,当然,下载的文件需要跟你的系统对应,如果是Linux请下载相关的Linux版本,xmeter君用的是Windows 64位版的Java。

下载完毕之后运行exe文件,按照向导提示安装完Java。再次运行%JMETER_HOME%\bin\jmeter.bat,如果都安装对了的话就应该能出现JMeter的运行界面了。

JMeter之初体验

JMeter安装完了,那我们来一个简单的实验。性能测试当然得有个测试目标,就是被测系统是什么,xmeter君这里就以测度娘为例来描述构造一个简单的性能测试过程:xmeter君保证你在5分钟之内完成一次测试体验。

添加虚拟用户组

如下图所示,右击“测试计划”>添加>Threads(Users)>线程组。这里xmeter君需要解释一下“线程组”的意思:JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统。

新建线程组

接下来xmeter君给大家介绍下“线程组”中常用到的一些设置。

1)线程数:这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。

2)Ramp-Up Period (in seconds): 虚拟用户增长时长。不明白别着急,xmeter君给你举个栗子:比如你测试的是一个考勤系统,那么实际用户登录使用考勤系统的时候并不是大家喊1、2、3 - 走起,然后一起登录。实际使用场景可能是9点钟上班,那么从8:30开始,考勤系统会陆陆续续有人开始登录,直到9:10左右,那么如果完全按照用户的使用场景,设计该测试的时候此处应输入40(分钟)* 60(秒)= 2400。

但是实际测试一般不会设置如此长的Ramp-Up时间,原因嘛,难道你做一次测试要先等上40分钟做登录操作?一般情况下,可以估计出登录频率最高的时间长度,比如此处可能从8:55到9:00登录的人最多,那这里设置成300秒,如果“线程数”输入为100,则意味着在5分钟内100用户登录完毕。

3)循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非你把它强制咔嚓。

线程组的设置

添加被测页面

接下来的一步就是要加入实际被测页面,右击“线程组” > “添加” > “Sampler” > “HTTP请求”。

添加“HTTP请求”

接下来需要设置一下“HTTP请求” Sampler的属性,如下所示:

1)名称:输入“百度”,就是被测试网页的描述性文字

2)服务器名称或IP:被测服务器的网站名字,也可以是IP地址。剩下的属性可以按照被测系统的属性按需配置,现在都可以为空。

设置HTTP请求的属性

现在的测试脚本已经可以运行了,先点击下面如图所示的第一步:点击保存脚本按钮;然后点击如图所示的第二步:点击运行测试按钮。

保存与运行测试

等等,xmeter君,为什么我的测试跑完了没啥反应?嗯,其实测试已经跑完了,你可以去“选项” > “Log Viewer”看看运行的日志。如果你还是看不到日志,你可以点击下面所示的三角箭头展开或者收起日志视图。日志视图中可以看到“线程组 1-1”的启动和结束时间,表明测试已经跑完。

测试日志视图

这JMeter运行看着也太不直观了吧?那如果我的测试有问题了,怎么发现啊?别着急,JMeter提供了“监听器”让用户来观察测试结果。

添加结果监听器

如下图所示,右击“线程组” > “监听器” > “察看结果树”来查看性能测试过程中请求和响应信息。添加完毕后,保存测试脚本,再次运行。

运行测试完毕之后,点击“察看结果树” > “百度”,点击下图中3所示位置,你可以看到一些测试期间一些有用的信息,比如发送的请求的信息和响应数据等。接下来可以试着改一下“线程组”里的“线程数”为10,就是模拟10个用户访问。别改太大哦,否则小心度娘把你的IP地址给封了 :-)

好啦,至此为止,你已经学会了写一个最简单的JMeter的性能测试用例。怎么样,够简单吧


如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

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

这些资料,对于想做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……加入我的学习交流群一起学习交流讨论把!!!! 

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

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

相关文章

房产|1月全国70城房价出炉!疫情放开后你关心的城市房价有何变化

2023年1月份,70个大中城市中新房销售价格环比上涨城市个数增加;一线城市新房销售价格环比同比转涨、二三线城市环比降势趋缓,二三线城市同比下降。 | 新房/二手房12月-1月环比上涨城市数量变化 70个大中城市中,新房环比上涨城市…

RBAC(Role-Based Access Control:基于角色的访问控制)

RBAC是什么 1、RBAC模型概述 RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,这种思想就已经被提出来,直到20世…

控制层类上的注解、业务层的注入、URL映射、参数接收、返回数据及网页模板、RESTful

控制类的作用: 处理http的请求,从HTTP请求中获得信息,提取参数,并分发给不同的处理服务,处理之后封装成一个Model ,然后再把该Model返回给对应的View进行展示。 控制层类上的注解 Controller:…

科技爱好者周刊之爱好者记录

前言 平时浏览的内容杂七杂八,说好听一些叫做“内容丰富,涉猎甚广”,实际一些则是受到主流大环境的冲击加之自身的控制力尚且不足。 有过类似经历的人大多知道,碎片化的信息除了填充大脑的冗余空间,在短期时间内就会被…

AMBA低功耗接口规范(Low Power Interface Spec)

1.简介 AMBA提供的低功耗接口,用于实现power控制功能。目前AMBA里面包含2种低功耗接口: Q-Channel:实现简单的power控制,如上电,下电。 P-Channel:实现复杂的power控制,如全上电,半上…

今天面了个腾讯拿28K出来的,让我见识到了测试基础的天花板...

公司前段缺人,也面了不少测试,结果竟然没有一个合适的。 一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。 看简历很多都是3年工作经验,但…

每天10个前端小知识 【Day 17】

前端面试基础知识题 1.使用原生js实现以下效果:点击容器内的图标,图标边框变成border:1px solid red,点击空白处重置 const box document.getElementById(box); function isIcon(target) { return target.className.includes(icon); } b…

【Unity VR开发】结合VRTK4.0:设置抓取时可交互对象的方向

语录: 取酒酿晚风,赠我一场空。 前言: 获取可交互对象的默认方法是将可交互对象的原点与交互器的原点对齐。此机制适用于基本抓取,但有时当您想要抓取某个对象时,您可能希望将可交互对象定向到特定位置并旋转到交互器…

【免费教程】SWAT模型及在面源污染中的应用与案例分析

SWATSWAT(Soil and Water Assessment Tool)是由美国农业部(USDA)的农业研究中心Jeff Arnold博士1994年开发的。模型开发的最初目的是为了预测在大流域复杂多变的土壤类型、土地利用方式和管理措施条件下,土地管理对水分…

mysql 按时间倒排序深翻页思考

背景深翻页,可以用id做为偏移量,但如果是uuid时,或需求是要按时间排序时,深翻页就是一个问题了。如果要按最后修改时间倒排序,把时间做索引是可以,但有可能时间是有重的,这样结果就可能不准确这…

【Deformable Convolution】可变形卷积记录

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 可变形卷积记录 1. 正文 预印版: Deformable Convolutional Networks v1 Deformable ConvNets v2: More Deformable, Better Results 发表版…

【郭东白架构课 模块一:生存法则】05|法则二:研发人员的人性需求是如何影响架构活动成败的?

你好,我是郭东白。上节课我们学习了马斯洛关于人性的理论,那么这节课我们就利用这个理论来看看我们在架构活动中应该注意些什么。 架构设计必须符合人性,而在架构活动中,与“人”相关的主要就是研发人员和目标用户。那么今天这节…

大数据全方位学习路线

大数据全方位学习路线 一、大数据处理流程 上图是一个简化的大数据处理流程图,大数据处理的主要流程包括数据收集、数据存储、数据处理、数据应用等主要环节。下面我们逐一对各个环节所需要的技术栈进行讲解: 1.1 数据收集 大数据处理的第一步是数据的收…

23- 条件随机场CRF (NLP算法) (算法)

CRF模型构建 : crf sklearn_crfsuite.CRF(c1 0.1,c2 0.1,max_iterations100,all_possible_transitionsTrue) crf.fit(X_train,y_train) 1、条件随机场CRF概述 将之前所有的观测作为未来预测的依据是不现实的,因为其复杂度会随着观测数量的增加而无限制地增长。因…

【C++提高编程】C++全栈体系(二十)

C提高编程 第三章 STL - 常用容器 二、vector容器 1. vector基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展&#xff1a…

小菜版考试系统——“C”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是小菜版考试系统,最近一直在忙C语言课程设计的事,那么,就请uu们看看我的学习成果吧。 课程设计任务 摘要 题目分析 流程图 关键程序代码 程序运行结果 结论与心得 参…

JVM08 StringTable

StringTable String的基本特性 String:字符串,使用一对 ”” 引起来表示 String s1 “mogublog” ; // 字面量的定义方式String s2 new String(“moxi”); string声明为final的,不可被继承String实现了Serializable接口:表示字…

python 调用 dll 出现精度问题

问题:python 在调用dll 的时候出现了精度问题 总结:使用decimal库进行转换就可以正常传递。 ‘ 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 ’ 遇到的问题具体情况 dll 生成函数…

手机棋牌游戏开发的流程是怎样的?

最近几年,随着网络游戏的兴起,棋牌手游开发也越来越受欢迎,在国内,几乎随处可见从事手游和手游的公司。不过,虽然公司和产品很多,但效果也不一样,区别就在于,他们能不能掌握好这款游…

实现一个更快的终端彩色文本格式化工具库

终端中打印的五颜六色的彩色文本,你知道是怎么实现的吗,你都知道或用过哪些相关的工具库呢?来一起了解一下吧! 在前端项目开发中,说到控制台终端彩色文本格式化,你可能会想到 chalk、picocolors、ansi-colo…