录制脚本只不过是我们日常工作中的一个小应用而已,只是为了能快速看到应用程序跑的逻辑及实现顺序。并够帮助测试人员,快速查出问题出现的节点。

而对于做有针对性的测试时,比如做某个接口的测试,建议大家还是自己去创建及组织脚本,不过录制的脚本可以拿来做参考,粘贴复制也是可以节省不少的工作量。

在JMeter中可以使用自身就带的HTTP代理服务器组件录制脚本,可以录制在WEB上的操作,也可以录制在手机App上的操作。

  • 录制在WEB上的操作时,需要设置浏览器的代理服务器。
  • 录制在手机App上的操作时,需要设置手机上的代理服务器。

下面就详细的介绍,使用HTTP代理服务器组件录制App脚本。

需求:录制在安卓模拟器中,使用购物软件,记录购物的操作。

同理,我们可以录制各种App上的操作。

1、测试计划内包含的元件

添加元件操作步骤:

  1. 创建测试计划。
  2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。
  3. 在线程组中,添加配置原件“HTTP Cookie管理器”组件:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP Cookie管理器。

    说明:如果录制的操作包括用户登录操作,则需要添加“HTTP Cookie管理器”,添加之后不需要任何配置,录制后,脚本中便保存用户登录的相关信息。(本示例中没有登陆操作,可以不添加)
  4. 在测试计划下,添加非测试元件“HTTP代理服务器”组件:选中“测试计划”右键 —> 添加 —> 非测试元件 —> HTTP代理服务器。
  5. 在HTTP代理服务器组件下,添加监听器“察看结果树”组件:选中“HTTP代理服务器”右键 —> 添加 —> 监听器 —> 察看结果树。

最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

2、HTTP代理服务器的设置内容

在HTTP代理服务器组件中,我们需要编辑:

  1. 端口:默认8888,一般使用默认即可。主要不能与本地其他服务的端口号冲突,否则启动不了。比如说 Fiddler已用的端口冲突。
  2. HTTPS Domains:我的理解就是,设置代理服务器的主机IP地址或者域名。因为在我们本地使用,一般就是localhost或者127.0.0.1即可,当然不填写也是可以的。(此填写的地址一定要能够连接外网)
  3. 设置目标控制器:也就是录制的组件存储到什么位置。这个一定要选,下图中选择了存储到目标线程组中。

配置完的界面内容,如下图所示:

3、设置手机的代理服务器

在手机上设置代理服务器的步骤:

(1)进入手机代理服务器配置界面

设置 —> 无线和网络 —> WLAN,点击进入。

在无线网名称上进行长按操作,会出现如下列表,选择修改网络。

然后选择高级选项 —> 点击代理后边的下拉三角,选择手动。

(2)配置手机代理服务器

代理服务器主机名:填写自己本地电脑的IP地址。

代理服务器端口:填写JMeter的HTTP代理服务器中设置的端口号,也就是8888。

如下图所示:

提示一下,本地主机IP地址查看方式:

在电脑打开CMD命令,输入ipconfig命令。

因为我们是用无线网进行连接的,所以选择无线局域网这块网卡。

4、录制脚本

以上内容设置完毕后,在JMeter中的HTTP代理服务器界面,点击启动按钮,开始录制。

提示:在HTTP代理服务器界面点击“启动”时,Meter将生成自己的证书。证书生成可能需要一些时间,在此期间,GUI将无响应。证书生成完成后,GUI将显示一个弹出对话框,其中包含根CA证书的详细信息,证书有效期为7天。该证书需要在手机中安装,以便接受JMeter生成的主机证书。

如下图所示:

关于配置证书,这里就不展开说明了。直接点击OK即可。

然后打开手机中的应用,进行购物操作,JMeter中就已经开始录制脚本了。

操作完成之后,到JMeter的HTTP代理服务器中点击“停止”,然后将手机的代理设置恢复原样即可。

