介绍完了接口测试是什么及其内在逻辑和Jmeter的安装,从这篇文章开始我们正式开始介绍Jmeter的使用方法。如果对接口测试逻辑流程和Jmeter安装有疑问的朋友,可以看这两篇文章:

星空下:软件接口测试是什么?怎么测?​zhuanlan.zhihu.com

星空下:软件接口测试工具软件Jmeter安装方法​zhuanlan.zhihu.com

好了,接下来就开始这篇文章的内容吧。说实话,Jmeter的用法真的不难,在明白了自己为什么要学以及要学哪些工具之后,学习Jmeter就像学习Word、Excel等操作软件一样,简单的很。

一、测试计划界面及基本设置

通过双击bin目录下的ApacheJMeter.jar打开软件,得到的是下图这样的一张图片,这就是Jmeter的主界面了。

如上图所示,可以安装上左右分成几个模块,上面和平常用的软件一样,都是一些功能点,后面详细介绍。上图中红框1中是测试计划,可以在这里添加线程组,然后在线程组下面添加请求、结果树等零件,然后就组装起了一个可以完成某个功能的机器人。

先来介绍一下红框2、3、4里的东西,剩下的内容以后遇到了我们再说,毕竟,学习要有重点,能够完成需求就可以了。

Jmeter里面是以测试计划为基本单位的,红框2里面就是命名和注释测试计划的地方,可以根据测试的目的和单位具体的规则来命名。影响不大,可以随时修改。

红框3里面是用户自定义的变量,这是解决参数化需求的一种方式,最常用的是另外一种。所以可以不用管它,最常用的是CSV和函数,我们后面会先重点介绍CSV。

红框4里面就有一些东西了,第一个选项是独立运行每个线程组。其实就是让同一个测试计划下的若干个线程组按照顺序从上往下执行,即,执行完一个再执行一个这样子。如果不进行设置的话,线程组的执行顺序是不一定的(并发执行)。这个选项主要在涉及到参数传递的关联接口测试中会用到。

红框4的第二个选项是主线程结束后运行teardown线程组,一般默认勾选就可以了。在Jmeter中,除了普通线程组以外,还有两个特殊的线程组,setup线程组和teardown线程组。前者一般用来加载资源,最先执行,后者一般用来保存数据等收尾工作,最后执行。

函数测试模式暂时不介绍,需要先介绍了函数以后才会用到函数测试模式,而且一般也不用。

剩下的添加目录或jar包到classpath这个选项,主要是在直连数据库的时候会用到。

二、线程组界面及基本设置介绍

在测试计划处右键单击,依次选择 添加 --- 线程 --- 线程组,就可以为测试计划添加线程组了。添加以后得到的线程组界面如下图所示:

红框1里的名称注释和测试计划的名称注释差不多,根据需要自己修改就可以了。红框2里面的线程属性是值得介绍一下的。

所谓线程数就是理解为用户数,这里设置3个线程,就可以理解为有3个用户执行了这一线程。循环次数可以理解为一个用户执行了几次。比如说线程数和循环次数都设置为3次的话,所代表的含义是有三个用户,每个用户执行3次,一共9次。所谓ramp-up时间,则指的是在多少时间之内执行完毕。在前面的基础上,这里设置为3秒,意味着在3秒之内执行9次。循环次数勾选永远的话,就是一直执行下去。

其他的选项保持默认即可,遇到特殊情况再做调整。接下来说一下调度器,勾选以后,持续时间和启动延迟就可以选择了。一般这两个选项是要和循环次数---永远 一起用的,即,在多少时间之内(持续时间)一直循环执行,持续时间之后就不执行了。而启动延迟指的是点击执行后延迟一段时间(启动延迟)执行。

三、请求界面及基本设置介绍

在线程组上右键单击,选择 添加---取样器---http请求 就可以为线程组添加请求了。请求可以说是线程组里的基本单位了,请求有有蛮多种的,最常用的就是http请求。所以我们介绍的时候用http来介绍,后面涉及到数据库直连的时候,我们会继续介绍JDBC Request。

到这里,应该就很熟悉了吧。http请求名称和注释和前面的一样,不多说了。在下面的web服务器里涉及到协议,一般指http或者https,服务器名称或ip即指对应的域名或者ip地址,这里不涉及到具体的路径。端口号的话,根据接口清单来。http请求里的get/post等方法选择、路径填写、内容编码(一般是utf-8)等都是要根据接口清单来的。

什么?接口清单是什么?接口清单就是根据api接口文档提取出的一些列包括了接口三要素(url+方法+参数+返回值),正好与这里要填的信息是一一吻合的。下面的同请求一起发送参数包括content-type和post及put等需要提交数据的接口。

考虑到同一个测试计划下,有很多接口在web服务器里的协议、服务器名称、端口号和内容编码等都是一致的,为了方便,可以添加一个HTTP请求默认值。将这些一样的东西放到请求默认值里,后面再添加http请求的时候就不需要再次填写了。

添加的方法是 右键单击测试计划,添加 --- 配置元件 --- HTTP请求默认值。在添加的时候我们可以看到还有一些CSV数据文件设置、HTTP信息头管理器。前者是我们做参数化的重要手段,后者也是比较常用的,主要用来设置HTTP信息头里一些共用的东西,比如说”User-Agent"、“Pragma"、”Referer"等属性。

