使用Jmeter对一个接口地址或者一个页面地址执行N次请求,下面来说说怎么建立一个测试脚本(也称为”测试计划”)。

1.    运行Jmeter.bat

    双击"Jmeter.bat"文件,稍等片刻后Jmeter会被启动,如下图所示:

2.    建立线程组

    在节点"测试计划"下,建立1个被称作"线程组"的东西,如下图所示:

    这个"线程组"的作用是什么呢?

    它的作用就是控制线程的数量。

    单击"线程组"之后,就算建立完成了。效果如下图所示:

3.    建立HTTP请求默认值

在节点"线程组"下,建立1个被称作"HTTP请求默认值"的东西,如下图所示:

    单击"HTTP请求默认值"之后,就算建立完成了。效果如下图所示:

4.    填写"HTTP请求默认值"的表单(以”豆瓣-电影”为例)

    "服务器名称或IP"写:movie.douban.com

    其它地方依照下图所示写,同时当然要符合项目需求,只是大部分的接口测试是这样的而已。

    这样写好后,就可以为接下来的工作减轻工作量

5.    建立单个请求

    在节点"线程组"下,建立1个被称作"HTTP请求"的东西,如下图所示:

    我想建立2个"HTTP请求",这样才能体现出"HTTP请求默认值"的效果。

    单击"HTTP请求"之后,就算建立完成了。效果如下图所示:

    前面已经说过"我想建立2个'HTTP请求',这样才能体现出'HTTP请求默认值'的效果。",所以我建立了2个'HTTP请求'。

6.    填写"HTTP请求"的表单(以”豆瓣-电影”为例)

    第1个HTTP请求的表单

    "路径"写:/subject/1835843/

    其它地方保持默认的值就可以了

    第2个HTTP请求的表单

    "路径"写:/subject_search?search_text=Night+at+the+Museum

    其它地方保持默认的值就可以了

    为什么不需要写表单的其它域值?

    因为在"HTTP请求默认值"已经写过了。

    为什么要在"HTTP请求默认值"提前写这一切?

    因为通常情况下,需求是对同一个网站的不同页面执行性能测试。那么其实通用的一些域值都是相同的,为了减轻工作量没必要每次都写,而是写在"HTTP请求默认值"这1个东西里面就可以了。

    为什么路径只写了一半?

    因为前一半"movie.douban.com"已经在"HTTP请求默认值"写过了。

7.    建立1个监听器

    在节点"测试计划"下,建立1个被称作"查看结果树"的东西,如下图所示:

    当然了你也可以建立"图形结果"、"断言结果"、"聚合报告"、"用表格查看结果"等等其它形式的监听器。每个类型的监听器的作用都是收集性能测试结果,只是呈现结果的样式不同,这个要结合具体的业务来定,或要结合开发人员"希望观察到哪些数据"来定。

    单击"查看结果树"之后,就算建立完成了。效果如下图所示:

8.    只保留1个HTTP请求

    因为,每1个性能测试脚本,只是针对1个接口(或1个页面)执行1次或N次请求。

    所以,需要在测试脚本执行之前,只保留待测接口(或页面)的这1个"HTTP请求"。

    那么,我们可以看到当前的这个测试计划内,包含了2个"HTTP请求"。

    于是,我们暂且"禁用"其中的1个就可以了。效果如下图所示:

    其中1个"HTTP请求"被"禁用"后的效果。如下图所示:

9.    执行1次测试脚本

    切换到"线程组"

    可以看到默认的线程数是"1",循环次数是"1"

    Ramp-Up Period(in seconds)的意思是指"希望在几秒内启动所有的线程"

    执行脚本的操作:Ctrl+R

    在执行脚本前可先执行"清空测试结果"的操作:Ctrl+E

10.    查看测试结果

    切换到"查看结果树"

    单击右侧列表内的这1个"HTTP请求"

    右侧可以分别查看"取样器结果"、"请求"、"响应数据"TAB下的数据

11.    执行另1个HTTP请求

    方法同第8小节的内容。

    具体就是:

    步骤[1]      -        启用另1个HTTP请求

    步骤[2]      -        同时禁用其它的HTTP请求

12.    20个线程数+循环2次的方法

    切换到"线程组"

    设置线程数写"20",循环次数写"2"

    由于线程数比较少,所以不需要考虑如何设置Ramp-Up Period(in seconds)。