不恢复的话,会导致你无法使用手机访问外网。

如下图所示:

5、查看录制的脚本

在JMeter中我们可以看到已经记录了许多请求对应的信息,包括PHP、js、.jpg、.png等请求。

如下图所示:

我们可以看到,我们只进行了简单的几步操作,却录制这么的请求。是因为JMeter录制很多非关键性的请求,如一些图片的请求,这就需要我们进行一些优化。

录制脚本的优化有两个步骤:

  1. 在录制的时候,做一些过滤和排除操作。
  2. 在录制后的脚本中手动优化,删除不需要的组件,增加自己需要的组件。

    1)服务器名称或IP与目标网站不同的、无关的,可以删除。

    2)js/css/png/jpeg等这类请求删掉。

    3)没有传递任何数据的请求可以屏蔽掉,等流程能回放成功了,这些再删除。如果回放不成功,再一个一个打开,进行检查。

6、HTTP代理服务器的排除模式

在测试脚本中有一些录制的信息是没有任何作用的,所以我们在录制脚本的时候,就可以通过HTTP代理服务器的排除模式,排除一些不需要的请求信息,如css、gif、png等请求。

例如:

  • 在包含模式添加填上 .*\.jsp,只在请求JSP文件时录制脚本。

    这里通常都是设置JSP或者HTML,可以根据具体情况进行填写。
  • 在排除模式处填上.*\.js ,在请求js文件时不录制脚本。

    这里通常都是设置js、jpg、png、gif、css等,这些类型文件请求都是不需要录制的。
  • 当然我们也可以点击添加建议排除按钮,会自动生成一个过滤的正则表达式。

如下图所示:

添加上这些时候,录制出来的脚本,多余的累赘会减少很多。

7、保存脚本

脚本录制完成后,需要进行脚本的保存。

把脚本保存到本地,可以分享给其他成员,进行查看、编辑、回放等操作。

以上就是使用JMeter代理服务器录制脚本的操作过程,记录一下,以备自己可以翻阅,也可以帮助其他人了解一下JMeter的这个功能。

8、注意坑点

  1. 我们的手机与JMeter所在的电脑必须在同一个WiFi下!!否则会失败!
  2. JMeter启动有两种方式,一种是用ApacheJMeter.jar文件启动,一种是用jmeter.bat文件启动。那么请一定采用Jmeter.bat这种方式来启动 JMeter ,否则无法进行脚本的录制。
  3. IOS手机需要安装证书。

