Jmeter脚本录制

1、引言

无论是做接口自动化还是性能测试,Jmeter都非常广受测试行业人员的热爱,但说到底Jmeter也只是工具,是为达到测试目的的一种工具或或是入门学习的途径工具罢了,最近看有同事在用Jmeter,但看在编辑Jmeter脚本时非常的难受,公司接口不太规范,没有正规的接口说明文档,也没有swagger即使有也不能拿过来直接使用,所以大部分都会用浏览器自带的开发者工具(F12调用)或其他的抓包工具,再对照业务 一个个的找到对应的接口再手动写到Jmeter里,这样的工作效率将大大折扣。最近本人也在使用Jmeter,对上做了一些研究Jmeter录制脚本,如遇到此情况能提高一下工作效率吧,所以在使用过程中也总结了一些心得分享大家。
其实真如果出现了上面的情况,那就说明对接口测试的强制不高,也就简简单单的使用,脚本录制,回放就OK了。所以本文介绍的也是最基本的常用的录制脚本,修改脚本,不做过多的涉及到其他方面的介绍。

2、录制原理

在录制之前先简单说明一下原理,给个简单的图示来说明会容易明白一些,我们录制的也大部门是http(s)协议的脚本,http协议其实就是请求与响应,最简单一些就如下图一条链路“客户端到服务器端”,稍微复杂一点的就经过了“客户端->代理->防火墙->路由器->交换机->服务器”

而我们所使用的Jmeter去录制脚本其实就相当于在客户端到服务器端通讯之间加了一个代理。

3、代理设置

知道了Jmeter录制原理后,我们就知道了为什么要设置代理了。

3.1、以Google Chrome为例进行设置代理的操作步骤

  1. 点击浏览器右上角的"三个点"找到设置项(或使用快捷键“ctrl+shift+del”),打开浏览器的“设置”。
  2. 在搜索框中输入“代理”。
  3. 打开本机的代理设置。
  4. 打开手动设置代理服务器,输入“地址、端口”。
  5. 保存手动设置的代理信息。

4、Jmeter录制设置

4.1、添加HTTP(S)测试脚本录制器

添加HTTP(S)测试脚本录制器“TestPlan->add->Non-Test Elements->HTTP(S) Script Recorder”

4.2、HTTP(S)测试脚本录制器设置项说明

4.2.1、HTTP(S) Test Script Recorder

**Name:**显示在左侧计划树结构里的描述信息。
**Comments:**对此脚本录制的说明,只是一个备注说明信息。

**State:**就是一个动作按钮
**Start:**开始录制; **Stop:**停止录制; **Restart:**重新录制
启动录制时会需要认证,如果浏览器没有安装相关证书需要提前安装,一般根据提示确认就行了。

4.2.2、Global Settings**

**Port:**端口,默认是8888,注意这里的端口值要与上节设置的代理端口值一致。
**HTTPS Domains:HTTPS的域(或主机)名称列表。使用此方法预生成要记录的所有服务器的证书。
例如,.example.com, .subdomain.example.com,请注意通配符域只适用于一个级别,即abc.subdomain.example.com匹配
.subdomain.example.com,而不匹配
.example.com

4.2.3、Test Plan Creation

测试脚本的创建设置,在启动时生效。
Test plan content
**Target Controller:**代理将在其中存储生成的示例的控制器。默认情况下,它会寻找一个记录控制器并将它们存储在那里。
左侧计划里创建了几个线程组,在下拉框里显示几个选项,切记不要选择“Use Recording Controller”这个只是个提示,并不一定存在,除非手动创建一个与其名称一样的线程组。


Grouping
**Do not group samplers:**按顺序存储所有记录的采样器,没有任何分组。
**Add separators between groups:**添加名为“--------------”的控制器来创建组之间的视觉分隔。否则采样器将按顺序存储。
**Put each group in a new controller:**为每个组创建一个新的Simple Controller,并将该组的所有采样器存储在其中。
**Store 1st sampler of each group only:**每组中只有第一个请求将被记录。只有“Follow Redirects”和“Retrieve All Embedded Resources…”被打开时才生效。
**Put each group in a new transaction controller:**为每个组创建一个新的事务控制器,并将该组的所有采样器存储在其中。

