【NO.9】jmeter - 一个完整的接口测试的脚本
使用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 - 一个完整的接口测试的脚本的更多相关文章
- Jmeter工具进行一个完整的接口测试
Jmeter工具进行一个完整的接口测试 1.创建一个线程组 通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户. 2.输入线程组名字 3.添加一个cookie ...
- 【NO.10】Jmeter - 一个完整的录制脚本的过程
上1篇介绍了"使用Jmeter对一个接口地址或者一个页面地址执行N次请求",也就是你自己干了一件从"零"开始的事情. 那么这1篇介绍"如何使用Jmeter录制'访问一个接口地址或者一个页面地址'的脚本 ...
- 用Jmeter+Badboy+Fiddler做接口测试
用Jmeter+Badboy+Fiddler做接口测试 2016-12-05 目录: 1 简介2 Badboy录制3 Jmeter打开Badboy脚本4 用Fiddler抓请求,补充完善脚本5 测试中 ...
- 快速构建一个完整的Selenium框架
今天跟大家细讲如何构建一个完整的selenium框架,当你学会了这一篇你就也可以说自己会selenium自动化测试了. 1.新建项目,结构如图: 注意:整个项目除了最外层的是文件夹,其他的都是包(pa ...
- 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车
阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...
- 【如何快速的开发一个完整的iOS直播app】(美颜篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,美颜功能是很重 ...
- 【如何快速的开发一个完整的iOS直播app】(采集篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,首先需要采集主 ...
- 【如何快速的开发一个完整的iOS直播app】(播放篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,集成ijkpl ...
- 【如何快速的开发一个完整的iOS直播app】(原理篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...
随机推荐
- 2.如何实现使用VBS脚本程序对直播间自动评论
前言:本文使用的是VBS脚本,实现了对繁星直播自动登录,自动进入房间并且自动评论. 前提准备:把需要刷的评论放到mysql中,再使用vbs读出评论 -------------------------- ...
- 微信支付(APP)
折腾了一天,终于搞定了微信支付,总结一下.首先从服务器端获取prepareid,Andorid 端再根据这个prepareid二次签名. 服务器端: 从官网上下载DEMO,Demo中只有JsAPi,M ...
- 微信小程序的开发环境搭建(Windows版本)
前言: 小程序是指微信公众平台小程序,小程序可以帮助开发者快速的开发小程序,小程序可以在微信内被便捷地获取和传播:是一种不需要下载安装即可使用的应用小程序,和原有的三种公众号是并行的体系.2017年1 ...
- 统计学习方法 三 kNN
KNN (一)KNN概念: K近邻算法是一种回归和分类算法,这主要讨论其分类概念: K近邻模型三要素: 1,距离: 2,K值的选择: K值选择过小:模型过复杂,近似误差减小,估计误差上升,出现过拟合 ...
- Ext常用开发基础知识
Ext常用开发基础知识 组件定义 //这种方法可以缓存所需要的组件 调用起来比较方便(方法一 ) Ext.define('MySecurity.view.home.HomePanel', { //添加 ...
- 手机app微信支付后台处理流程
第一步:客户在手机app确认订单,提交订单后,app将订单详情传给后台,后台将订单存入数据库,将存入数据库的id返回给app. 第二步:这时候手机端app会让客户选择哪种付款方式,我们做的是微信,所以 ...
- JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue
前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...
- 多个Tomcat 配置多个JDK
- javascript 玩转Date对象
前言:最近在做一个日期选择功能,在日期转换的时候经常换到晕,总结一下常用的Date对象的相关用法,方便日后直接查看使用- 1. new Date()的使用方法有: 不接收任何参数:返回当前时间: 接收 ...
- HTML5 服务器推送事件(Server-sent Events)
服务器推送事件(Server-sent Events)WebSocket 协议的一种服务器向客户端发送事件&数据的单向通讯.目前所有主流浏览器均支持服务器发送事件,当然除了 Internet ...