13.    20个线程+脚本运行60秒

    切换到"线程组"

    设置线程数写"20"

    循环次数写"永远"

    勾选"调度器"->持续时间(秒)写"60"

    由于线程数比较少,所以不需要考虑如何设置Ramp-Up Period(in seconds)。

-end

【NO.9】jmeter - 一个完整的接口测试的脚本的更多相关文章

  1. Jmeter工具进行一个完整的接口测试

    Jmeter工具进行一个完整的接口测试 1.创建一个线程组 通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户.   2.输入线程组名字 3.添加一个cookie ...

  2. 【NO.10】Jmeter - 一个完整的录制脚本的过程

    上1篇介绍了"使用Jmeter对一个接口地址或者一个页面地址执行N次请求",也就是你自己干了一件从"零"开始的事情. 那么这1篇介绍"如何使用Jmeter录制'访问一个接口地址或者一个页面地址'的脚本 ...

  3. 用Jmeter+Badboy+Fiddler做接口测试

    用Jmeter+Badboy+Fiddler做接口测试 2016-12-05 目录: 1 简介2 Badboy录制3 Jmeter打开Badboy脚本4 用Fiddler抓请求,补充完善脚本5 测试中 ...

  4. 快速构建一个完整的Selenium框架

    今天跟大家细讲如何构建一个完整的selenium框架,当你学会了这一篇你就也可以说自己会selenium自动化测试了. 1.新建项目,结构如图: 注意:整个项目除了最外层的是文件夹,其他的都是包(pa ...

  5. 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车

     阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...

  6. 【如何快速的开发一个完整的iOS直播app】(美颜篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,美颜功能是很重 ...

  7. 【如何快速的开发一个完整的iOS直播app】(采集篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,首先需要采集主 ...

  8. 【如何快速的开发一个完整的iOS直播app】(播放篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,集成ijkpl ...

  9. 【如何快速的开发一个完整的iOS直播app】(原理篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...

随机推荐

  1. keyStore很重要,千万不能丢失

    打包apk的时候需要对apk文件进行签名,如果想要自己给apk签名那么就要自己创建keystore.1.签名的意义为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package N ...

  2. Vijos 1981 跳石头 二分

    描述 一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩 ...

  3. Egret index.html设置

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...

  4. 以芯片直读方式得到的全盘镜像解析及ext4日志区域解析

    之前在centos中分析了/dev/sda1下的结构,但当对象是一块以芯片直读方式作出来的全盘镜像呢? 这次以安卓手机的全盘镜像为对象,尝试按照ext4文件系统结构手动解析,加强对ext4文件系统.E ...

  5. Docker快速入门

    Docker已经火了很长一段时间,最近打算在阿里云上好好熟悉一下Docker的相关应用,为今后的工作做准备. 基本概念 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是do ...

  6. [基础架构]PeopleSoft Process Scheduler 重要文件说明

    我们都知道PeopleSoft是由几个不同的服务组成的,他们在PeopleSoft体系结构中扮演着自己的角色.这些服务具有不同的文件结构并包含重要的可执行文件和配置文件. 以下是Peoplesoft体 ...

  7. RecyclerView线性分割线

    由于recyclerview默认是没有分割线的,需要显示分割线的话,可以在布局里添加一条有背景色的View标签,或者通过ItemDecoration来实现,本文以后者为例. ItemDecoratio ...

  8. 智联卓聘 卓聘IM(聊聊)开发实践

    1.  卓聘IM开发背景 智联卓聘是智联旗下高端人才招聘平台,成立快4年多,业务增涨每年以100%速度增涨快,同时对产品和研发速度都比较高. 2015年提出IM开发,主要用于后选人与猎头及时交流,降低 ...

  9. 干货~powershell与bash和docker在项目中怎么用

    回到目录 这个标题够直接了吧,够坦诚了吧,也许你在项目里这三个东西都没有用到,但这三个东西在未来的两年里将成为最HOT的技术,它们不是什么框架,也不是什么设计模式,而是做为程序和环境快速部署而设计出来 ...

  10. CentOS7 搭建Ambari-Server,安装Hadoop集群(一)

    2017-07-05:修正几处拼写错误,之前没发现,抱歉! 第一次在cnblogs上发表文章,效果肯定不会好,希望各位多包涵. 编写这个文档的背景是月中的时候,部门老大希望我们能够抽时间学习一下Had ...