『动善时』JMeter基础 — 49、使用JMeter自身代理录制APP测试脚本的更多相关文章

  1. 使用JMeter代理录制app测试脚本

    准备条件:JMeter.手机app 上一篇介绍过录制Web测试脚本的方式有两种,使用代理和使用第三方工具.本篇录制app测试脚本只讨论使用代理的方式,其他方式以后有机会再补充.其实Web和app使用代 ...

  2. 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求

    目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...

  3. 『动善时』JMeter基础 — 8、JMeter主要元件介绍

    目录 1.测试计划(Test Plan) 2.线程组 3.取样器(sampler) 4.逻辑控制器(Logic Controller) 5.配置元件(Config Element) 6.定时器(Tim ...

  4. 『动善时』JMeter基础 — 41、使用JMeter连接数据库(MySQL)

    目录 1.为什么要使用JMeter连接数据库 2.JMeter连接数据库的前提 3.JDBC连接配置组件界面介绍 4.JMeter连接数据库演示 (1)测试计划内包含的元件 (2)测试计划中添加链接数 ...

  5. 『动善时』JMeter基础 — 46、使用Badboy工具录制JMeter脚本

    目录 1.使用Badboy录制JMeter脚本 2.使用Badboy参数化配置 3.解决"当前页面的脚本发生错误"提示框 4.总结 1.使用Badboy录制JMeter脚本 打开B ...

  6. 『动善时』JMeter基础 — 2、JMeter的安装和启动

    1.安装Java环境 由于JMeter是纯Java的桌面应用程序,因此它的运行环境需要Java环境,即需要安装JDK或JRE.(也就是安装JDK环境) 步骤简要说明: 下载并安装JDK 配置环境变量 ...

  7. 『动善时』JMeter基础 — 7、jmeter.properties文件常用配置

    目录 1.默认语言设置 2.配置默认编码格式 3.GUI图标放大比例设置 4.功能区工具栏图标大小设置 5.视图区目录树图标大小设置 6.内容区编辑字体设置 7.添加JMeter元素快捷键设置 8.捕 ...

  8. 『动善时』JMeter基础 — 16、JMeter配置元件【HTTP信息头管理器】

    目录 1.用于演示的项目说明 2.测试计划内包含的元件 3.HTTP请求界面内容 4.查看脚本执行结果 5.添加请求头信息(HTTP信息头管理器) 6.优先级说明 7.补充:常见请求头信息 JMete ...

  9. 『动善时』JMeter基础 — 22、JMeter中实现参数化(CSV)

    目录 1.参数化的定义 2.什么情况下需要用到参数化 3.JMeter实现参数化的方式 4.CSV数据文件设置界面详细说明 (1)CSV数据文件设置组件界面说明 (2)补充说明:Recycle on ...

随机推荐

  1. BUAA软件工程_结对编程

    1.写在前面 项目 内容 所属课程 2020春季计算机学院软件工程(罗杰 任健) (北航) 作业要求 结对项目作业 课程目标 培养软件开发能力 本作业对实现目标的具体作用 培养结对编程开发项目的能力 ...

  2. 使用JSONassert进行JSON对象对比

      在日常工作中,会接到用户提出一张订单,修改后需要记录每次修改的信息,然后需要查看修改前后的差异信息这样的需求.要实现这样的功能方式有很多.下面介绍下JSONassert的简单使用,也方便自己后续使 ...

  3. 关于ajax的数据传输类型,字符串传输

  4. 认识 Spring Cloud Alibaba

    个人理解 Spring Cloud Alibaba 就是 Spring Cloud 的微服务规范的一种实现,外加一些阿里云的商业组件 Spring Cloud 是什么 Spring Cloud 为开发 ...

  5. Zabbix 监控介绍

    Zabbix 监控介绍 1.Zabbix监控架构 2.Zabbix 优点 开源无软件成本投入 Server对设备性能要求低 支持设备多,自带多种监控模板 支持分布式集中管理,有自动发现功能,可以实现自 ...

  6. 搜狗拼音输入法v9.6a (9.6.0.3568) 去广告精简优化版本

    https://yxnet.net/283.html 搜狗拼音输入法v9.6a (9.6.0.3568) 去广告精简优化版本 软件大小:29.2 MB 软件语言:简体中文 软件版本:去广告版 软件授权 ...

  7. DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理

    一 镜像仓库介绍 1.1 简介 镜像仓库用于存放 Docker镜像 Docker registry提供镜像仓库服务 一个 Docker registry可以包含多个镜像仓库 仓库分为公共镜像仓库与私有 ...

  8. wait 和waitpid函数对比-(转自 wintree)

    Wait和waipid函数 当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个一步事件,所以这种信号也是内核系那个父进程发的异步通知.父进程可以选择忽略该信号,或者 ...

  9. 安装JDK 常见错误解决(Day_07)

    在cmd中输入java -version或者java 或出现以下错误: 原因一:可能是你的JDK装的时间比较早,导致环境变量中的Path(此电脑->右击属性->高级系统设置->环境变 ...

  10. 浅析PriorityBlockingQueue优先级队列原理

    介绍 当你看本文时,需要具备以下知识点 二叉树.完全二叉树.二叉堆.二叉树的表示方法 如果上述内容不懂也没关系可以先看概念. PriorityBlockingQueue是一个无界的基于数组的优先级阻塞 ...