像HTTP请求默认值、CSV数据文件设置和HTTP信息头管理器既可以在测试计划的维度上设置,也可以在线程组的维度上设置,我们一般推荐的是在线程组的维度上设置。因为线程组覆盖的请求更少,更方便精确控制。

基本上,Jmeter的基本框架:测试计划--->线程组--->请求,我们就有了基本的了解。配合以接口测试的逻辑和接口测试的数据,就可以开展基本的get、post、put等方法的接口测试了。

可是测试的结果到底是怎么样的呢?我怎么样才能够看到结果呢?这就需要用到另外的组件了,一般常用的是结果树。添加方法是右键点击测试计划,添加---监听器---查看结果树,如下图所示:

到这里,测试计划---线程组---http请求---查看结果树 这一套流程就介绍完了。有关于实战案例的话,可以自己试验一下,或者找几个视频看看,理解一下记住就可以了。在接下来的内容中,我们将介绍Jmeter中的一些核心功能,主要是单接口测试过程中的参数化(数据驱动)和关联接口测试过程中的参数传递,敬请期待。

记得点赞收藏关注偶~

jmeter 线程执行顺序_软件接口测试工具Jmeter使用方法详解(一)相关推荐

  1. jmeter 线程执行顺序_面试官让我说出8种线程顺序执行的方法!我懵了

    https://www.cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止 ...

  2. jmeter 线程执行顺序_性能测试之jmeter逻辑控制种类详解一

    逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控 ...

  3. 古筝d调变降e调怎么办_干货|古筝转调变调方法详解!

    原标题:干货|古筝转调变调方法详解! DGCF 降B 右移 升记号转调 DGCF降B是右移 各相邻调式间均相差一个小二度,即固定把前一个调的3(mi)音调为4(fa)音,则原调的此音4(fa)等于下一 ...

  4. mysql连接数详解_查看mysql当前连接数的方法详解

    1.查看当前所有连接的详细资料: ./mysqladmin -uadmin -p -h10.140.1.1 processlist2.只查看当前连接数(Threads就是连接数.): ./mysqla ...

  5. jmeter 线程执行顺序_Jmeter-线程组执行顺序控制

    线程组按顺序来执行,大概思路, 1.需要控制线程组内的操作在满足某一条件才执行,那么就需要使用if或者while: 2.要使用if或者while都需要一个变量,而这个变量要在两个或多个线程组内使用,那 ...

  6. linux shc shell脚本_使用shc工具加密shell脚本详解

    Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件.经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x ...

  7. arthas 查看哪个方法调用最耗时_Java开源诊断工具Arthas使用方法详解

    一.前言 1.热更新代码的场景 (1)当线上服务器出现问题时,有些时候现有的手段不足以发现问题所在,可能需要追加打印日志或者增加一些调试代码,如果我们去改代码重新部署,会破坏问题现场,可以通过热部署的 ...

  8. Python基本语法_集合set/frozenset_内建方法详解

    目录 目录 前言 软件环境 可变集合Set set函数创建集合 创建空集合 集合元素的唯一性 集合推导式 set类型对象的内置方法 add增加一个元素 remove删除一个元素 pop随机删除并返回一 ...

  9. python打包安卓的方法_打包发布Python模块的方法详解

    前言 昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来), 由于自己的 ...

最新文章

  1. 【特征匹配】ORB原理与源码解析
  2. BeetleX服务网关流量控制
  3. Strange Partition CodeForces - 1471A
  4. Javascript Proxy对象 简介
  5. DFS建立准备之基于windows 2008 R2的第二台域控建立
  6. 【实践】多场景下的搜索词推荐算法及在腾讯的应用实践.pdf(附下载链接)
  7. vue点击按钮打开下拉菜单_vue 点击弹出下拉菜单 点击其他页面收回菜单
  8. 解决:Eclipse SVN一直要求输出登陆密码
  9. 计算机语言output,output是什么意思
  10. 国外最顶级的人工智能网站资源
  11. 阿帕拉契州立大学代表团访问AURAK
  12. VS2019配置WTL10.0
  13. 人牙髓干细胞,多能分化,不只用于牙齿组织再生研究
  14. IOS13图标尺寸_7大原则,带你设计出更优秀的图标
  15. 齐岳定制|Cyclopropene-PEG-Xylan|环丙烯-聚乙二醇-木聚糖
  16. ilitek win10 触摸屏驱动_德国布拉本达(Brabender)触摸屏维修常见故障_触摸屏维修吧...
  17. JWT之token机制与双token详解
  18. 【CISSP备考】考前情报收集
  19. mysql聚簇索引和非聚簇索引
  20. arm powerpc mips dsp

热门文章

  1. 查询表中id相同的记录mysql_mysql – 从两个表中的ID相同的两个表中选择数据
  2. 程序显示文本框_vb程序语言题库
  3. C++面试题-面向对象-多态性与虚函数
  4. dz安装教程php,discuz论坛安装教程 2017最新discuz论坛安装教程
  5. 首发!来自你的Java同行的调查报告
  6. 网络管理 之 Fedora Core 网络配置工具system-config-network介绍
  7. 十三周二次课(6月20日)
  8. shell制表与脚本运行进度条写法
  9. 原来这么简单就可以实现无纸化办公
  10. information_schema.engines学习