使用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. sizzle选择器的使用

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

  2. Http批量异步发送和数据保存

    先说需求. 有个服务程序定时扫描指定文件夹下一个所有文件,文件包含了多个用户(客户)信息及对应的http发送地址和发送数据.现在该服务程序需要提取这些用户信息,然后批量进行发送:发送完后需要将http ...

  3. ecshop中smarty比较操作符(eq,ne,neq)含义

    eq相等, ne.neq不相等, gt大于, lt小于, gte.ge大于等于, lte.le 小于等于, not非, mod求模.  is [not] div by是否能被某数整除, is [not ...

  4. ARP欺骗分析

    (作者原创,欲转载请说明出处)1.arp介绍    arp:地址解析协议;将IP地址映射为MAC地址.2.为什么要有arp    平时上网我们都知道要有一个IP地址才能上网,那arp用来干嘛的呢?如果 ...

  5. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  6. Android可更换布局的换肤方案

    换肤,顾名思义,就是对应用中的视觉元素进行更新,呈现新的显示效果.一般来说,换肤的时候只是更新UI上使用的资源,如颜色,图片,字体等等.本文介绍一种笔者自己使用的基于布局的Android换肤方案,不仅 ...

  7. 为实施了IFD的Dynamics 365更换自签名的SSL证书以符合Chrome的要求

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复259或者20170704可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  8. 基于GTID的Mysql-Mha高可用方案探索

    声明: 本篇文章内容整理来源于互联网以及本人自己的梳理总结,目的是从零到一的搭建起来mysql mha高可用架构. 一.软件概述 MHA(Master High Availability)目前在MyS ...

  9. CJOJ 1010【NOIP2003】加分二叉树 / Luogu 1040 加分二叉树(树型动态规划)

    CJOJ 1010[NOIP2003]加分二叉树 / Luogu 1040 加分二叉树(树型动态规划) Description 设 一个 n 个节点的二叉树 tree 的中序遍历为( 1,2,3,-, ...

  10. 类 java.util.Scannar方法

    类 java.util.Scannar方法 ·Scannar (InputStream ln):用给定的输人流创建一个Scanner对象. ·String nextLlne():读取输入的下一行内容. ...