Capture Http Headers
应该在计划中添加标题吗?如果指定,头管理器将被添加到每个HTTP采样器。代理服务器总是从生成的报头管理器中删除Cookie和授权报头。默认情况下,它还删除If-Modified-Since和If-None-Match头。它们用于确定浏览器缓存项是否最新;当录制时,我们通常希望下载所有的内容。要更改要删除的附加头信息,可以将JMeter属性proxy.headers.remove定义为一个以逗号分隔的头信息列表。

**Add Assertions:**为每个请求增加一个空白断言,没有啥用一般不选。

**Regex Matching:**当替换变量时使用正则表达式匹配?如果勾选了replacement,将使用单词边界,也就是说,它将只替换变量的单词匹配值,而不是单词的一部分。Perl5定义之后有一个词边界,它等价于\b。
注,这个也是在有“User Defined Variables”用户自定义变量时,会根据变量名与值自动替换请求中与变量值相同的信息替换成变量名信息。

4.2.4、HTTP Sampler settings

采样器设置
**Transaction name:**名字,如“登录”
Naming scheme:
**Prefix:**录制脚本名的前缀,即录制的脚本显示“登录path”,这里的“登录”即上面的Transaction name,path即为url中的相对路径。
**Transaction name:**录制脚本的名称,即“登录”。
**Suffix:**录制脚本名的后缀,即“path登录”。
**Use format string:**用户自定义,可根据后面自定义如"#{counter,number,000} - #{path} (#{name})",即000-path登录。

下面不常用的就不做介绍了,感兴趣的可以自己研究一下。
接下来说一下“Requests Filtering”即请求过滤

4.2.5、Requests Filtering

**Content-type filter:**基于内容类型过滤请求——例如。“text / html; charset = utf - 8”。字段是正则表达式,检查它们是否包含在内容类型中。[不必匹配整个字段]。首先检查包含过滤器,然后检查排除过滤器。过滤出来的请求将不被保存。
注,Content-type filter此过滤也应用于响应的内容类型。

text / html; charset = utf - 8

**URL Patterns to Incloude:**与采样的完整URL匹配的正则表达式。允许过滤被记录的请求。所有请求都通过,但只有那些满足Include/Exclude字段要求的请求才会被记录。如果Include和Exclude都为空,那么所有内容都将被记录(这可能导致为每个页面记录几十个示例,如图像、样式表等)。

URL Patterns to Include
记录请求信息包括URL 正则匹配到的信息,
如前面没有设置HTTPS Domains,并且只想录制指定地址或域下的信息,此处可以设置为“http://172.16.20.88:8090.*”,只会录制与此相关的请求信息,其他请求信息自动过滤掉。

http://172.16.20.88:8090.*


URL Patterns to Exclude
请求记录过滤掉正则相匹配到的信息

(?i).*.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)

5、注意事项

5.1、本文中使用的工具的版本说明:

Google Chrome:版本 92.0.4515.159(正式版本) (64 位)
Jmeter:版本5.4.1
jdk:版本1.8.0_231

6、其他

因实例都是使用的http协议,相对来说比较简单一些,而https与http是一 样的设置,只不过相对来说安全性会更高一些需要一提前安装一些证书和一些插件,这个会在以后的文章中单独说明,今天在此就不进行说明了。

