使用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. linq 批量修改更新

    批量修改:var values = Context.Request["values"].JsonDeserialize<Dictionary<string, objec ...

  2. Hibernate使用注解进行ORM映射实例

    在上一篇博客中,我们通过xml配置文件进行实体类和表的映射,但是近两年来有更多的项目对一些比较稳定的实体类使用了注解进行ORM映射,这样使得编程更加简洁.简单.其实使用注解进行ORM映射和使用xml进 ...

  3. vijos1027题解

    题目: 当大家在考场中接受考验(折磨?)的时候,小呆正在悠闲(欠扁)地玩一个叫"最初梦想"的游戏.游戏描述的是一个叫pass的有志少年在不同的时空穿越对抗传说中的大魔王chines ...

  4. voa 2015.4.29

    Nepal has declared three days of mourning for the victims of Saturday's 7.8 magnitude earthquake tha ...

  5. Django学习(四)---Admin配置

    1)Admin: admin是django自带的功能强大的自动化数据管理界面 被授权的用户可以直接在Admin中管理数据库(增.删.改.查) Django提供了许多针对Admin的定制功能 2)配置A ...

  6. hdu_5964:平行四边形

    打重现赛时,一点思路也没有,然后又看到这题AC数那么少,就直接放弃了.今天重新看了看,借鉴了下别人的,发现此题应该算是一道可解题. 看上去,这题的ans是同时有两个点作为自变量的函数(然而n^2复杂度 ...

  7. tensorflow softsign函数应用

    1.softsign函数 图像 2.tensorflow softsign应用 import tensorflow as tf input=tf.constant([0,-1,2,-30,30],dt ...

  8. Java中的数值和集合

    数组array和集合的区别: (1) 数值是大小固定的,同一数组只能存放一样的数据. (2) java集合可以存放不固定的一组数据 (3) 若程序事不知道究竟需要多少对象,需要在空间不足时自动扩增容量 ...

  9. NLP —— 图模型(零):EM算法简述及简单示例(三硬币模型)

    最近接触了pLSA模型,该模型需要使用期望最大化(Expectation Maximization)算法求解. 本文简述了以下内容: 为什么需要EM算法 EM算法的推导与流程 EM算法的收敛性定理 使 ...

  10. (转)Spring的单例模式底层实现

    单例模式也属于创建型模式,所谓单例,顾名思义,所指的就是单个实例,也就是说要保证一个类仅有一个实例. 单例模式有以下的特点: ① 单例类只能有一个实例 ② 单例类必须自己创建自己的唯一实例 ③ 单例类 ...