Jmeter脚本录制相关推荐

  1. 性能测试——JMeter脚本录制和HTTP负载测试

    实验目的 (1)了解Jmeter性能测试工具的用途和简单的操作: (2)掌握Jmeter性能测试工具测试过程: (3)能够使用Jmeter进行负载测试: 实验步骤 使用Jmeter对MercuryTo ...

  2. 云智慧压测实战分享之JMeter脚本录制实例

    在前面的<云智慧压测实战分享之JMeter工具使用初探>中我们对JMeter的功能特点和常用元件做了简单介绍,接下来说说JMeter的脚本录制.JMeter有多种录制脚本方法,其中最常见的 ...

  3. https协议谷歌浏览器使用Jmeter脚本录制

    一.http与https的区别 https协议需要到ca申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议 http和ht ...

  4. Jmeter脚本录制(Web)

    1.安装badboy脚本软件 2.打开badboy软件 3.badbody脚本录制 点击录制按钮进行脚本录制,完成打开百度,搜索自动化测试操作,然后停止,回放. 4.回放 5.导出Jmeter脚本 7 ...

  5. Jmeter脚本录制(APP)

    1. 什么是脚本录制 在进行测试的时候,可能有好多脚本或者界面需要操作测试,并且有些测试链接需要 重复多线程高并发进行测试,我们一般会针对这一些操作,进行一个脚本录制,录制 好之后,之后测试就可以在这 ...

  6. 压力测试-Jmeter脚本录制方案

    使用Jmeter时在特殊场景下需要用到脚本录制的功能,本文将分享如何使用Jmeter进行脚本的录制及相关的注意事项. 准备工作: 创建基础API框架:新建测试计划-创建线程组-创建HTTP请求-创建查 ...

  7. jmeter脚本录制入门详解

    jmeter的安装部署可参考 (14条消息) 性能测试工具-JMeter简介及安装_小han的日常的博客-CSDN博客https://blog.csdn.net/weixin_50464533/art ...

  8. Jmeter脚本录制————Badboy录制web端

    1.双击icon打开后主界面显示如下: 2.接下来我们进行Web脚本的录制, 以打开我的歌曲主页http://baidu.com为例: 我们在红框标注的输入框中输入对应url: 然后点击红框标识的录制 ...

  9. jmeter脚本录制作业_399

    使用fiddler抓包录制,jmeter运行 转载于:https://www.cnblogs.com/sendo/p/5666730.html

  10. Jmeter脚本录制:Jmeter5.0脚本录制

    第一部分进行jmeter设置 第一步:在JMeter中添加线程组 第二步:在线程组下添加HTTP请求默认值 添加->配置元件->HTTP请求默认值,设置服务器IP和端口号 第三步:在线程组 ...

最新文章

  1. android studio 的中文网站
  2. 小米6发布,雷军亲手终结小米低价时代,低价竞争还能走多远?
  3. 终于开通了园子里的博客!
  4. pycharm更换源(换源)(镜像源)
  5. PyTorch基础(11)----- torch.sum()方法
  6. Magento利用input type=”file”上传图片
  7. 大数据领域33个预测,开启未知的2016
  8. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别
  9. torchtext建立词表build_vocab()时使用自己的word2vec模型
  10. thriftserver的SparkSQL命令行操作Hive表
  11. javascript中面向对象的5种写法
  12. 计算机应用基础0035形考答案,计算机应用基础0035形考答案
  13. JUC编程入门(高并发)
  14. yapi token注入漏洞
  15. 车载吸尘器方案-无刷马达运用2
  16. linux tig不支持中文,解决git log 以及tig命令中文乱码问题
  17. 机器学习算法整理(六)— 贝叶斯算法_实现拼写检查器
  18. 弟中弟的Leetcode总结——数组类(十)
  19. keyword笔记(zz)
  20. 一文搞懂数据库锁知识

热门文章

  1. 1小时搞懂 Git 版本控制
  2. Ubuntu安装MDK5
  3. python处理excel数据计算_Python处理Excel数据
  4. Android 使用gson完成Json转map,json转单个对象,json转数组
  5. python usb通信测试
  6. CentOS7.5 怎么修改默认SSH端口号
  7. REST及RESTful原则
  8. 基于arduino uno + WS2812b RGB灯带单一颜色跑马灯控制程序
  9. 【白板动画制作软件】万彩手影大师教程 | 分享在线视频
  10. 湖南省工业技师学院计算机证,湖南省工业技师学院